Why We Get Annoyed By Smalltalk

Lots of folks around here think that SmalltalkLanguage is the greatest thing since sliced bread (or since Lisp, at any rate--the other language with a large contingent of SmugWeenie?s). This Wiki has a few pages, such as WhyWeHateLisp, where the non-Lisp community can fire back. No such pages seem to exist for Smalltalk (though a few, such as WhyIsSmalltalkDead, discuss its failure to gain mind and market share).

Smalltalk is great; but it's not perfect. There are many reasons WhyWeGetAnnoyedBySmalltalk. (I couldn't bring myself to write WhyWeHateSmalltalk?; as I don't hate it, or any programming language. OK, I do hate VisualBasic--but that's because it's a SteamingTurd? which manages to make C/C++ look like, well, Smalltalk.)

So... things not to like about Smalltalk.

I've deliberately left off the list the following complaints about:


There used to be a complaint up there about Smalltalk lacking a "case" statement. In Smalltalk, a case statement is just an ordinary method call. Squeak has one. It's called #caseOf:otherwise:. You can use it like this:

suitName := suitNumber caseOf: {
    [1] -> ['diamonds'].
    [2] -> ['clubs'].
    [3] -> ['hearts'].
    [4] -> ['spades'].
} otherwise: ['invalid suit'].
I don't think I've ever wanted to use it, but it's there. (Or if it isn't, you can define it yourself. :)


Regarding "Smalltalkers are annoying because they bash Java, but C++ bashing makes sense": is this a case of CompetingWithCousins? I don't think that Java and C++ are the same, but I don't think they're nearly as different as I used to think. -- AdamSpitz


These complaints all seem like learner's curve rants to me. All those braces in C and Java sure do annoy me. Yup.


CategoryRant CategorySmalltalk


EditText of this page (last edited September 25, 2003) or FindPage with title or text search