Most companies do not list Haskell, Clojure, Erlang, Elixir, Groovy, Go, D, or Delphi as nice-t0-have skills, either. Does that mean those languages aren’t worth teaching or using? Smalltalk is not some esoteric, academic language but a practical industrial tool that has been used commercially for over three decades! I would venture to guess that Smalltalk is commercially used more than Haskell, Clojure, Erlang or D.

Mentioning Smalltalk in your CV is not a bad idea, either. I always mention Tandem TAL in my job applications because it’s a great way to show that I’m versatile, adaptable, and not afraid to take on challenges. TAL, which is hardly used at all today, was the foundational language for fault-tolerant computing on bleeding-edge fault-tolerant hardware of the 1980s.

Throughout my career, I’ve always been thrown into new projects that use new technologies. And I’ve always had to adapt quickly (climb learning curves) and become useful to the project in short order. TAL was an example; so was C, Java, Objective-C, and Smalltalk.

Here’s the thing: when you already know how to program, picking up a second or third programming language is pretty straightforward. Employers care about your programming skills, not what languages you have under your belt. Otherwise, my career would’ve stalled repeatedly in the 1980s and 1990s.

Moreover, every programmer I know is polyglot. In our industry, how could it be otherwise? You can’t graduate from university knowing Java and expect to use that one language for the rest of your professional life. If you can’t pick up a second language PDQ, then you will not go far in IT.

Universities are not trade schools. They’re not there to prepare you for employment. They’re there to prepare you for a career, and building a solid foundation for a career is their Job #1. How do you build this foundation? By teaching the basics in the quickest, easiest, and most effective manner.

I maintain that languages such as Scheme and Smalltalk are much more effective for teaching programming basics than any industrial programming language. Especially if you intend to teach the basics of object-oriented programming. There is no better language than Smalltalk for this.

Smalltalk is so good at OOP that it directly influenced the design of nearly every OOP language you can name…Objective-C, Ruby, Python, CLOS, PHP 5, Perl 6, Groovy, Scala, Dart, Swift, and so on.

There is absolutely no downside to teaching beginners Smalltalk and every upside. Once you’ve learned how to do object-oriented programming the right way with Smalltalk, moving to Java, Python, C++, Objective-C, Scala, etc. is no problem at all. (By the way, Objective-C is actually a cross between C and Smalltalk! Bet you didn’t know that.)

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