News: Opinion: Dynamic languages and virtual machines
There has been a lot of talk about how scripting languages + Java can be a great combination. People have been doing this for a long time (Jython, BSF, and even XML), but now a lot of people are talking. Jon Udell puts his thoughts in the ring, and chats about his thoughts on the current state, and the future.
- Posted by: Dion Almaer
- Posted on: August 26 2003 11:26 EDT
Read Dynamic languages and virtual machines
- Really needs IDE support! by Alex Moffat on August 26 2003 12:03 EDT
I'm not sure that without support in a modern IDE Jython can be as productive as Java. When writing code features like auto complete, inline viewing of documentation, auto generation of overides or implements methods etc. really speeds things up. When maintaining code the differences are even larger. The intelligent navigation offered by something like IDEA makes it easier to understand existing code while the refactoring support makes changing it easier. Sure, if you can remember all of the Java and Python APIs you may be able to write the code faster, but these days is that really possible? I used to use emacs for all of my editing of java code, after using a decent IDE I wouldn't want to go back, and I'm dubious of the chances of a language that isn't "ide friendly" these days.
For a Jython console with command completion see http://don.freeshell.org/jython
The IDE's are gaining critical mass. Eclipse can be configured for Jython and I understand that this has also been done for NetBeans.
All it takes to cement the IDE's into position is for enough people to start using them. I suspect that this is more of a cultural hurdle than anything technical - it takes a switch in mindset to use anything other than a text editor for scripting languages.
I've often wondered, with dynamically typed languages how do you offer code completion? I mean, if I have some variable a and I type a.<ctrl-space> how can the IDE offer possible operations or fields on a when it doesn't know what sort of thing a may contain? These days I think this is becoming a problem for languages like lisp/scheme/perl as it must be very hard to offer the sort of features for those languages that IDEA offers for java.
It is possible to do this for dynamically typed languages but it requires a different approach. Smalltalk and VB environments maintain a parse tree that keeps track of what the user has typed. Basically this is compiling on the fly (but without necessarily going to bytecode). I understand that emacs also works along these lines for syntax checking.