Why Aren’t People Using Smalltalk?

Examining the oft-quoted reasons

Smalltalk has a PR problem

Smalltalk is perceived as an old language that is behind the times. Smalltalk is perceived as a market failure. Smalltalk is perceived as having dim prospects for the future and thus not worth investing time and energy in it. It is most difficult to fight bad PR, but I shall try.

We Don’t Need Another Hero

Yes, we do. Smalltalk needs some serious marketing to overcome its perceptions. Alan Kay was Smalltalk’s spokesperson many years ago, but it’s time for someone else to step up and trumpet the value of the language and its importance to the software industry. Someone with clout. Who will it be?

Smalltalk missed the boat when it came to the Web

Historically, this is true. In the 1990's, all the Smalltalk vendors failed to recognize the significance of the nascent Web and did not adapt their products accordingly. Java came along and mopped up the market.

Smalltalk is too different from “conventional” languages

Meaning that it’s harder to learn

“Conventional” languages mean C-style languages (e.g., Java, C#, C++, PHP, Perl, etc.). And Python, Pascal, Ruby.

Smalltalk syntax is so purely simple that it makes the heart sing.

Syntactically, Smalltalk is refreshingly different from C-style languages. The syntax is simple and elegant; many describe it as “beautiful.” (Smalltalk was originally designed to teach children programming. Could adults find it challenging?) Coming from a Java/C#/C++ background is absolutely no impediment to picking up this different syntax. In fact, it’s quite fun to do so!

Words are inadequate to convey the full meaning of its power. And that’s a problem.

However, the Smalltalk environment also precludes using the conventional toolchain that developers embrace in the realm of conventional languages, which are file-based.

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

There is no reason why we should be forever beholden to the conventional toolchain. Not when the Smalltalk environment promises so many other unique benefits.

Smalltalk is too insular

Many developers have a problem with the tightly coupled Smalltalk environment or IDE. They are so wedded to their conventional toolchain that they cannot, and will not, accept the benefits of “live coding” and awesome reflection capabilities. A great deal of Smalltalk’s much-vaunted productivity is due to this live environment.

Conventional developers would rather take a pass on these benefits than forsake the file-based tools they know and love.

This is not much different from how many modern languages operate. Java, JavaScript, C#, Python, Ruby [3]…applications written in these languages run in a VM. The image is the only distinguishing feature. Many developers object to the image, too, probably because it’s a bit too weird (read: unfamiliar) for them.

Smalltalk is too slow

Smalltalk is a dynamic language that relies on a virtual machine (which typically JIT compiles bytecode into native code). Thus, it cannot execute as quickly as C++. But why must Smalltalk performance be compared with C++?

  • payment systems
  • neuroscience
  • numerical analysis and engineering
  • animation
  • gaming backends
  • media storage and processing
  • operations management
  • natural language processing
  • Big Data
  • web services

Smalltalk cannot scale

That is to say, dynamic languages cannot scale

This presumption is based on little more than ignorance and bias. I am aware of one particular application called JWARS, a battle simulation program written for the joint U.S. military. It exceeded one million lines of Smalltalk code. In terms of performance, it was faster than the U.S. Air Force’s STORM, another battle simulation written in C++ of all things! Unfortunately, the project was killed for political reasons (not unlike Canada’s Avro Arrow program). It was a technical success by any measure.

Smalltalk doesn’t have enough industry support

That is to say, not enough employment opportunities, not enough developers to hire, and not a large enough ecosystem.

This is indisputable. It’s the classic Catch-22 scenario. Without sufficient hiring opportunities, developers won’t pick up Smalltalk. Without a sufficient size talent pool to hire from, companies won’t adopt Smalltalk. Without corporate adoption, there is no incentive to develop an ecosystem.

The wish of the Smalltalk community is to spread the benefits to the broader software industry.

Smalltalk is reliant on serendipity and the broader recognition of its merits. It also has to fight the historically inaccurate perception that Smalltalk was a failure in the marketplace; a great deal of Smalltalk’s “failure” in the 1990's was political. Smalltalk vendors adopted poor marketing and sales strategies and did not recognize the importance of the nascent Internet. IBM, in particular, was “faked” into switching from Smalltalk to Java, thus losing the opportunity to forge and own the Smalltalk enterprise market.

Smalltalk Talk

Why you should program in Smalltalk

Richard Kenneth Eng

Written by

Mr. Smalltalk: https://medium.com/p/domo-arigato-mr-smalltalk-aa84e245beb9

Smalltalk Talk

Why you should program in Smalltalk

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade