So it seems that
every man and his dog is
commenting on the power of Smalltalk IDEs in response to Cedric's
interview with Vanguard Technologies.
Now I'll admit that Cedric is partially wrong, and that all the Smalltalkers are right, Blaine Buxton writes:
I generally look at Smalltalk's IDE as playing with a live patient. You are in the middle of a living and breathing system that reacts immediately to you. There's no shutdown, compile, restart, and retry. It's all happening right here and now. It's an incredibly cool experience especially when you realize that you can execute any code and inspect the state of the system.
Sure, alot of the time Smalltalk gives you this "everything is live" scenario, the problem I have is when Blaine (and others) say "there's no shutdown, compile, restart, and retry" which goes all out the window when you start asking them about deploying an application.
I've been using Dolphin Smalltalk from Object Arts off and on for the last year for a small windows project, to get an executable you strip the running image down to the executable you ship to clients. As part of this "stripping" process, all the classes and methods that are unused in your application are (as they process implies) stripped/removed leaving you with a nice small redistributable application.
A problem I've often encountered with this is that often methods or classes that I'm using, but don't reference directly in code (class names set in config files etc.) also get stripped causing a problem that only occurs at "run time" - a state of the application where all the wonderfull "everything is live" functionality of the image isn't available.
There's no means to update classes on the fly because the compilers been stripped out, I could include it - but then I'd be violating Object Arts licence aggreement. My only hope of debugging any problems is to take a generated .ERRORS file (stack trace, thankfully one that includes all local variables at each point in the stack), load up the image, load the strack trace into
Ghoul and hope I've not changed the source too much.
To say that Smalltalk is the holy grail is somewhat misleading. Sure the IDE's are functionally the same, if not superior IN SOME AREAS - they also leave ALOT to be desired.
I upgraded to
Dolphin 6 shortly after it was released, but must confess to not having had much time to experiment with it yet, thou I did check out the newly implemented intellisense completion. One of the biggest reasons why people say they like intellisense is that it lets them explore a class's methods without moving their concentation away from the code block there writing, however a minor stumbling block is when it offers me methods that don't exist...
In a workspace I entered the following:
#('1' '2' '3' '4') p
and was offered a method called print. But when executing that I get an error saying the method doesn't exist on an Array....
DOH! When your autocompletion gives you the wrong information it makes it more than worthless, I hope I don't get people saying 'oh but its because the IDE doesn't know what object you're wanting to complete...' cause that'll be playing right into the arms of pro-static-typing....
Smalltalk IDEs may have provided all these wonderfull features for the last 20 years or so, but they also seem to have sat stagnant with the thought that they don't need to improve.
tags: java smalltalk development
links: digg this del.icio.us technorati reddit