|
Java seems to possess the correct combination of features: mature platform, wide adoption, familiar syntax, readily-available developers, maintainability by those other than the original authors (Java isn't necessarily great at this, but better than many), and a quality that I'll describe only as hard to really fuck things up too badly. If it wasn't for that last requirement, I'd already be trying to sell Python to my boss; as it stands, if I can't find some really awesome static analysis and verification tools for Python I think one can make a case that Groovy comes pretty damn close, and at least as close as any other "scripting language on the JVM." Platform: Well, it's the JVM. Wide Adoption: Define "wide?" But from what I can see, Groovy is pretty popular, especially Grails. There are plenty of books on Groovy/Grails, Grails meetups / users groups in many cities, an active community of developers, etc. There are even consulting companies that focus on Groovy and Grails. SpanTree in Chicago, IL come to mind. Familiar Syntax: Groovy is great in this regard, as almost any .java file can be renamed to .groovy and compiled with groovyc. Most of the syntax that's different between Java and Groovy is optional in Groovy, so you can start off writing Groovy that is very Java-like and slowly evolve to more idiomatic Groovy over time. Maintainability: No better or worse than any other dynamic language, IMO. If you have access to metaprogramming and duck-typing and what-not, there opportunity for abuse is there. But Groovy's culture does not seem to be big on a lot of BFM. hard to really fuck things up too badly - hmm... that's pretty subjective, but to that point, Groovy does have unit-testing tools, static analysis tools, etc. available. The ecosystem might not quite as rich as of that for pure Java, but I think you can find what you need to create a sane development environment. |