Something I Know

Cult of the dead

Here is the famous cult of the dead discussion. It occurred on the Squeak mailing list in 2002. It primarily talked about the aspects of Smalltalk that make it more like an operating system than just a programming language.

My favorite excerpt is this single paragraph:

"By contrast, most all other computer languages (and certainly all the mainstream ones) build dead programs. The code base for these dead programs is totally static, it cannot grow, cannot mutate, and cannot become more interesting as time progresses. Most, if not all, of the data structures are dead. The tools that the cult of dead use for propagation of their kind are usually centered around things like files and file editors and post mortem debugging tools, and recently have been swaddled in graphical interfaces giving the illusion of being living dead. [As an aside, I recently showed a friend of mine the "versions" of a method that I had coded, using the built in Squeak tools. This minor part of Squeak brought a wide eye stare of astonishment from a high priest of the cult of dead]."

It’s really hard to give a better explanation than that. It’s so funny that many people want to consider Smalltalk a dead language because it is not widely used and predates even the Macintosh. The truth is that Smalltalk is just far from what the typical software developer expects. Many can’t retrain themselves to learn a new paradigm that is so radically different. Smalltalk is dead to them because they don’t want to experience it. It is ironic because Smalltalk is one of the only "living" languages.

As time marches on we see bits and pieces of Smalltalk become mainstream. Virtual machines and garbage collection being key examples. The mouse is another example. Smalltalk had it before there were even Macs and it had three buttons. People argued and fettered for years that putting cut-out cheat sheet overlays on top of their keyboards was better than using a mouse to select menu options. The mouse "slowed you down." Silly.

Java is an interesting example. Sun Microsytems started with "self", another programming language, but it failed to gain acceptance. So Sun changed the syntax to make it more like C and all the sudden, instant approval. Wow, a C-like language with garbage collection. Cool! Just goes to show you, the average programmer is not interested in pushing the envelope to learn new tricks. Of course it wasn’t until Sun purchased a small company that was about to release Strongtalk that Java really took off. That company knew how to make a fast just-in-time compiler which accelerated Java’s performance immeasurably.

To further elaborate lets talk about Java and the Eclipse IDE. Eclipse does an amazingly good job of making java code look alive because it allows you to check references to methods and refactor without fear. That is what the author meant about the "living dead." Still, Eclipse is resource intensive. It ran hopelessly slow on my 500Mhz G4 Titanium Powerbook. Squeak, by contrast, is very fast on that same hardware. Plus, you can rewrite methods and add new methods at any time in Smalltalk. Java is just starting to be able to do this with JavaRebel but that takes even more CPU horsepower. Because all objects are living and breathing in Smalltalk you can even post a question in the form of specific parameters and a resultant output. Smalltalk will rifle through all the objects to find methods which match these criteria. Amazing but true.

Posted by admin at 6 August 2009, 9:06 pm with tags Seaside link