A Nod to Blake Watson

On December 10, 2012, SmartBear published an article by Blake Watson entitled, “Today’s Smalltalk: A Second Look At The First OO Language.” Less than two years later, I would read that article and be inspired to become a Smalltalk ambassador.

Although his article was slightly flawed¹, it was generally a very powerful piece promoting Smalltalk in an eloquent fashion. It certainly moved me.

Without that SmartBear article, Smalltalk would’ve likely drowned in obscurity and the world would’ve been denied a great technological treasure. Today, the word on Smalltalk is ringing through the halls of Quora and cascading through Twitter and Facebook and Google+ and LinkedIn. It’s well-known to readers of Hacker News and Medium and Reddit. I wonder if Blake Watson realizes what he started: something of a Smalltalk revolution!

I thank Blake Watson from the bottom of my heart. You see, one person can make a difference.

[1] The article has a slight flaw regarding the Smalltalk vs JavaScript example. The JavaScript code sample is misleading. A better example follows…

Lets generate a set of lowercase ASCII alphabet characters. In Smalltalk, you would do it thus:

String withAll: ((97 to: 122) collect: [ :asciiCode | asciiCode asCharacter ])

In JavaScript, you would do it thus:

(function (cFrom, cTo) {
function cRange(cFrom, cTo) {
var iStart = cFrom.charCodeAt(0);

return Array.apply(
null, Array(cTo.charCodeAt(0) - iStart + 1)
).map(function (_, i) {
return String.fromCharCode(iStart + i);
   return cRange(cFrom, cTo);
})('a', 'z');

The Smalltalk code sample is much cleaner and clearer.

In general, you can write astonishingly concise and elegant code with Smalltalk, as Sven VC shows here: Elegant Pharo Code.

Since Blake’s article is nearly 5 years old, not surprisingly some of its URL links are dead. So let’s correct them…

The very first link, “Smalltalk,” should be replaced by something like How learning Smalltalk can make you a better developer.

This link, “Self,” should be replaced with Self.

This link, “Squeak: Learn Programming With Robots,” should be replaced with Squeak: Learn Programming with Robots.

This link, “Pharo By Example 2,” should be replaced with Pharo by Example 50.

This link, “Pharo success stories,” should be replaced with Pharo success stories.

This link, “Gemstone,” should be replaced with GemStone. Note that the GLASS product has been folded into the GsDevKit open source project.

This link, “create HTML5 pages,” should be replaced with create HTML5 pages.