I've been using Java since the mid 90s in a carpentry sort of way - I'm not a master programmer or architect, but the core maintainable language and the excellent universe of components have provided the innovation and breadth I need... with some big holes.
There is a disconnect between the high priests of Java and the peons such as myself. I understand why that is, no one wants to provide free support to a (relative) doofus. But we end up with heavyweight frameworks that can theoretically do anything, but the joe programmers using them don't have much control. They end up churning out apps that have a lot of good stuff that isn't well uderstood, with a lot of areas that are not well done. There is such an inward focus on re-using libraries (which is great) that in the long run, frameworks end up being incredibly complex yet still don't provide a complete feature set.
My problem is I am aware of and require a combination of features in a viable framework, but, I think because there are so many frameworks, none really provide exactly what I need. They all provide 3/4 of what on would want, none provide a complete sterling feature set. Contrast this to the Ruby world (suppress groans for a moment please) where there is one leading framework, and it provides pretty much all the features you'd want.
The example I will focus on is accessibility. Many Java frameworks provide amazing 'enterprise' features, but their HTML is stone age. Using tables for layout is unacceptable for any public web site (or even private ones, unless you like chicken/egg proclamations "no visually challenged users use my app").
Drupal is another example (though it's one PHP framework out of many), out of the box it provides a critical list of features including accessibility.
But I don't want to use Ruby or Drupal. I value Java's maintainability and re-usable components too much.
I have to continue a project I'd started in the past. I wrote a pretty neat framework that has a lot of leading features, but it has some internal ugliness and I don't want to maintain my own framework, I want the advantages of a community. Can someone suggest a good basis that can provide all these best practice and future friendly features:
* full designer control on front end
* fluid (ajaxy) without going overboard (URLs to every location)
* RESTy URLs and processing
* in place content editing
* embedded wiki parser or other way of creating composite documents
* embedded RDFa
* micro licenses (ccREL)
* inherited data data (eg all persistent objects extend 'Thing') with versioning
* REST (JSON) (and SPARQL) queryable
* strict validation (JSR 303)
* runs nearly anywhere (Java)
* scalable (persistence strategy)
* fine grained security
* uses standard libraries
* fluid development (minimal restarting and deploying)
I realize I'm asking for too much, but thanks for any comments and suggestions.