The Smalltalk Experience

You feel like you're in a virtual environment that you can at the same time build in and use. It's immediate, useful and malleable.

Environments that use the SmalltalkLanguage syntax but don't have the same environment miss a lot. It's just not the same.


I'd like to find out more about this model of "solution-building". Is there any other way to do this short of learning SmallTalk?


I'd like to see the same thing for JavaLanguage (I guess that's what VisualAge is, but it's got the whole VisualLanguage thing, which I'm not sure about yet... more about that on the VisualLanguage page).

-- JeffMantei 2000-11-28

Something else about TheSmalltalkExperience is the ease with which you can build your own tools. After you've done something once or twice, you start itching to make a tool to automate the process. Like creating accessor methods, for example. Or refactoring code. It's not that hard to do in Smalltalk because the environment is totally open - the methods to extend the system coexist with the application methods in the same environment. There's a similar feeling in UnixOperatingSystem, which encourages users to build their own scripts, a kind of extension to the system.

--JeffMantei 2000-12-01

This is one of the great losses in the move from VisualAgeSmalltalk to VisualAgeJava, the API to the environment is much, much smaller. Apparently, OTI had awful migration problems because people kept hacking around in the private part of the environment so new releases would break things. --SteveFreeman

The semantics of Java are not rich enough to directly support the Smalltalk environment. For example, the absence of a Smalltalk-style metastructure means that "classes" in out-of-the-box Java are little more than glorified (and name-mangled) groups of procedures. Java's message dispatch and execution model is similarly hosed. As a result, the IDE of VisualAgeJava is, itself, written in Smalltalk, which is then wrapped around a Java environment. The fact that this works as well as it does is testimony to the strength and power of both the Smalltalk model and also the IBM virtual machine that runs it. In fact, VisualAgeJava and VisualAgeSmalltalk share the *same* virtual machine -- this is part of what makes the whole game possible.

While you are absolutely correct that that extensibility of the VisualAgeJava environment is significantly less transparent than VisualAgeSmalltalk, it is still far more extensible than it appears at first blush. The enterprise edition comes with two features, "IBM IDE Utility class libraries" and "IBM IDE Utility local implementation", that allow you to do just about everything you can do in Smalltalk -- you just have to work a LOT harder to accomplish it. This seems consistent with the rest of the Java culture, so perhaps its intentional. Specifically, classes and methods can be dynamically built, loaded, unloaded, versioned, and so forth.

I've been able to get most of my Smalltalk code generators, accessor builders, and similar things running in VisualAgeJava. I haven't tried to hack the UI yet, but I'm guessing/hoping that it is similarly difficult but possible. -- TomStambaugh


EditText of this page (last edited January 29, 2001) or FindPage with title or text search