Ian Bicking: the old part of his blog


The Smalltalk community is very much a "free software kind of community". Look at CampSmalltalk, look at all the code visible to you in the commercial Smalltalks, look at the culture of sharing code, look at the principle of delivering code in source, look at the availability of free (in eiter sense of the word) Smalltalks - lots of them.

And the point that "most advanced features" are in the commercial arena is also IMHO not true. And besides - what are we comparing to? The same can be said of most other languages/environments too.

The thing you call a "huge flaw" is instead part of what is best with Smalltalk. If you just want something that is just like everything else - then fine, stick to everything else instead. Saying something is "flawed" because it is different is just plain ignorant. And the syntax is in many ways superior - ask anyone who have grasped the concept of keyword syntax and realized that it conveys much more information to the reader. Other langs have tried emulating it with optionally named arguments.

The idiocy about ravioli code is almost too dumb to respond to. It's called OOP and Smalltalk invented it. Ravioli code is just a good description of BAD OO code, not OO code in general.

Then comes more silliness trying too fool us into thinking that Smalltalkers write their programs in a workspace. Of course not - workspaces are meant as a playground, an experimental scrapbook. And then comes the "there is no program" line again reinforcing that you haven't understood OO - programs or systems are made up of objects, and then you can package them as an executable using various techniques. What is the problem?

Furthermore take a look at ChangeSets (admittedly tricky sometimes, but a nice concept) or Monticello for a free very good system for managing source code. Sure, free such advanced systems haven't been around in abundance - but I can't say I see them in other environments either really - they just rely in file based CM solutions non aware of the semantics of the language.

Saying that "lack of support for simple imperative programming" almost takes the biscuit. It is IMMENSELY easier to whip up an "imperative" snippet of code in Smalltalk than in most other languages. Not that Python, Lisp and Ruby (just to mention a few) don't have a similar capability. But it is simply not true what you are saying.

And then in the end you are saying something vague about the world not yet ready for Smalltalk blabla. Did you know that Smalltalk had about 33% (don't remember the reference, but C++ was top dog then at about 60%) of the OOP market before Java with its hype came onto the scene? Are you aware of the large systems built using VisualWorks, VisualAge and GemStone?

Btw I know several companies using Squeak for products including our own - and you know what? It works perfectly.

I could have made this simple and instead just repeated what Vassili wrote. So tired of people throwing around theories without any solid facts or experiences to back it up. You don't see me blabbering on about say Haskell, OCaml or Ruby - simply because I don't know enough facts.

Comment on Where Smalltalk Went Wrong 2
by Göran Krampe