3 ms·
If the reason for Smalltalk's failure is simple pragmatism, how could anybody's argument rise above that level? The "blank canvas" features of Smalltalk like t
by bsdetector 11y ago
If the reason for Smalltalk's failure is simple pragmatism, how could anybody's argument rise above that level?
The "blank canvas" features of Smalltalk like the image, monkey patching, edit and resume, modifying individual object instances, retry, and so on are wonderful for experts and just terrible chaos for everybody else.
When you are designing a language, the thing to keep in mind is that an expert can create a masterpiece even from a Java-style "connect the dots" language, they just don't like to, but when using a language designed for experts the common programmer struggles to even create something common.
- vezzy-fnord 11y agoSmalltalk wasn't designed for experts, quite the opposite. That was a major intention, part of a line of efforts to remove the artificial segmentation between user and programmer.
- bsdetector 11y agoSmalltalk was designed for experts. It wasn't intended to be designed for experts though. That's why we study the reasons why it failed so that we don't make the same mistakes again.
- igouy 11y agoFailed? pdf "Ubiquitous Applications: Embedded Systems to Mainframe" http://www.davethomas.net/papers/ubiquitous1995.pdf http://www.davethomas.net/papers/ubiquitous1995.pdf Smalltalk was replaced by free-as-in-beer future-of-the-internet Java.
- bsdetector 11y agoYes, failed. Smalltalk failed. As in, it's been around for 40 years and it's not even in the top 50 on TIOBE ranking vs C which is everywhere. The index has its flaws, but being >50th is certainly a significant failure. Java is often claimed to be inspired by Smalltalk, but it's opposite in almost every way. Instead of an image, there's files. Instead of a persistent runtime and data, programs are started from scratch. Instead of monkey patching, classes are not modifiable. And so on. Java, intentionally or not, learned from the failure of previous languages. Actually Java is derived from Simula. The core of the language, even inner classes, map almost 1:1 with it.
- TeMPOraL 11y agoI guess it really depends on what you care about when you think about "failure" and "success". The type of languages that are popular in the industry is just like the type of operating systems that are popular in the offices of companies. Nothing to do with being actually good. Just barely good enough to make something the company can profit off.
- 59nadir 11y ago> As in, it's been around for 40 years and it's not even in the top 50 on TIOBE ranking vs C which is everywhere. The index has its flaws, but being >50th is certainly a significant failure. Are we assuming that the only type of success is continued growth and adoption? By this measure, every language that will ever have been conceived will fail eventually... Or is there a cut-off when you can't say a language failed any longer because at least it peaked high? There are lots of languages that have been big and have influenced all of programming and software development. I don't know if we can just blanket label them as failures because they don't have many users at the moment. These are languages that have inspired far more advancement in programming than most of the popular ones.
- igouy 11y ago>>Smalltalk was designed for experts.<< We have been teaching Smalltalk to children since the Spring of 1974… pdf "TEACHING SMALLTALK" SSL 77-2 June 1977 XEROX PARC https://ia601606.us.archive.org/15/items/bitsavers_xeroxparctchingSmalltalk_3505752/SSL-77-2_Teaching_Smalltalk.pdf https://ia601606.us.archive.org/15/items/bitsavers_xeroxparc...
- adamc 11y agoI think there is an in-between ground not covered by your comment. Good languages tickle (some class "foo" of) programmers in ways that tend to expand their repertoire. Many of those expansions enable better approaches to system design. It may be true that "experts" could do it even in Java, but many "foo-level" programmers would just do it the Java-way in Java, but can appreciate the better features of a better language in context. It's also probably true that many programmers will struggle with foo-level features. That harkens back to Vanier's LFM and LFSP essay: http://www.paulgraham.com/vanlfsp.html http://www.paulgraham.com/vanlfsp.html. Having seen LFM approaches to systems over the years, I'm skeptical that it is the right approach for anything with much complexity. YMMV.