Image for post
Image for post

Why learning Smalltalk can never be a waste of time

I get this a lot, people telling me that learning Smalltalk is a waste of time. Here’s my retort…

#1: Your first programming language will never be your only programming language.

Many programmers advise beginners to start with an industrial language like Python or JavaScript because you can easily find jobs for it. However, this is a poor excuse for using a language that was not designed for teaching. In the course of your career, you will likely learn and use many programming languages. Your second language could be Python or JavaScript. There is nothing wrong with this strategy.

#2: The best way to learn how to program is with a good teaching language.

Python and JavaScript and C were never designed nor intended as teaching languages. They are industrial languages that carry a lot of baggage. No matter how friendly you think Python and JavaScript are, they do have more than their fair share of “warts.” Beginners should not be distracted by their starting language’s oddities and quirks.

Alan Kay and his team at Xerox PARC created Smalltalk in the early 1970s for teaching programming to children. That’s a fine pedigree.

#3: There is no better way to learn about object-oriented programming (OOP).

The universal consensus is that Smalltalk is the best OOP language there is. It was the first programming language to popularize OOP back in the 1980s. It has directly influenced the design of nearly every OOP language we use today, including Python, Ruby, PHP, Objective-C. Since OOP is so widely used throughout the IT industry, and since it is so misunderstood by many developers, it is best to lay a solid foundation for object-oriented programming before moving to other languages.

#4: It’s a great hobbyist language.

Even if you never find a Smalltalk job, Smalltalk is a fantastic hobbyist programming language. It’s loads of fun! I know many developers who use Java, C++, etc. in their “day job” but use Smalltalk for personal projects. How can a hobby or recreation be a waste of time?

Image for post
Image for post

#5: Pharo is a contemporary language (created in 2008).

Smalltalk-inspired Pharo is every bit as relevant as other new contemporary languages such as Clojure, Crystal, Dart, Elixir, Elm, Haskell (1990!), Julia, Nim, Rust. Aren’t any of these languages worth learning?

For more information, read Why Pharo Might be the Future of Software Development and Smalltalk May Be the Nikola Tesla of the IT Industry.

#6: Old languages still have great value.

  • Lisp (1958) can be found in Clojure (2007).

When did “old” ever become a liability, as many opine?

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