Nice look at metadata annotation in Java from Todd Fast. Its good to see the Java community driving more controls and abstraction into development and configuration.
BEA has been on this track for a while with WebLogic Workshop. But now Sun is driving the approach to the Java desktop as well. Some intriguing innovation going on there, what with dynamic language support and blog client libraries to underpin Java-based RSS splicing.
As Fast compellingly argues:
The oft-misunderstood and underestimated mission of development tools is essentially three-fold:
1. Sanity – to make sense of a complex world on behalf of the developer
2. Simplification – to reduce complexity and cognitive load for the developer
3. Speed – to increase developer productivity
I assert that the Three S’s as I’ll call them (or S^3 if you prefer) have been put to the test and proven true over and over again. Despite their near-term appeal as a way to reduce complexity in hand-written code, annotations will not decrease, but will in fact dramatically increase, the value of development tools.
This conclusion may initially seem counterintuitive, but upon reflection should be apparent. Apart from temporary improvements achieved by quantum shifts in methodology (of which the introduction of annotations is one), the long-term solution to application development complexity has always been the presence of good development tools, regardless of the technologies involved. Although development tools going forward using annotations will be significantly different than tools we have all used in the past, the fact that we now have annotations at our disposal really has no bearing on the fundamental value of tools because the level of complexity of the application development problem itself will essentially remain unchanged. We will instead now be able to achieve more for a given amount of effort, but the required level of effort will remain constant.
Ultimately, as a tool provider, I see annotations and metadata-driven programming as greatly beneficial to my business, and using them I look forward to helping developers tackle the next level of complexity in application development. Long live metadata, annotations, and good development tools!