In Praise of the Very Best Programming Language


Today is the one-year anniversary of my seminal Smalltalk article, “How learning Smalltalk can make you a better developer.” It was a little more than a year ago when TechBeacon approached me to write a tech article for them. I chose to write about Smalltalk, my favourite programming language.

Since then, the article has been read by more than 60,000 people around the globe, if you include the reprints (or republications) in various places.

In a rare move, Hacker News offered to let me repost the article because they felt it deserved greater exposure. I did, and the response went through the roof!

The article has been reprinted here at Medium and at LinkedIn:

The article has been reprinted at Tech In Asia at their behest:

The article has been translated into Russian: I’ve been told it received more than 18,700 views!!!

There has also been remarkable coverage in social media and other venues:

All of this stemmed from that one TechBeacon article.

Let’s celebrate!


Also as a result of the article’s momentum, I was inspired to publish several extensive Smalltalk tutorials (employing the Raspberry Pi):

Why the Pi? On June 30, 2017, the Raspberry Pi won the prestigious UK engineering prize, the MacRobert Award.

Raspberry Pi has been selected as a MacRobert Award finalist for its inexpensive credit card-sized microcomputers, which are redefining how people engage with computing, inspiring students to learn coding and computer science and providing innovative control solutions for industry.

As well, I subsequently published several other follow-up articles that attracted wide attention:

What a breathtaking journey! I am so grateful to TechBeacon for providing just the right platform for promoting Smalltalk and engendering so many excellent by-products in my Smalltalk campaign.

And here’s one more: for my next project later this year, I plan to produce a documentary film about Smalltalk, its history and its impact on the world of IT. I’m very excited about it.

Happy Birthday!!! May the best of your past be the worst of your future.


(Originally published at


Happy Birthday, Smalltalk Renaissance!


Today is the second anniversary of the Smalltalk Renaissance campaign. While this campaign officially terminated last December, it lives on in a subsequent “mini-campaign” called #MakeSmalltalkGreatAgain, a Twitter campaign (but also supported by Facebook, Google+, and LinkedIn) to leverage the enormous success of my TechBeacon article, “How learning Smalltalk can make you a better developer.” #MakeSmalltalkGreatAgain is also a Quora campaign because I’ve been answering hundreds of questions related to programming languages and constantly advocating for Smalltalk as a great beginner language. Next year, I’ll be devoting my time to writing an up-to-date Smalltalk tutorial for total beginners in programming, as well as to an open source project to put Smalltalk on the JVM (it’s called Redline Smalltalk). Between these activities, I hope to finally make a breakthrough in Smalltalk advocacy and grow the user community.

Let’s make Smalltalk great again!



Is Smalltalk much improved over 5 years ago?

This poll is for ex-Smalltalkers who have returned for a second look at the language and newcomers who have knowledge of what Smalltalk was like in the past.

Smalltalk’s Real Competition

It would be useful to indicate in the Comments what languages are in “Other.” Perhaps they are Haskell or Clojure?

Welcome to the Future of Smart Web Development


Today is the official launch of a campaign to promote the use of Smalltalk (and Amber) in the modern age of software development, especially as it relates to the Web. In our highly connected world, web technologies are absolutely central to the economic growth and social evolution of our society.

Why Smalltalk?

Smalltalk is a pioneer in programming language development. Constructed in the 1970s by those clever folks at Xerox PARC in California, Smalltalk was the first major OOP language, and still widely regarded as the best. Over the past four decades, it has been highly influential in the design of other important languages, such as Objective-C, Ruby, Groovy, Scala, and Dart. Today, Smalltalk is still used to write industrial and financial applications (rather like a secret weapon that confers a competitive advantage). It is alive and well, particularly in the Pharo incarnation, and it is emerging as a contender in client-side web development with the creation of Amber.

The beauty of Smalltalk lies in its simplicity and elegance, as well as its novel concept of a “live” development environment, where every object is active and you can examine it and change it at will. Ironically, this “novel” concept was created more than four decades ago! As a result, Smalltalk is eminently readable, almost like English, but it still manages to be succinct.

Smalltalk is prized for its development power and extraordinary productivity. The word “productive” is vastly overused and bandied about by nearly every new programming language that arrives on the scene today. However, Smalltalk has a long history to show definitively that a simple and expressive language, combined with an innovative approach to the IDE, can pay enormous dividends in academia and in the commercial enterprise.

Now with Amber, which compiles efficiently to JavaScript, we have brought the benefits of Smalltalk to the world of browser-based application development, the “final frontier,” as it were. Welcome to the future of Smart Web Development!


Why is Smalltalk still relevant today? It may be viewed as a “modern” language in as much as it is closely tied to a novel approach to IDEs: the Smalltalk environment is a world of “live” objects that you can examine and change at will. The Smalltalk environment is not file-based; it is a system of live objects that can be stored, system state and all, into one location. Compare this to the traditional method of organizing source code using files and folders which is positively antediluvian!

“Source code in files. How quaint.”
Kent Beck

Moreover, Smalltalk adheres to modern language design principles that have become very popular. It’s a simple language with a highly readable syntax. Its language features are orthogonal with no unpleasant interactions. Not only is it designed to be easy to learn, it is also designed to be very practical and expressive in daily use.

Smalltalk can stand shoulder to shoulder with the likes of Dart, Swift, F#, and Scala, all recent entrants in the highly competitive field of programming languages.

Which Smalltalk should I use? Smalltalk is available in many different flavours and unfortunately this can be confusing to newcomers. In order to make things simple, I always recommend open source Pharo or Amber (which uses Pharo as the reference implementation). If you’re inclined toward a commercial Smalltalk, you have principally three choices: Cincom Smalltalk, VA Smalltalk, or GemStone/S.

Squeak is Pharo’s predecessor and still fairly popular. Redline Smalltalk is for those who want to run Smalltalk on the JVM. Essence# is for those who want to run Smalltalk on .NET. Dolphin Smalltalk is specifically for Windows. And there are still others. But, really, just keep it simple: stick with Pharo or Amber.

What resources are available for Smalltalk newcomers? To begin with, here is a most informative series of podcasts:

Here is an excellent Smalltalk tutorial video to get you started:

I actually went through the online interactive tutorial discussed in the video above. You get a better feel for the language by doing rather than watching.

This introduction to the Pharo programming environment (despite the title, it doesn’t really talk about the language itself) is very well done:

So is this introduction by Noel Rappin:

If you’re inclined to read, I recommend the book “Pharo by Example” (also available as a free PDF), which comes with a downloadable version of Pharo tailored for the book.