Q: Where did Smalltalk go wrong?
A: Excessive cost of development tools at a time when Java was free.
Java was easy for C, C++ and Pacal programmers to migrate to. It had enough incremental benefits to justify the leap. Most importantly, Java surfaced with inbuild support for the Internet, just when the Internet rally was building.
If Smalltalk development tools had been less costly, it would have surpassed Java on every front. And, Smalltalk is such a joy to use.
Smalltalk is a success on the technical front. Current software technologies are still duplicating the innovations originated in Smalltalk. Docker is the latest, saving the state of a software solution.
Developer productivity is where Smalltalk really shines. There are many ways to measure productivity and code quality. Ultimately, total effort per function point is a useful one. On page 46 of http://namcookanalytics.com/wp-content/uploads/2013/07/Funct... a table sets out number of months to implement a 1,000 function point program. Here's a few metrics for dynamic and static languagues:
By these measures, Smalltalk projects will be completed in less than half the time as projects using C#, Java or C++. Javascript centric projects will take 3x, but this is not really an apples to apples comparison.
Where Smalltalk really failed, was on the commercial side. It failed to be adopted by a critical mass of developers. Smalltalk was used successfully, due to tool costs, mostly in Fortune 1000 class enterprises. For my small software company, it was a secret weapon enabling me to outperform competitors. I didn't sell Smalltalk, I sold "solutions."
Java was easy for C, C++ and Pacal programmers to migrate to. It had enough incremental benefits to justify the leap. Most importantly, Java surfaced with inbuild support for the Internet, just when the Internet rally was building.
If Smalltalk development tools had been less costly, it would have surpassed Java on every front. And, Smalltalk is such a joy to use.
Smalltalk is a success on the technical front. Current software technologies are still duplicating the innovations originated in Smalltalk. Docker is the latest, saving the state of a software solution.
Developer productivity is where Smalltalk really shines. There are many ways to measure productivity and code quality. Ultimately, total effort per function point is a useful one. On page 46 of http://namcookanalytics.com/wp-content/uploads/2013/07/Funct... a table sets out number of months to implement a 1,000 function point program. Here's a few metrics for dynamic and static languagues:
Smalltalk 21 coding months Ruby 46 C# 51 Python 53 C++ 53 Java 53 PHP 53 JavaScript 71 C 128 Assembly 213
By these measures, Smalltalk projects will be completed in less than half the time as projects using C#, Java or C++. Javascript centric projects will take 3x, but this is not really an apples to apples comparison.
Where Smalltalk really failed, was on the commercial side. It failed to be adopted by a critical mass of developers. Smalltalk was used successfully, due to tool costs, mostly in Fortune 1000 class enterprises. For my small software company, it was a secret weapon enabling me to outperform competitors. I didn't sell Smalltalk, I sold "solutions."