Smalltalk’s Successor

Alan Kay, one of the co-creators of Smalltalk, has said that he’d like to see Smalltalk evolve beyond what it is today. He believes that Smalltalk is stagnating and failing to advance the software industry. While I agree with him in principle, I also take a more pragmatic position. I believe that we cannot wait for this mythical new programming language and that we must use whatever we have available today because the software industry is in crisis. The demand for more and better software created in a timely manner is continually increasing and it’s causing considerable stress for programmers and users alike.

At the moment, there is only one programming language that has any hope of meeting this demand. I do not posit this lightly nor frivolously. Here are the key reasons why Smalltalk is perfectly suited to this mission…

Smalltalk has a great and storied history.

A programming language ideally should command respect, and there’s no better way to do this than by demonstrating a wonderful record of achievements. History matters.

Smalltalk pioneered the language virtual machine and JIT compilation. It created the world’s first modern IDE. It introduced the MVC architectural pattern. It pioneered TDD (test-driven development) and XP (extreme programming). It made live coding easily accessible. It pioneered the development of object-oriented databases. It created the world’s first refactoring browser. It was instrumental in developing GUI and WYSIWYG.

begin at 19:28

It influenced the design of Objective-C, Ruby, Java, PHP, Perl, Python, Groovy, Scala, Dart, and other languages.

It popularized object-oriented programming starting with the now-iconic cover of BYTE magazine.

August 1981

Smalltalk has a proven track record.

Smalltalk has been used in the enterprise for more than three decades. In the 1990s, it achieved the second highest object-oriented market share in the world after C++. IBM even chose Smalltalk as the centrepiece of their VisualAge enterprise initiative.

Today, there are three major Smalltalk vendors with thousands of enterprise users around the globe: Cincom, Instantiations, and GemTalk Systems. Many of these enterprise users are big names in the financial industry, manufacturing sector, shipping, utilities, etc., for example, JP Morgan, Desjardins, UBS, Florida Power & Light, Texas Instruments, Telecom Argentina, Siemens, and COSCO.

Smalltalk is incredibly simple and easy to use.

It’s even simpler and easier than Python! The syntax is as simple as you can imagine. It fits on a post card!

Smalltalk is extremely flexible and versatile.

Smalltalk has developed an extensive ecosystem. In the web space, you have the Seaside and Teapot web frameworks, and Amber and PharoJS for front-end development. In data science and machine learning, you have the PolyMath library, Roassal data visualization, and language bindings for TensorFlow and Keras. For Internet of Things, you have the PharoThings platform. For robotics, you have the PhaROS platform. Smalltalk is great for virtual reality!

Smalltalk is the most productive programming language in the world.

A study by Namcook Analytics showed that Smalltalk was, on average, twice as productive as JavaScript, C++, Go, Java, PHP, Python, and C#. Experienced Smalltalkers regularly develop software up to 5X faster than in conventional languages.

Smalltalk’s remarkable live coding capability plays a critical role here. Only two other significant languages support live coding: Forth and Lisp. But Smalltalk makes its very easily accessible.

Smalltalk is infinitely scalable.

Thanks to its pure object-oriented model which views the Smalltalk environment as a sort of “software internet,” applications can grow in a manner resembling the Internet. It has also been likened to biological systems of cells.

begin at 2:16

Any new programming language, no matter how superior to Smalltalk, would lack history, a track record, an ecosystem, a user base, and mindshare. Marketing the language would face an uphill battle and growing the language’s mindshare would take a considerable amount of time.

Meanwhile, we wait and we wait and we continue fighting a backlog of software that demands to be written.

Smalltalk Alternatives

There are newer languages that compete with Smalltalk, such as Dart, Go, Julia, Kotlin, Rust, Scala, Swift, TypeScript. Some are very large and complex (Kotlin, Rust, Scala, Swift, TypeScript). Some are used in narrow domains (Julia, Rust, Swift, TypeScript). None are as simple and easy as Smalltalk. None are as productive and scalable. None support live coding. None are as elegant.

So, really, the best choice we have today is Smalltalk. It comes in various flavours to meet various needs:

  • Instantiations’ VA Smalltalk for enterprise markets
  • Cincom’s VisualWorks for enterprise markets
  • GemTalk Systems’ GemStone/S for high-volume, high-availability transaction processing
  • Pharo for open source requirements
  • Squeak for the education market

Is there really a need for a successor?

Published by smalltalkrenaissance

A non-profit advocacy organization whose mission is to promote and popularize Smalltalk.

4 thoughts on “Smalltalk’s Successor

  1. Hello all,
    I’ve been using Smalltalk regularly for 36 years and also used several of the more recent “hi-level” languages.
    I looked into the current Smalltalk implementations over the last few months for the purpose of porting my music/audio package Siren (http://fastlabinc.com/Siren) from VisualWorks to a free dialect.
    I’m sorry to say that I was rather disappointed by the state of the art.
    Old-school Smalltalk-80 was easy to learn and navigate, and the core libraries were generally good examples of OO design. We used to teach that the first law of reuse was, “if you can’t find it, you can’t reuse it.” About 75% of the system classes one had to know were in 5 or 6 main branches (magnitudes, collections, streams, display objects, MVC, etc.)
    My first steps in a new Smalltalk dialect are generally to reimplement a few compiler, tool and GUI hacks like nesting comment characters, a 6-paned (package) browser, scroll bars on the left, etc.

    The most popular systems (Squeak and Pharo) both suffer from unbelievable image bloat, with many thousands of classes, hundreds of root classes, class hierarchies with many instance variables in the high-level (abstract) classes, and too many packages with cute but meaningless (to a new-comer) names.
    Several of my basic hacks listed above proved intractable after I realized that the compiler and browser frameworks each consisted of hundreds of classes.
    Cuis Smalltalk is a very good start at stripping the system to a more manageable size for beginners, but still uses the awful Morphic UI framework rather than MVC.

    My recommendations:
    1. Take Cuis and reimplement the MVC framework from Smalltalk-80 (or Squeak up to V3 or so) or the “wrapper” framework from VisualWorks to replace Morphic. I did most of this in early Squeak to make porting from VW easier.
    2. Enforce a consistent category/package naming scheme whereby packages are named according to what they do rather than with cute monikers like Balloon or Monticello. (The Siren class categories, e.g., have names like Music-EventLists, Music-UI-Editors or Music-IO-MIDI to make the system more manageable using a 6-paned browser.)
    3. Try to refrain from syntax extensions (a la Pharo) unless they really add something and can still be described on a postcard. I’m a fan of annotations, optional types, assertions, etc. as much as anybody, but let’s keep the core language and tools simple.
    [Flame off]
    Stephen Pope

    Like

    1. I wonder, wouldn’t it be a good idea to create and make available for download different Pharo images for different and commonly used purposes, like for example:

      – an image customized for web development

      – an image customized for desktop development (using Spec)

      – an image customized for embedded software development (no web nor desktop classes)

      Then we could have small and lean images for a very large number of potential users.

      Or we could have special packages that can be loaded into a minimalist image.

      Like

  2. Stephen Pope, I agree with you on all your points. Just a pointer though, Squeak Smalltalk still has a pure MVC environment but as you mentioned, the class browser in it too shows all sorts of Morphic stuff, which I have been opposing from 1999~2000.

    Like

Leave a Reply to Mayuresh Kathe Cancel 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 )

Google photo

You are commenting using your Google 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 )

Connecting to %s

Create your website at WordPress.com
Get started
%d bloggers like this: