Pragmatism(1)

The last couple of days people have been pointing out Chris Oliver’s blog on his new language, F3. F3 is a language hosted on the JVM which targets creating content in 2D, using Java2D APIs. I won’t go into the details, but I recommend you try out the demos (he’s got two or three up already). It’s an impressive piece of work from what I can see. Mostly I like the fact that the language just seems so clean.

Which brings me to this blog. Some of the comments posted about F3 are along the lines of–you can already do this in JVM language X, why create another one? My own response to this is: if language X is so great for that purpose, why doesn’t it already own the marketplace of ideas? It’s the job of the language owner, or the language user’s, to promote it; and if it’s worth it, if it’s convincing in what it does, then you’ll see people moving over to that language, and you’ll gain mind-share. Mr. Oliver has in front of him the task of gaining mind-share (assuming he wants to)–as do the Groovy, Beanshell, JRuby and other JVM language enthusiasts.

But what the whole discussion makes me think of is how successful languages are sometimes those that had a very narrow focus to begin with, despite the fact that their use grew beyond that original, limited domain. Java is one example–they (thought they) needed a language which could be downloaded over a network and run on a small, limited-capacity device. Because the code needed to move around the network, portability and security were key. It turns out that their language has uses far outside the domain of portable (or set-top) electronic devices, though it’s now there as well–but I think the language is successful because it focused on a very specific domain, and didn’t try to solve all problems at once.

And my guess is that Python, Ruby, Perl and PHP also had that sort of effect, by being useful in a given domain, and focused on developing and honing themselves for very specific tasks.

What I personally have against some of the “newer” JVM languages is that they try to solve all of the perceived problems in Java at once. I end up unsure if they’ve solved any of those problems well–plus they seem to me to be so flexible that in practice, people will end up mixing a whole number of powerful constructs into one big lump that is hard to decipher.

What I’d prefer are more domain-specific languages, and no, not a language for building domain-specific languages, but rather languages, like XSL/T or F3, written by experts (or at least very knowledgeable people in a given field) and focusing on solving one class of problems, and solving them elegantly. As far as the problems with Java, the language–I’d prefer to see a sort of “Java upgrade” (which might include a JVM upgrade) that tackles the 6 most important or annoying issues–rather than seeing a new Swiss Army knife of a language be proposed.

Check out F3–should be available soon on Java.net, but you can already try out the demos.

(originally published as this JRoller blog entry)

This entry was posted in Uncategorized and tagged , , , . Bookmark the permalink.