Smalltalk: Yesterday, Today, and Tomorrow

by Richard Kenneth Eng

Why did Smalltalk fail to catch on 20 years ago?

James Robertson gave an excellent summary here:

There are a number of reasons that Smalltalk didn’t “catch fire”, most of them historical:

  • when Smalltalk was introduced, it was too far ahead of its time in terms of what kind of hardware it really needed
  • In 1995, when Java was released to great fanfare, one of the primary Smalltalk vendors (ParcPlace) was busy merging with another (Digitalk), and that merger ended up being more of a knife fight
  • By 2000, when Cincom acquired VisualWorks (ObjectStudio was already a Cincom product), Smalltalk had faded from the “hip language” scene
  • Since then, Smalltalk has been a small player on the language space, but it’s back to having a growing market. There are both commercial offerings (Cincom being the largest player there), and open source (Squeak and Pharo which are mostly under the MIT license, and GNU Smalltalk, which is GPL).

Not all Smalltalk implementations require an image; while those of us who are sold on an image environment love it, you can use GNU Smalltalk with your favorite text editor easily enough.

Ultimately, Smalltalk peaked early, and then had damage done to it by the stupidity of the early vendors in the space. At this point in time, that’s all in the past, and I’d say that the future looks pretty bright.

An anonymous poster gave this insightful response:

You had to be there in 1995. At that time, there were a few commercial Smalltalks but the biggest was VisualWorks from ParcPlace Systems. The marketers at ParcPlace were idiots – choosing to optimize for max dollers per seat rather than max seats. Any shop wishing to adopt Smalltalk had to pay a couple thousand dollars per developer for a license. Any developer wishing to learn Smalltalk either had to get hired to do Smalltalk or sink serious cash into buying his own license. So it was just plain hard to get a chance to learn it.

Also about that time, IBM was looking for a successor to COBOL for their business customers. They chose Smalltalk (smart) and developed VisualAge and made it so the same program could run without modification on everything from mainframes to AS400s to PCs. Smalltalk has a friendly minimal syntax and is easy to learn so it seemed a natural replacement for COBOL. The future looked really bright for Smalltalk. The companies that were using it were out-producing everyone else by a lot.

Then Sun showed up with Java. They gave it away free instead of charging for it. IBM took a look at it and figured two things. First they didn’t want to enter a marketing war with Sun that was clearly planning to spend a fortune on the Java brand. Instead they decided to try to beat Sun at their own game – have the best Java on the market. Why not, they already had a great VM that ran on their whole stack – they just adapted it to handle the Java bytecode set. In fact, all of IBM’s Java tools were actually written in Smalltalk for several years. Thus – if one wants to blame anyone for the rise of Java over Smalltalk – it is pretty easy to place the blame directly at the feet of IBM and their unwillingness to compete.

What is Smalltalk’s current state?

Eliot Miranda provides a good overview:

Whether Smalltalk is popular or not is perhaps less interesting than whether it is successful.  It happens to be used still in some extremely important industrial and financial sectors, no matter that Bob Martin talked of this as having occurred in the past.  For example, it is almost certain that the chip in your smart phone was built by fab machines whose control system (GUI and scheduler) is implemented in Smalltalk.  So Smalltalk is still used in the enterprise, and one sad reality is that the Smalltalk community failed to market Smalltalk in part because those enterprise users refuse(d) to allow their use to be mentioned because Smalltalk is seen as providing a strategic advantage.

There is abundant evidence for Smalltalk usage in the enterprise today:

Where is Smalltalk headed?

Well, that depends on you. Smalltalk has the power to revolutionize the software development industry. You only need to recognize a few things:

  • The complaints about Smalltalk’s downsides, such as its image-based virtual machine, its lack of support for existing file-based toolchains, its IDE based on the class browser rather than files containing long stretches of code, precisely reflect the powerful nature of the environment that gives you its unbelievable manifold productivity advantage.
  • As more people understand Smalltalk’s ease of development and productivity, and learn to use this super-tool, the issue of hiring from a small talent pool will simply go away.
  • Smalltalk’s simple syntax, even if it is markedly different from that of C or Java, cannot be a genuine impediment. If it were, then languages such as Python, Ruby, Haskell, Clojure, or Lua would never have caught on.

Even if Smalltalk Renaissance fails to persuade the IT world, at the very least, Smalltalk will continue to thrive in its niche-size market, offering users a strategic productivity advantage unmatched by any other programming language. The Pharo project will ensure this. The Smalltalk vendors such as Cincom, Instantiations, and GemTalk will ensure this. The active Smalltalk community will ensure this. Smalltalk is in no danger of going away.

The danger lies with the status quo of the IT industry.

Advertisements

3 thoughts on “Smalltalk: Yesterday, Today, and Tomorrow

  1. Pharo is moving forward. We need more enterprise integration features. But at this time, there is definitely enough feature-wise to kick ass big time. It is actually freeing to not have to use all bells and whistles that the software industry advertises as the “fad du jour”. A lot of it is there for no good reason.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s