5 ms·
Smalltalk: Our Death has been Exaggerated
- zacharypinter 18y agoI 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).
- gruseom 18y agoI'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 18y agoI'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 18y agoI 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".
- alphazero 18y agoHe 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 ...
- vorador 18y agoA compiler doesn't protect from segfaults.
- praptak 18y agoThis 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 18y agoYep. It's amusing that people go on about how compilers catch their errors and then spend hours debugging InvalidCastExceptions.
- alek 18y agoThe 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.