His contributions to the world were enormous, but people still remember Edison and Franklin and da Vinci and Bell. For decades, attempts to honour Tesla with a New York museum at Wardenclyffe failed repeatedly. Only recently has this borne fruit.
Here are some of Tesla’s contributions:
In 1887 and 1888, he was granted more than 30 patents for his inventions.
When Tesla died in 1943, he died penniless and forgotten.
Today, Smalltalk is greatly underestimated. Although Kay never thought of Smalltalk as the central focus of his vision, it remains a powerful force for the advancement of programming technology. More than four decades later, no programming language has yet to catch up to Smalltalk in terms of simplicity and elegance, minimal cognitive friction, object-oriented purity, elegant live coding and debugging, enormous programmer productivity, and professional respect.
At Slant and StackOverflow, Smalltalk is revered: read The Wisdom of the Crowd.
Capers Jones of Namcook Analytics has shown Smalltalk’s tremendous advantage when it comes to programmer productivity.
Smalltalk’s live coding IDE and runtime are amazingly powerful without the arcane complexity that you find in modern IDEs like Visual Studio, Eclipse, and Xcode. Here’s a demonstration:
Smalltalk continues to evolve and improve in remarkable ways through the Pharo project. Here are some great innovations:
Like Tesla, Smalltalk has a wonderful legacy. Its beautiful implementation of object-oriented programming has directly influenced the design of nearly every object-oriented language we use today: Java, Python, C#, PHP, Ruby, Perl, Objective-C, Groovy, Scala, Dart, Erlang, CLOS.
Smalltalk introduced the world to the language virtual machine. (No, it wasn’t the first but it was the best-known.) This is the same tech that underpins Java and .NET.
Smalltalk pioneered JIT (just-in-time) compilation.
From Smalltalk came the first modern IDE (integrated development environment), which included a text editor, a system or class browser, an object or property inspector, and a debugger.
Smalltalk was the first language tool to support live programming and advanced debugging techniques such as on-the-fly inspection and code changes during execution in an easily usable form.
Since Smalltalk-80 (in 1980), it had first-class functions and closures which, oddly enough, make Smalltalk quite good for functional programming. Quite remarkable for a “pure” object-oriented language. (How long did it take Java, Python, C# and C++ to get this feature?)
Smalltalk introduced the software architectural pattern MVC (Model-View-Controller).
To a large extent, Smalltalk was responsible for giving us test-driven development (or TDD) and extreme programming (or XP), which are both very influential in today’s standard agile practices.
Smalltalk made “duck typing” a household word. Duck typing is where “type checking” is deferred until runtime — when reflection capabilities are used to ensure correct behavior. We find duck typing in many languages today, including Java, Python, Go, Groovy, Objective-C, and PHP.
Smalltalk pioneered the development of object databases of which GemStone/S is a great example.
Smalltalk gave us the first refactoring browser.
Smalltalk was instrumental in developing the graphical user interface (or GUI) and the “what you see is what you get” (WYSIWYG) user interface.
People don’t realize this, but Smalltalk is every bit as extensible as Lisp! Read Lisp, Smalltalk, and the Power of Symmetry. Who needs Lisp macros?
Apple’s success owes a lot to Smalltalk. It’s true!
Whew! Nikola Tesla would’ve been proud!
More than four decades later, Smalltalk still enjoys far more commercial usage than any of the upstart languages we hear so much about (for example, Ceylon, Clojure, Crystal, D, Dart, Elixir, Elm, F#, Haskell, Haxe, Julia, Nim, Rust). Cincom, Instantiations, and GemTalk are major Smalltalk vendors. Between them, they have many prominent Smalltalk users:
Just to name a few. In my home country, Smalltalk is used by Communications Security Establishment (CSE), Canada’s national cryptologic agency.
Pharo itself has prominent users, too, for example:
In the early 2000s, the U.S. joint military used Smalltalk to write a million-line battle simulation program called JWARS. It actually outperformed a similar simulation called STORM written in C++ by the U.S. Air Force. That by itself is an astonishing testament to the capabilities of the language.
Here’s a commercial virtual reality application done in Smalltalk: 3D Immersive Collaboration. Magnificent!
Smalltalk is good for machine learning and data science.
Smalltalk is being used to fight Ebola!
Smalltalk is used in wide-scale data visualization for medicines in 16 countries.
Smalltalk was so good for business use that in the early 1990s, IBM chose Smalltalk as the centrepiece of their VisualAge enterprise initiative to replace COBOL. Unfortunately, Java came along in 1995 and put an end to that. And as we all know, today Java is the enterprise standard programming language.
In fact, according to a 1995 IDC report, OO language market shares were:
Here’s a page from Computerworld, November 6, 1995, showing Smalltalk and C++ duking it out:
Let’s look at a few universities and research groups that use Smalltalk (Pharo):
As you can see, Smalltalk is incredibly strong in industry and academia!
So in the end, I am puzzled why Smalltalk gets so little press coverage, why Smalltalk is as forgotten as Nikola Tesla. These two deserve better fates.