2 ms·
Here's my thoughts about the demise of Smalltalk, if you will. There are of course many reasons, and as said by others it's still alive and well with Pharo. T
by galaxyLogic 12y ago
Here's my thoughts about the demise of Smalltalk, if you will. There are of course many reasons, and as said by others it's still alive and well with Pharo.
The first reason may be just that it was too good, too ahead of its time. A huge programmer population already existed for C and C++ at the time Java with its C-like syntax came around. In programming languages "incrementalism" rules, which is easy to understand when considering how big an effort it takes to become an expert in one.
I think Smalltalk was also a victim of its own success. It promised a huge increase in productivity and software quality. This caused a business-war among its few suppliers at the time (Parc Place, Digitalk) and wars are never good.
And there's a technical reason for that too. Smalltalk is not just a language, it is an environment with a big library built into it. Even though the class-hierachy was mostly given by the original Smalltalk-80 there were small differences between the vendor-provided libraries which made it hard to run a Smalltalk application written for one Smalltalk virtual machine on another one. Which made it more important for every Smalltalk vendor to try to tightly own their users.
Here again ST was a victim of its own "goodness". The class-hierarchy is a tightly-knit set of classes which allows for maximum of code-reuse, but also means that it was not easy to combine classes from different platforms. If you took one class from vendor X it meant that many other classes had to follow and those could override similarly named classes in the target environment, which again would break many other things in the target platform and so on.
In other words Smalltalk was not modular enough, it was not easy to combine classes written on different platforms with each other. Smalltalk is not only an "island of its own", every Smalltalk is more or less an island of its own. Then again there's still only talk about bringing modularity to Java. But Java has the benefit of non-diverged platform. THAT also almost happened, with "Microsoft Java".
The ability to easily reuse large portions of the Smalltalk platforms is a huge benefit for productivity, at the same time it hinders co-operation between programmers working on different Smalltalk platforms.