Affects Version/s: None
Fix Version/s: None
Component/s: @ CORE
While Spring has improved it greatly, enterprise Java productivity is still not ideal. Development involves excessive effort in numerous areas, including JSP authoring, build scripts, web.xml deployment descriptors and JPA persistence. Creating a new project involves excessive integration and coding effort, as does adding new functionality or introducing additional technologies.
This allows proponents of platforms beside the JVM to offer significant productivity advantages for simple application scenarios, even though they fail to scale to meet increased complexity or scale requirements. This is undesirable as it leaves users the danger of starting down an initially productive approach that will lead them to a dead end.
We need a solution that builds on the lessons of other platforms and frameworks but innovates to offer similar benefits to Java developers, without the tradeoffs. We need a solution that builds on our existing Spring vision of simplicity and power and dramatically improves productivity to make Java highly competitive for ALL applications, from simple to complex.
Such a solution should offer a higher level of abstraction for common operations (such as creating a web-editable entity), enabling concise expression of the developer's intent. It should have the following characteristics:
- Easy to use
- Produce demonstrable productivity benefit
- Reuse existing developer knowledge, skills and experience
- Facilitate the creation of best practice enterprise Spring applications
- Never compromise engineering integrity (speed, power, flexibility)
- Support non-web app profiles (eg batch, next-gen clients etc)
- Use established technologies
- Leverage existing Java tools (and thus knowledge) where feasible
- Allow users to adopt it incrementally without a "big bang"