Frustrations with Java
This article from David Buck explains exactly my frustration with Java and why I'm going back to Smalltalk. Read it: Smalltalk Debugging and Productivity.
Java is just now getting tools like we are used to Smalltalk, but they still have a long way to go. We recently switched up to Java 1.4 at work and I was excited because I had been hearing about it being able to "HotSwap" code. Well, I tried it out and it worked! Finally! But, over the course of the day, I found it could not handle "complicated" cases or would fail without reason. I finally boiled it down that it could only handle simply method changes. If you added a temporary variable, it failed; added an instance variable, it failed; or added a new method, you guess it, failed! So, my take was that it was better than I had before, but it still is pale compared to what I am used to in Smalltalk.
Another funny thing is that I am amazed that most Java developers don't even want these features or see the benefit! I've sat with countless develoepers that when I showed them that they could inspect code from Eclipse while the program was running, their jaws hit the floor. Now, they love the features now, but the thought never occured to them to try. But, in Smalltalk, it's a fact of life and you miss it and groan about it not being there in other languages.
The environment is the most powerful feature of Smalltalk and it's what makes it so cool. Without the environment, I guess we would call it Ruby or something...=)
I love David's blog because he's been showing the cool things you can do in Smalltalk and not in other languages...=) I got a few tricks up my sleeve that I plan to show as well. One such trick is one I did for the MS Agent Remote Control.