I generally like Uncle Bob, but he isn't a Smalltalker and didn't demonstrate any insight into Smalltalk's unpopularity in that talk.
Worse, this is hardly the first or only time a prominent Rubyist ignorant of Smalltalk has publicly attacked it. Sarah Mei did so in a talk two years ago, mocking it for not having any conferences of its own (ESUG, Pharo Days, and Smalltalks apparently don't count), and she and Steve Klabnik recently had fun tweeting anti-Smalltalk quips back-and-forth.
Given that most of the non-awful stuff (where "awful" means, for example, syntax too complicated to be described by a CF grammar or horrible performance) they like about Ruby was lifted directly from Smalltalk, you'd expect Rubyists to be extremely deferential and respectful towards Smalltalk and Smalltalkers, but they aren't. Instead they're arrogant and condescending despite being ignorant, validating all of the well-earned stereotypes of Rubyists.
As for why Smalltalk "died" (cf. pharo.org) I would say it was too expensive, both in licensing terms and hardware costs. You could outfit entire teams with Borland or MS tools for the price of a single seat license for Smalltalk. Some vendors would charge (and still charge) a percentage of your revenue forever, which is insane. Then Java came along, and it was free.
Smalltalk also missed out on the open source revolution, not having viable libre implementations (Pharo, GNU) until relatively recently.
I suspect it was performance, cruft, and aesthetics that killed it more than price. After all, expensive things that get popular generally become cheaper (or have cheaper versions released).
My experience with SmallTalk was that by the time it had any chance of uptake it was already knee-deep in cruft (e.g. multiple overlapping visual class hierarchies that would be mixed and matched within projects to devastatingly awful effect).
In my experience (admittedly mostly dealing with IBM and IBM-sanctioned vendors) a typical Smalltalk demo was a program that ran 10x slower than VB on a computer with twice as much memory (and at least as good a CPU) as anyone other than a Smalltalk coder had.
And Smalltalk programs tended to look awful and not be easily fixed (because of the overlapping cruft issue).
I'm pretty sure that Rubyists are no more ignorant of Smalltalk than Smalltalkers are of Simula.
It's weird, I've read stories about Visual Age for Java being better (UX, speed) than the first versions of Eclipse. Unless early Eclipse were unbearably slow, I took it as a sign that ST was solid for complex programs.
> I suspect it was performance, cruft, and aesthetics that killed it more than price. After all, expensive things that get popular generally become cheaper (or have cheaper versions released).
I think performance was a huge problem (I did mention it in passing). But you have to remember that just getting your hands on Smalltalk was difficult back then. There were no free versions, and the commercial versions were expensive. At least with Unix, most university workstations in the 80s had a copy, unlike VMS. The result: a proliferation of free Unix-like OSes while the less accessible VMS slowly fades into obscurity.
> I'm pretty sure that Rubyists are no more ignorant of Smalltalk than Smalltalkers are of Simula.
I don't understand the analogy. Ruby is an unoriginal Smalltalk knock-off that compromises its purity, simplicity, and dynamicity. Rubyists should therefore express deep admiration for Smalltalk in the same way Smalltalkers do Lisp, but they don't. Simula was an ALGOL-60 derivative that had classes and co-routines; by comparison, Smalltalk was nothing short of revolutionary, yet I've never seen a Smalltalker attack it.
Given the most common mention of smalltalk is of it being the first OO language and I seldom see it corrected by people who should know better. At least Rubyiata acknowledge Smalltalk exists.
>>I suspect it was performance, cruft, and aesthetics… In my experience (admittedly mostly dealing with IBM and IBM-sanctioned vendors) a typical Smalltalk demo was a program that ran 10x slower than VB on a computer with twice as much memory…<<
There is an important technical / licensing / business problem with Smalltalk that has not been mentioned -- lack of library standardization.
Apart from a few core classes, each Smalltalk implementation had different class names and method names for things that once-upon-a-time were special but quickly became commonplace -- like windows and menus and …
So you could never hire a "Smalltalk" developer: you hired a VW developer or a Smalltalk/V developer or a VA developer and waited for them to get up to speed with an unfamiliar environment.
Notice ParcPlace's offering is more than 7x that of MS or Borland. I believe both it and Digitalk's competitively-priced alternative were merged into a single product after PP and Digitalk merged.
I'm a Rubyist. I've never written a serious software with Smalltalk, but I love the core ideas of Smalltalk.
I'm not convinced this is the end of Smalltalk. Given the increasing interest in virtual reality (the Rift, Magic Leap, HoloLens, et. al), I think there will be a significant interest in being able to directly program an immersive VR environment.
I think Pharo and the quiet work on Open Cobalt will surprise people once people start looking for ways to live-edit things in a VR environment, and the kids in the upcoming generation gets a hold of it.
That's nice of you to say, but I think Smalltalk will probably remain unpopular because it's too different (image-based environment), too powerful (in the Lisp sense, where you can modify core parts of the system while it's running, including the compiler), and worst of all, it's now old, and most developers aren't interested in old tech.
The image-based environment throws me off, but it's being reinvented in a different way: Docker container images.
I'm not really thinking about popularity as a general platform like the way a lot of people use say, Java. I'm thinking about a niche area that is still relatively obscure, will be popular in the future, and very few other technology platform will fit it well.
I think a lot of people will try to throw Javascript as the scripting language for the building VR worlds. It might be workable, but the mindshare for creating VR content is still up for grabs.
The biggest obstacles I think will be in two areas:
(1) An equivalent Github / Open Source thing. Open Source did not really take off until Github and it's sibling clones got popular. That property was written extensively by Stephen O'Grady of Redmonk -- git and Github made things easy to fork and easy to merge, which reduces the friction of having the community contribute things back. I'm not necessarily saying to implement Github for SmallTalk, because that would not bring the uniqueness of SmallTalk in. But for example, I can dip into Github and check out what the Python or Lua community are doing. Montecello baffled me until I realized that you're not supposed to interface it with the web, you're supposed to interface it from inside the SmallTalk environment. This leads to the psychological shadow-side of what makes SmallTalk awesome.
(2) The all-inclusive environment of SmallTalk shares a similar attitude that long-time Lispers have with their environment, particularly Emacs. This is more of a psychological thing. At the minimum, there's likely not as big of a push in creating the tools mentioned in (1). This is the psychological shadow-side of having a very comfortable environment that you can customize to you. There's always going to be some sort of emotional resistance to bringing new stuff in there. Montecello is a great example: the web is kinda the lingua franca of exchanging ideas, so if it's not on there, it's hard to see. I go looking at the Montecello repositories via the web browser, and that experience was broken. It took me a while to realize I was supposed to browse that stuff from inside a SmallTalk environment. (So just off the top of my head: one idea is say, use that Squeak -> Javascript to host an image so you can browse into the SmallTalk world; preset it with Montecello. Just as a starting point.)
I've only looked at the community on the surface, but I'm willing to bet that the Pharo folks are making changes in there.
For me, SmallTalk is a really important technology, not for the world as a whole, but for kids. I usually think of my step-daughter as the yard stick: what would I want to show her about this world? I'm not intending her to make a living off of SmallTalk, but something better, more important: this idea that she can remake her environment by first conceiving and envisioning, and then clearly expressing her intent. That's a skill she can take into any domain.
But yeah something like: run around in a voxel engine like Minecraft, and being able to edit any voxel block in front of you to do something, or even add completely new behaviors. And sharing that with your friends. While using an Oculus Rift. Something along those lines.
... I'm not sure which tweets you're talking about, exactly, but I have a lot of respect for Smalltalk. Some of my earliest programming was in Hypercard, which used a derivative of it. Smalltalk Best Practice Patterns is a favorite book of mine.
The only thing I can think of was quoting that old adage, "In an OO codebase, everything happens somewhere else," which was said by a prominent Smalltalker but is about far more than Smalltalk.
I don't use Smalltalk personally because its greatest strength, the image, is also its greatest weakness, a very unusual development environment. Vim keybindings are basically part of my DNA by now, and it's much harder to share code without a textual representation.
Worse, this is hardly the first or only time a prominent Rubyist ignorant of Smalltalk has publicly attacked it. Sarah Mei did so in a talk two years ago, mocking it for not having any conferences of its own (ESUG, Pharo Days, and Smalltalks apparently don't count), and she and Steve Klabnik recently had fun tweeting anti-Smalltalk quips back-and-forth.
Given that most of the non-awful stuff (where "awful" means, for example, syntax too complicated to be described by a CF grammar or horrible performance) they like about Ruby was lifted directly from Smalltalk, you'd expect Rubyists to be extremely deferential and respectful towards Smalltalk and Smalltalkers, but they aren't. Instead they're arrogant and condescending despite being ignorant, validating all of the well-earned stereotypes of Rubyists.
As for why Smalltalk "died" (cf. pharo.org) I would say it was too expensive, both in licensing terms and hardware costs. You could outfit entire teams with Borland or MS tools for the price of a single seat license for Smalltalk. Some vendors would charge (and still charge) a percentage of your revenue forever, which is insane. Then Java came along, and it was free.
Smalltalk also missed out on the open source revolution, not having viable libre implementations (Pharo, GNU) until relatively recently.