This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Where has all the source code gone?
Feed Title: David Buck - Blog
Feed URL: http://www.cincomsmalltalk.com/rssBlog/buck-rss.xml
Feed Description: Smalltalk can do that
When you work in Smalltalk for a long time, you get used to some of the luxuries of the the language and the environment. When you then work in other environments, you notice that something significant is missing.
One of the main things I notice is missing in Java, C#, C++, and other such environments is source code - specifically, source code for the whole environment around you, not your own code. Of course the other environments let you easily see your own code, but what if you want to know how some base library class works? There's no source. You can't step into it in debuggers. Worse still, if that code called your methods, you can't see the callers' source code in the traceback.
For me, this is a big deal. It's especially true if you are expected to subclass from a system class. A subclassing relationship is a much more tightly coupled relationship than a delegation relationship. If you don't understand how the superclass works, you could make big mistakes in the subclass and create strange problems or outright failures.
I once wrote a VisualWorks user interface testing tool called VWUnit. I was only able to write it because I could see the source code for the widgets, see how they responded to clicks and keyboard events, and simulate these actions in my testing harness. This tool has dramatically improved our development environment, the quality of the system, and the business value to our customers.
Without full source, you can't have full control, full power, or full understanding. How can you be expected to win the Indy 500 when you can see your own car but not the road ahead of you?