Hacker News new | past | comments | ask | show | jobs | submit login

> If Smalltalk GUI building is so great, how come nobody uses it today? Because it's maddeningly inferior to everything we have today.

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).




Yes, but today they're both free. Why don't you download Pharo today and use Morphic? Then come back and tell me it's competitive with Cocoa, Qt, JavaFX. Morphic was a neat idea where it was born (in Self!) but there are reasons it hasn't taken off among hobbyists—it's bloated, it's slow, it is worse for most usecases. If it were better today, where's the community of people being hyper-productive and trumpeting it today?


That's not what I was arguing. I was arguing that a better idea does not (necessarily) get adopted, even if it is superior. Sure, Smalltalk might not compete today, but I'd say it was superior /then/ (and still didn't see wide adoption!). That's why I don't have any hope that a superior idea will get adopted in the /future/, whatever it may look like (and this is my main issue here).

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).


I think we've reached agreement here, and I've calmed down a bit so I can restate things a little more dispassionately and maybe demonstrate that.

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.


I think you pretty much nailed it here.

> 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.


Nothing else to comment on but this:

> 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.


Thanks. This was a fun discussion.


Glad you had fun. I did too.


> competitive with Cocoa, Qt, JavaFX.

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: