I still haven't had a chance to sit down and play with
Groovy (a dynamic programming language that runs on the Java Virtual Machine), but I just saw a
posting with a couple of interesting nuggets.
Firstly it allows optional static typing to me which seems like a great choice. I get the benefits of static typing, I love the benefits of dynamic typing. To me, a language that supports both (along with an IDE designed for such a hybrid) gives a flexibility that I'd have to play with but could be useful.
It also mentions that Groovy is implemented using an implementation of a Meta-Object Protocol.
I'm gonna have to find out more about how that is implemented as I think it could provide some great benefits to Java programmers if it was packaged with the right kind of API for extending the syntax of Java in-language.
Of course it raises all of the usual "are in-language DSLs really maintainable" kind of questions, but I'm definitely going to have to find out more about how this was implemented and if any elements of its implementation could be learnt from.
Thoughts?