JSRs aren't appropriate for classlibrariesIn addition to more platformey changes and language changes, the JCP develops standard classlibraries for the JDK. Let's contrast this process to open source development of classlibraries. In particular I'm thinking about libraries like binding, app frameworks, units/measures, date/time, module systems, and object-relational mapping.
JCP: consistently very good.
Open source: hit and miss. Some are excellent, some are trash. There's a current trend of porting or reinventing the excellent ones as JSRs.
JCP: fixed in stone. These APIs never change. As a consequence, we're permanently stuck with every bad design decision released in a JDK.
Open source: flexible. If you're happy, you can keep your current version. If you want new features, migration to the latest and greatest may require effort.
JCP: one-size-fits-all. Even if there are open source alternatives, the JDK API is 'standard', and not using it is an uphill battle that will require thorough justification to your team.
Open source: a marketplace. For example, there's a variety of PDF libraries for Java, each with their own relative merits.
JCP: a few people work their asses off for six to twelve months and release something that meets the spec. If they missed feature you need, wait eighteen months for the next JDK.
Open source: agile. All interested parties can contribute fixes, bug reports and enhancements. If you need a missing feature, add it yourself. You can even patch your own version if necessary!
Coping with bad APIs
JCP: if the JDK includes an API I don't like, I'm pretty much stuck with it. Tough shit! We're already stuck with tons of crappy code in the JDK. Some JSRs will be flops, and we will be stuck with their code forever.
Open source: if it sucks, something better will be written. Free markets are awesome!
So what's my problem? I just don't see the benefit of a giant process for writing 'blessed' libraries. Does every JRE really need a KinematicViscosity class? Why grant some libraries first-class status when we could let the market decide?
Instead, why not compliment the JCP (still great for language-type changes) with something like Perl's CPAN or Ruby's Gems? We could combine the benefits of easy access to classlibraries with the flexibility of open source libraries. We could even include ratings of APIs, so you could have confidence when choosing an API.