Wednesday, July 27, 2011

Who looks at Smalltalk?

The C guys looked at Smalltalk and said they didn't need object orientation. They could structure their programs just fine.

The C++ guys looked at Smalltalk and thought, actually, the OO stuff is rather cool for building well structured code, but all the rest is just a performance hog, especially garbage collection.

The Java (and later C#) guys looked at Smalltalk and thought, you know, in most cases garbage collection is a really good thing as it saves programmers time and completely avoids common C/C++ malloc/free bugs, and anyway the performance cost is hardly noticeable in most applications, but all the rest of the stuff in Smalltalk is fluff, especially dynamic typing because it's obvious that static type checking will result in much less buggy programs, especially when you use SUnit (which they renamed to JUnit (of course!)) as well.

The Python and Ruby guys looked at Smalltalk and realised that using dynamic types gave them much less brittle systems which could flexibly change and evolve over time. They liked unit testing too (they called theirs something else too), and the ideas of refactoring (that was invented by the Java guys too, right? (not)) were even more powerful in a dynamically typed world ... and if Smalltalk is so good why didn't the Smalltalk people think of something like JUnit and refactoring! All the other stuff in Smalltalk was just fluff, though. For example, who would want to have an image based development environment or have the development tools themselves visible and changeable in that same development environment?



Bob Nemec said...

The sad truth is that competence does not always lead to popularity. If only Smalltalk could learn to be smart AND good looking.

Su-Shee said...

I look at Smalltalk as a Perl developer and suddenly Perl's MOP "Moose" makes much more sense in wording and idea. It also incorporated traits (and roles), so that's another thing I'm feeling at home immediately. (Same goes for Perl 6..)

I also look at Smalltalk and its history as a GUI developer and grab ideas and architecture and envy the level of integration all components have.

On the other hand, I expect Smalltalk to be _extremely_ smooth when it comes to usability and visuals - with having invented GUI and all. :) And that's something contemporary Smalltalks could do with more polish and better style.

And I look at Smalltalk as a GUI _user_ and wish I could have a windowmanager which has this peculiar "hack as you go" spirit Smalltalk offers, because as a developer I'm a user too and having _both_ worlds in one would just be perfect.. :)

Anonymous said...

No one in the Smalltalk community ever seems to ask the right questions. Too much self indulgence.

sebastian said...

heh, nice :D

I've enjoyed your post.

jamesl said...

It will be smart and good looking

(Bob - I hope to see you at ESUG)

Rgs, James.

geff said...

Hilarious and to think that c++ is getting garbage collection and java already got generics and now are getting closures.
Oh yeah and don't forget the "dis"advantage of the VM and how heavy it's to startup. These days the whole Smalltalk vm and image startup faster than most reasonably big c++ apps.
And all they needed to do was use Smalltalk :)

Frank Shearar said...

The Scala guys try reduce the cost of starting up their JVMs with fsc, a compiler daemon. Maven 3 and SBT bother introduce a "shell" to reduce same. Both are halfway towards simply working within an image.