
Smalltalk: Our Death has been Exaggerated - raganwald
http://www.cincomsmalltalk.com/blog/blogView?showComments=true&printTitle=Smalltalk:_Our_Death_has_been_Exaggerated&entry=3419278263
======
gruseom
I'd like to know if the point attributed to Ward Cunningham - that Smalltalk
failed because, relative to C++ etc., it was "too easy to make a mess" - is
something he (a) really said and (b) meant in the way it was quoted. The idea
that C++ programs are cleaner than Smalltalk ones is just bizarre. Edit: I'd
be surprised if Ward had spent much time around C++ systems.

~~~
hugs
I'd like to know a and b, too. But Bob's point wasn't that C++ programs look
cleaner. His point was that it's very obvious that if you're not careful in
C++, you can can shoot yourself in the foot quite quickly, and therefore,
you're less likely to try crazy things in C++ that would risk foot injury.

~~~
gruseom
I didn't say "look cleaner", I said "cleaner" as in not a mess, which _was_
his point (in the sense that you describe), and it's ridiculous, an argument
against higher-level languages. Of all the things one could argue killed
Smalltalk's chances of becoming mainstream, this has got to be the dumbest,
which is why I wonder exactly what Ward really said and in what context.

A former Smalltalker I worked with for years argues that it was mostly the
greed and arrogance of the vendors that ruined its chances: greed as in
refusing to make even trial versions available for free, and arrogance as in
refusing to make it easier to integrate with other systems. Edit: This, by the
way, was the perspective of a guy who was simply reflecting on what he had
observed, not someone with a software ideology to push... as opposed to Bob
Martin, who seems to be saying "Smalltalk got killed so we should all write
lots and lots of tests".

------
zacharypinter
I agree with most of what this article says. TDD still seems like a lot of
busywork to me, which is exactly what I try to avoid as a programmer. If
something is tedious, I do my best to write a script to do it for me
(sometimes even if the script takes longer to write than the tedious task).

That said, I really like looking to tests/specs for instructions on how to use
a new API (especially if it's undocumented). Tests are definitely nice to
have, even if they're a pain to write.

Also, I like Uncle Bob's idea of making the code cleaner with every commit
(though I would of course separate any refactoring into its own commit).

------
alek
The claim that Smalltalk is dead is very much based on how many people use
Smalltalk today - and the answer is very little. Arguing about Smalltalk's
features, as awesome as they may be, does not refute the original
presentation's point.

------
alphazero
He seems to miss the point that TDD is more critical in a weakly
typed/dynamically typed system. Yes, C, C++, and Java didn't have TDD when
they started, but there was this thing called a compiler ...

~~~
praptak
This might be true for a theoretical perfect strongly typed language (SML
comes close), but whatever C and C++ might gain by static typing, they lose by
things like casts to (void *) and of course their unsafe pointers. Even Java
isn't very type-safe, especially when it started - collections held Objects,
which you had to downcast (bye static type-safety, hello runtime errors).

~~~
gruseom
Yep. It's amusing that people go on about how compilers catch their errors and
then spend hours debugging InvalidCastExceptions.

