- It's stupid because you can use Pharo today; Smalltalk isn't dead. Try it and find out if it's great. They're trying as hard as they can to keep it relevant and it's a constant struggle because they have to build from scratch everything Smalltalk didn't invent.
- It's stupid because tiny languages like Smalltalk beget huge libraries; I have owned ~20 books on Smalltalk and all but two of them were essentially useless tours of defunct libraries. (The other two are fantastic and useful no matter what language you're using, if it's OOP.)
The cult-building is maddening because it misses the truly amazing things. To appreciate the amazing things requires immersion, and immersion sucks! You know, if you make a web app with Seaside and it throws an exception, you can serialize the debug window, bring it down to your image and continue the debugging session locally. The serialization works on blocks, which is to say closures, so you get the whole state of the app locally. Has the OP tried this lately? Because it only works if you use the newest serialization method, if you have exactly the same code in both images, and once you make the change in your local image, how do you get it up to the server again? Oh, you either have to endure the awful homegrown Monticello VCS (inseparable from its insufferable GUI, because Smalltalk) or you have to do the file-out file-in trick with git, because Smalltalk hates external tools.
Smalltalk was great, is great. Pharo is great. What makes it a cult is the alpha-and-omega bullshit. Great ideas happened before and after Smalltalk. They chose general names for specific ideas. History is mutilated if we ascribe to Smalltalk the general ideas or give Smalltalk credit for unrelated things because some of the same folks were in the room.
I'd argue that the CompSci community DOESN'T choose the best thing that comes along, but merely the first one that fits the bill. It's a mixture of darwinian processes and market force.
If you take the example of Smalltalk vs UNIX vs DOS in the 80s then you get exactly that. People chose DOS+IBM PC because it was a shitload cheaper than a Xerox Star. They'd also choose UNIX (for mainframes) over Smalltalk because it was already there, everyone knew how to use it, and nobody wants to ever break backwards compatibility (so you're stuck).
(EDIT: also, compare to the WWW. Is it really so much superior than what we had before?)
Sure, SOME things have improved, but overall it's a complete shit show and I don't think that the things that have improved are THAT much better (while everything else is downright garbage).
I'm especially not thrilled about the underpinnings of current systems. You have to put in a huge amount of effort (millions of lines of code) for very little effect (web browsers, modern operating systems, etc). Just because something is the best that doesn't mean it is actually good. /I/ think, we could do a whole lot better. Just recently, I had a similar debate. Money quote: "nothing beats a nice C implementation".
What I'm always curious about: does this /Idea/ really not work or did simply put not enough effort in it (compare what amount of money, time, and man power is spent on modern systems compared to Smalltalk or any less popular system; I'd say it isn't a fair comparison wrt the former leading to better results).
Fundamentally, I think if you're talking about Smalltalk, you're either talking about it in situ, or as it is today, or as an influencer. In the original context, it was thrilling, far ahead of its time in many ways, and lost out because of the reasons you mention: expensive machines, expensive licensing, performance.
If you're talking about it as it is today, it's a mixture of great and horrible and if someone is uniformly positive about it that tells me they have limited experience—either with Smalltalk itself or with competing modern systems.
As an influencer, there are things that can make a reasonable claim to inherit concepts from Smalltalk, especially Ruby. But the influence is not as wide as gets claimed by its proponents. Some of the ideas in Smalltalk are synergistic and don't work well taken piecemeal. Many of the claims about Smalltalk's influence above are unreasonable, either because they are a semantic ball-and-cup game or because they claim a kind of invisible human influence that bears no technical resemblance.
Smalltalk is worth using today, but it has actual faults that shouldn't be whitewashed, and I find the cult of Smalltalk distasteful because it prioritizes in-group mythbuilding over the truth. We should all download Pharo and use it for a few weeks. That direct, personal experimentation is the ultimate cure to technology triumphalism, whether we're talking about Smalltalk or anything else.
I certainly agree with you that we can do better than what we have today, and that Smalltalk has lessons for how to do that which would absolutely apply.
> If you're talking about it as it is today, it's a mixture of great and horrible
Most PC run Wintel and nowadays even more people use/care about ARM/Android/iOS. That's reality and I don't debate that. I'm only/mostly interested in reserarch/CompSci as a discipline.
> But the influence is not as wide as gets claimed by its proponents.
To me, the problem always seemed to be less of how wide these ideas spread but how well they and their origins were understood. OOP made a lot more sense to me, when I found out what Alan Kay had in mind (Sketchpad, Arpanet, biology, etc.).
> Some of the ideas in Smalltalk are synergistic and don't work well taken piecemeal.
Exactly. I think of Smalltalk as more of a system and not just a language. In my opinion, C++, Java, et al. fail (or aren't as good as they could be), because they only take just one idea from Smalltalk (e.g. classes; or the GUI, in case of the Apple Macintosh or Niklaus Wirth's Lilith), when the good things about Smalltalk were due to the interplay of multiple ideas.
> Smalltalk is worth using today, but it has actual faults that shouldn't be whitewashed
I see Smalltalk (and its usefulness) more as a research system than a production system. I'm mostly interested in research and moving Computer "Science" as a discipline forward. I'm sick of people trying to sell me their 5% performance improvement as "new"/"research". Problem is, things haven't fundamentally changed since 1965 (the von Neumann bottleneck is still present, both physically and mentally). Smalltalk could have been the greatest piece garbage in computing history and I'd still respect it (somewhat), because at least it tried to do things fundamentally different.
> I find the cult of Smalltalk distasteful because it prioritizes in-group mythbuilding over the truth.
To be honest, you've got that problem everywhere. Heck, look at Apple, Linux, BSD, Unix/Plan9 …
Btw: I'm currently reading "Smalltalk-80: The Language and its implementation". What's your opinion on that book? And thanks for the other two book recommendations.
> Btw: I'm currently reading "Smalltalk-80: The Language and its implementation". What's your opinion on that book?
It's required reading and it will tell you how to build Smalltalk-the-language (inefficiently, but productively), but it won't really teach you how to use Smalltalk today. For your purposes, it's definitely the right book.
Where did Cocoa come from? It came from NeXT, which was Steve's second attempt at implementing the ideas he got from his PARC visit where he saw Smalltalk, the first obviously being Lisa/Mac.
And of course Cocoa is implemented in Objective-C, which is Smalltalk added to C.
And I would claim that Cocoa is hands down superior to Qt or JavaFX (does anyone actually use JavaFX?), and for precisely the reasons that are made possible by the dynamic nature of Objective-C. Having experienced 4GLs and other UI building systems, Cocoa managed and still manages to achieve the holy grail of combining 4GL-/screen-painter-like productivity with complete flexibility to implement anything you want, on a smooth curve.
We take that achievement for granted nowadays, but it is no mean feat.
But yes, Pharo/Squeak etc. are somewhat fossilized, but still amazingly productive compared to most anything else, and that's why there are communities of people committed to these fossils, being amazingly productive on them and trumpeting it.
How big is Python the language? How big is Erlang/Elixir?
The power you get from each is that there are very powerful batteries included, and most 3rd party libraries fall into the same patterns learned from the STL.
You're harmed by your "honesty" and "passion". People don't listen to what you have to say if they are turned off by your tone.
Look, I've been there, too. I've gotten angry about Lisp and Haskell zealots, for much the same reasons you got angry about Smalltalk fans. And my anger was... unproductive at best.