James Hague in “Retiring Python as a Teaching Language” concluded with:

I expect some horrified reactions to this change of thinking, at least to the slight degree that one can apply horrified to a choice of programming language. Those reactions should have nothing to do with the shortcomings of Javascript. They should be because I dismissed so many other languages without considering their features, type systems, or syntaxes, simply because they aren’t natively supported by modern web browsers.

Well, colour me horrified. There are so many languages that are superior to JavaScript, especially for instructional purposes. The idea that JavaScript should be chosen simply because it’s the programming language of the web and there’s a huge demand for front-end web developers is anathema to my intellectual and professional sensibilities.

JavaScript is really only good for front-end web development (with some traction on the back end with Node). Everywhere else, JavaScript plays second fiddle to better languages…C# in games, Java and Swift in mobile, Python and C++ in numerical computing and data science, Java and Python and C in robotics and Internet of Things, Java in cloud computing, Python and R in machine learning, Go for concurrent programming, and the list goes on and on.

Do a job search at Indeed.com for JavaScript and you’ll find that nearly ALL of them are front-end web-related. Where are the jobs for JavaScript game developers? How about IoT developers? Show me one job where JavaScript is used for machine learning.

As for teaching beginners how to program, the best language by far is Smalltalk. It’s supremely easy to learn because it virtually has no syntax! The language is free from cruft and baggage (unlike all the industrial languages such as Java, Python, JavaScript, Ruby, etc.) that only get in the way of a beginner. Smalltalk lets you focus entirely on basic programming concepts.

Moreover, Smalltalk is ideal for teaching object-oriented programming (or OOP). This is most important because ALL of today’s major languages are OOP-based. When it comes to OOP, no language does it better than Smalltalk.

Image for post
Image for post

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store