Richard Kenneth Eng

@richardeng

What makes a programming language “cool?”

There are many programming languages today vying for your consideration, especially the “hot” (or “cool!”) new languages like Ceylon, Crystal, Dart, Elixir, Elm, Go, Haxe, Julia, Kotlin, Rust, Swift, TypeScript. And new ones seem to be popping up every month!

Even some of the not-so-new languages are grabbing attention, languages like Clojure, Erlang, F#, Haskell, Lua, OCaml, Scala. Some of these languages are decades old!

So it got me wondering: What makes a programming language, regardless of age, trendy and exciting? Why does 27-year-old Haskell still get tongues wagging? How can 31-year-old Erlang instill passion after all these years? What’s with the love for 24-year-old Lua? F# is still talked about fondly, even though it has 12 years of history behind it.

Of course, one of the main reasons is the growing interest in functional programming over the past several years. Thus, people are examining all of their functional options, including languages that predate Java (which often gets unfairly labelled as old and senescent).

Erlang is notable for OTP (Open Telecom Platform) and its Erlang runtime system (BEAM), which makes Erlang remarkable for writing distributed, fault-tolerant applications.

Clojure capitalizes on the power and elegance of Lisp. Lua is popular in the game industry as an embeddable language. Kotlin and Scala attempt to improve on Java, the most popular programming language on the planet.

Dart and Elm offer alternatives to widely despised JavaScript. Rust promises memory safety. Julia is a technological tour de force.

So it would seem that these languages are trendy for various reasons. Except for functional programming, there really isn’t a pattern. Even 7-year-old Go has risen to the top of the language charts by virtue of being simple and minimalist, without any language design innovation whatsoever!

Then how do we explain the fact that Smalltalk gets so little attention today? It has everything going for it…

  1. Smalltalk is one of the smallest, simplest, and most elegant programming languages ever created. Its entire syntax can fit on the back of a postcard! This makes Smalltalk very, very easy to learn. And because of this, Smalltalk presents extremely low, if not nonexistent, cognitive friction while coding. You don’t have to give the language a second thought; you just focus on the problem at hand.
  2. Smalltalk has a wonderful “live coding and debugging” IDE/runtime environment that makes programming exceedingly quick and productive. You can make live changes to a running program and immediately see the results. This almost completely eliminates the edit-compile-test-debug cycle that hampers nearly all other programming languages. And it’s wonderfully easy to use. There is nothing else quite like it in the modern programming world.
  3. Smalltalk is one of the most productive programming languages. More than twice as productive as Python and Ruby. More than 3X as productive as JavaScript!
  4. Despite its relative obscurity, Smalltalk is an eminently practical industrial language! It’s been used commercially for over three decades. Its well-known users include the likes of JPMorgan, Desjardins, UBS, Florida Power & Light, Texas Instruments, Telecom Argentina, Orient Overseas Container Lines, Siemens AG, and so on. Check out ALLSTOCKER and ATMs in Moscow streets.
  5. Smalltalk is scalable. In the early 2000s, the U.S. joint military used Smalltalk to write a million-line battle simulation program called JWARS. It actually outperformed a similar simulation called STORM written in C++ by the U.S. Air Force.
  6. Smalltalk has a rich heritage. It was the first programming language to popularize OOP, and it remains the finest example of an OOP language (which is why it spawned a whole generation of OOP languages like Java, Python, PHP, Ruby, Perl, Objective-C, CLOS, Dart, Scala, Groovy, etc.). Smalltalk is OOP done right.
  7. Smalltalk continues to be actively developed, especially through the Pharo project and Inria. And through Amber for the web and Redline for the JVM. Smalltalk has been modernized for the Twenty-First Century.
  8. By the way, Smalltalk also has first-class functions and closures, so it’s good for functional programming, too!

Smalltalk is extremely versatile (being a general-purpose programming language and all):

And I’ve just barely scratched the surface!

Smalltalk deserves a place among the “hot” (or “cool!”) new languages like Elixir, Elm, Go, Julia, Kotlin, Rust. After all, Pharo is only 9 years old.

More by Richard Kenneth Eng

Topics of interest

More Related Stories