Live data from Hacker News

If Smalltalk Is So Good Why Does Nobody Use It

c2.com

1–10 of 74 posts

Re: If Smalltalk Is So Good Why Does Nobody Use It

#2
I worked on two Smalltalk projects in the early 90's at two different companies. Both efforts were abandoned for C++. Some of the issues we encountered at the time:

* Numerical computation was too slow. Numbers used to be objects and all numerical computations followed object messaging. Ouch! This was eventually remediated but not before we'd dropped Smalltalk.

* Garbage collection was S-L-O-W. Your workstation would randomly freeze 30-60 seconds. It was that bad.

* The built-in windowing environment was an albatross in the early days of Windows and OS/2. Customers wanted a native look-and-feel not the weird (to them) Smalltalk window manager.

* Not everyone had yet bought into object-oriented programming, much less making everything an object. This was really bizarre at the time - even code was an object. Makes sense now, but few people were thinking that way then.

* It was strange. C++ seemed safer since everybody at the time knew and was comfortable with C programming. Little did we know the pitfalls awaiting us when using C++! :)

In the end I think the Smalltalk experience left such a bad taste in everyone's mouth that when these issues were resolved no one was interested in going back and giving Smalltalk a second look. Nowadays Smalltalk lives on in Objective-C. In fact one the shops I was in abandoned Smalltalk for Objective-C, which is one of the few instances I know of people using Objective-C outside of the Apple ecosystem.

Re: If Smalltalk Is So Good Why Does Nobody Use It

#3
The question is moot -- Smalltalk isn't so good.

Back in the 90s we were developing sales force automation software in VB3 (ugh!) which was by no means wonderful. Our stuff ran far faster on modest hardware than similar Smalltalk software running on (by the standards of the time) ludicrously powerful hardware. Delphi, when it came out, was far, far better still.

Smalltalk also seems to have accumulated annoying cruft faster than it got useful. Another large Smalltalk project I was involved in (as a UI designer) suffered from multiple incompatible class hierarchies. I wanted to make different controls that did similar things look similar, but it was impossible because some controls inherited from a 1-bit graphical library and couldn't be rendered in color, others from a 4-bit graphical library and couldn't be rendered in 256 colors, and others didn't respond to certain events in certain ways (e.g. action on mousedown instead of mouseup). It was an absolute nightmare.

The language may be fine, but the implementations of it were slow and bloated, and the class libraries were a disaster area. (Of course, the main company pushing Smalltalk at the time was IBM, which probably says something.)

Re: If Smalltalk Is So Good Why Does Nobody Use It

#4
A lot of times people like the idea of a thing more than the thing.

Meanwhile, a lot a people hate on C++, which they're only able to do because they learned its nuanced spec, which they only did because it had already reached critical mass in the wild, because it worked everywhere and was, despite the complaints, comprehensible, if hard to get perfect in the language-lawyer way.

Re: If Smalltalk Is So Good Why Does Nobody Use It

#5
post #4

A lot of times people like the idea of a thing more than the thing. Meanwhile, a lot a people hate on C++, which they're only able to do because they learned its nuanced spec, which they only did because it had already reached critical mass in the wild, because it worked everywhere and was, despite the complaints, comprehensible, if hard to get perfect in the language-lawyer way.

This argument reduces to saying that anything popular and widely used is actually better than anything unpopular but beloved by language enthusiasts. This simply isn't the case. Many, many factors beyond merit contribute to language popularity and usage.

Re: If Smalltalk Is So Good Why Does Nobody Use It

#6
post #5
post #4

A lot of times people like the idea of a thing more than the thing. Meanwhile, a lot a people hate on C++, which they're only able to do because they learned its nuanced spec, which they only did because it had already reached critical mass in the wild, because it worked everywhere and was, despite the complaints, comprehensible, if hard to get perfect in the language-lawyer way.

This argument reduces to saying that anything popular and widely used is actually better than anything unpopular but beloved by language enthusiasts. This simply isn't the case. Many, many factors beyond merit contribute to language popularity and usage.

You have to have a metric for 'better'. If its 'utility' then yes something popular is better than something unused.

Re: If Smalltalk Is So Good Why Does Nobody Use It

#7
post #4

A lot of times people like the idea of a thing more than the thing. Meanwhile, a lot a people hate on C++, which they're only able to do because they learned its nuanced spec, which they only did because it had already reached critical mass in the wild, because it worked everywhere and was, despite the complaints, comprehensible, if hard to get perfect in the language-lawyer way.

A lot of people also spent a lot of time hating on Windows, which they only were so familiar with because it had already reached such overwhelming "critical mass in the wild". Does it follow that all these complaints were ultimately misguided?

(I don't have any particularly strong opinions on Windows myself; it just seemed an apropos example for the Hacker News crowd. There are a million other examples of the same type, of course.)

Re: If Smalltalk Is So Good Why Does Nobody Use It

#8
post #5

Earlier quoted context omitted.

This argument reduces to saying that anything popular and widely used is actually better than anything unpopular but beloved by language enthusiasts. This simply isn't the case. Many, many factors beyond merit contribute to language popularity and usage.

You have to have a metric for 'better'. If its 'utility' then yes something popular is better than something unused.

Even "utility" isn't necessarily identical with "popularity". I suspect, in many cases, by "X is better than Y", people mean enthymematically "X would be better than Y if we were to start using X instead of Y, even taking transition costs into account"; it would be the death of progress to dismiss out of hand every argument of this kind.

Re: If Smalltalk Is So Good Why Does Nobody Use It

#10
post #5

Earlier quoted context omitted.

This argument reduces to saying that anything popular and widely used is actually better than anything unpopular but beloved by language enthusiasts. This simply isn't the case. Many, many factors beyond merit contribute to language popularity and usage.

You have to have a metric for 'better'. If its 'utility' then yes something popular is better than something unused.

Thus my motto for PHP: It's better than nothing at all. Usually ... FML.
Post reply on HN