Java News from Friday, October 1, 2004

James Strachan has released beta 7 of Groovy, a JVM hosted scripting language that strikes me as more than a little baroque and a tad Perl-like. Not that the syntax lookes like Perl. (Hard as it is to believe, Perl syntax would probably be an improvement.) It's just that Groovy looks like feature after feature has been glued on to a foundation of sand. I don't feel an overall sense of design here. There's no overarching vision for what a language should look like that I can discern. There are lots of features to like in the language (and quite a few to dislike: I'm sorry, but operator overloading is simply a bad idea, as C++ proved once and for all; and we've known for at least 30 years that having both = and == in a language is a mistake; adding === to the mix doesn't help.). Built-in regular expression support is probably a good idea, if it's done right, but Groovy doesn't do it right. Rather than building it into the core syntax of the language like Perl does, there's just a minimal amount of syntax sugar on top of the usual java.util.regex package, which still needs to be imported. Rather than just using regular expressions as you would in Perl, you have to compile patterns and create Matcher objects. GPath might be useful, but I'm really worried it would fall apart if you tried to use it on structures that don't follow the neat, record-like patterns the developers expected. (I could be wrong about that one, but I've seen these sorts of things done wrong so many more times than I've seen them done right, that the burden of proof is on those who want to claim GPath works.) Closures might be helpful, but even the features that do seem like a good idea when considered individually don't feel like they fit together. Groovy just isn't as clean a language as Java or Python. :-(

Lorenzo Bettini has released GNU Source-highlight 1.11, a GPL'd tool for reading Java, C/C++, Prolog, Perl, PHP3, Flex, ChangeLog, JavaScript, LUA, CAML, SML, and Python code and translating them into syntax highlighted HTML and XHTML. Binaries are available for Unix, and it should compile on Windows with the appropriate libraries. Version 1.11 is a bug fix release.