Comparison of Three Major Programming Languages with Smalltalk
In terms of ease of learning, type safety, performance, productivity, and ecosystem.
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:
- 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.
- 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:
- Smalltalk’s live programming and live debugging capability. Its image-based development model is also a major factor.
- 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).