Blog / 20071210 aQute - Software Consultancy
Search
*

Confessions of a Used Code Salesman

The greatest software miracle to me has always been smalltalk. Never in the field of software was so much owed to so many by so few. Smalltalk never became mainstream in its primary incarnation but it heavily influenced out industry. Just count the (ex-)Smalltalkers under the Eclipse committers. It was too much ahead of its time, many of its ideas have over time, and will, become mainstream. From this professional life changing experience I always kept a love of dynamic languages with their flexibility and conciseness. I despised statically typed languages though I trained many people in C++ and Java. They never felt right.

However, today I officially admit that I was wrong. There are actually advantages to static typing, and it took Eclipse to make me see the light.

I am currently working on a build tool and it includes BeanShell. An extremely lightweight scripting language that accepts the full Java syntax but also accepts a relaxed syntax that gives it the feeling of dynamic languages like Python, Ruby, Javascript, and others. For its purpose, it is very nice and it works like a dream. What does not work like a dream, seems to be my fingers. Suddenly the command space no longer works and the absence of red x's in the sidebar makes you think you're ready. No F3 to look up the javadoc of a function. I feel suddenly like a beginner! I thought I new the Java API quite well after growing up together over the past 12 years. Well, it turns out I don't. The number of silly mistakes I make is depressing.

I knew I liked Eclipse (Netbeans and IntelliJ provide similar support) but I really did not understand how much it is doing for me every day. The static typing allows the IDE to find out so much information about what you're doing that it can provide real help. I shudder to think what my productivity would be reduced to when I had to get back.

I still think that from an expressiveness point of view dynamic languages are better because they express the same functionality much more concise than statically typed languages like Java. Statically typed languages force you to clutter the code with (often too much) type information. I am a strong believer that less is more. But this recent experience with beanshell makes me count my blessings with Eclipse + Java ...

Peter Kriens
Copyright 2006 aQute SARL, All Rights Reserved