Comparison of Three Major Programming Languages with Smalltalk

In terms of ease of learning, type safety, performance, productivity, and ecosystem.

Richard Kenneth Eng
2 min readJul 13, 2022

Python

Similarities Between Python and Smalltalk

  • Both are based on byte code execution and virtual machines.
  • Both are dynamically typed.

Differences Between Python and Smalltalk

  • Python has many warts; Smalltalk is the simplest, purest, most consistent language.
  • Python is heavily oriented as a procedural scripting language. Its OOP implementation is sloppy.
  • Smalltalk conveniently supports live programming and live debugging.
  • Smalltalk is far more productive for programmers.
  • There is one flavour of Python; there are several different flavours of Smalltalk.
  • Python has a much larger ecosystem.

Java

Similarities Between Java and Smalltalk

  • Both are based on byte code execution and virtual machines.
  • Both are fundamentally object-oriented.

Differences Between Java and Smalltalk

  • Java is big and complex; Smalltalk is the simplest, purest, most consistent language.
  • Java is statically typed; Smalltalk is dynamically typed.
  • Smalltalk conveniently supports live programming and live debugging.
  • Smalltalk is far more productive for programmers.
  • There is one flavour of Java; there are several different flavours of Smalltalk.
  • Java has a much larger ecosystem.

C++

Similarities Between C++ and Smalltalk

  • Both are fundamentally object-oriented.

Differences Between C++ and Smalltalk

  • C++ is a huge, complex language; Smalltalk is the simplest, purest, most consistent language.
  • C++ is statically typed; Smalltalk is dynamically typed.
  • C++ compiles to fast native code.
  • Smalltalk conveniently supports live programming and live debugging.
  • Smalltalk is far more productive for programmers.
  • There is one flavour of C++; there are several different flavours of Smalltalk.
  • C++ has a much larger ecosystem.

Postscript

Smalltalk’s greatest weakness is its ecosystem. That’s because of two reasons:

  1. Smalltalk does not come in one flavour but several…open source Pharo, Cincom Smalltalk, Instantiations VAST, GemTalk GemStone/S. Lesser flavours include Squeak, Cuis Smalltalk, GNU Smalltalk, Dolphin Smalltalk. Smalltalk faces the same problem as Linux.
  2. Smalltalk’s user community isn’t large enough yet to support a large ecosystem. Building community size takes time.

Smalltalk’s greatest strength is its productivity. That’s because of two reasons:

  1. Smalltalk’s live programming and live debugging capability. Its image-based development model is also a major factor.
  2. Smalltalk’s simple, elegant syntax and low cognitive overhead.

Smalltalk is a good choice for software developers who favour low cognitive overhead and high productivity (typically 2–3X faster than in whatever language you’re using).

--

--

Responses (6)