Intentional Software - Democratizing Software Creation
Business users doing programming? Simonyi and Kolk presents how Intentional Software offers a radical new software approach that separates business knowledge from software engineering knowledge.
Tracking change and innovation in the enterprise software development community
Posted by Ryan Slobojan on Dec 11, 2007 11:00 PM
Recently, Alex Blewitt described the Java Community Process (JCP) as dead, likening it to a headless chicken which "doesn't realise it yet and it's still running around, but it's already dead". This touched off a debate over the usefulness of the JCP and how much it will play a role in Java's future.
In his blog post, Alex Blewitt identified several concerns about Java and the JCP:
Blewitt also stated:
JCP is not about community; it's about Control. Read through any of the JSRs and there's a section on "Why isn't this addressed by existing systems". Reading through them is an exercise in marketing; there's invariably no real reasons there, but rather 'We can do it better/different/smaller/faster'. What really happens in these situations is that the spec leads have zero interest in building upon what's already there; they want to get in their own version of a codebase (whether real or proposed) and the arguments are essentially 'Because we didn't write it'. The so-called 'expert groups' are nothing more than a peer review process of the developers (normally the submitters of the JSR), and have zero impact on the code that actually gets developed. (Normally, the submitters of the JSR will supply the sole developers of the code rather than enlisting the help of the expert group, so that they can own all the IP of the process.) In other words, it's the sanctioned blessing of doing whatever you want to do
Others commented that Google should lead Java development, or that Java would soon be replaced by a true parallel language. However, some worried that modularity invited fragmentation of the platform.
On the same day as the above post, Jean-Marie Dautelle, co-lead of JSR 275 (Measures and Units), solicited feedback and questions from the community for the JCP:
Dautelle's question also drew a long response from Stephen Colebourne, JSR 310 (Date and Time API) co-lead. Colebourne asked:
This question leads into broader questions of governance in Java. Java is now opens source, yet we still have no real clarification on how that works or affects the JCP.
In particular, who is the 'architect' overseeing the development of Java, and its future direction? Is it a named person in Sun? A hidden magical process? Or hit and hope?
Colebourne wondered who decides what language changes go into Java 7, how core library changes occur, and why the JSR 277 module management system is being handled like it is - he also raised several issues:
- Sun ignores the JCP legal agreements it signs (ie. wrt Apache Harmony). This destroys all trust.
- The JCP still exists to rubber stamp proposals from its big company members. Basically, a company submits code they already have, and the 'Expert Group' really exists to peer review it.
- Neither the JCP or Sun are giving any sense of direction to Java. There should be a clear sense of where Java is headed and what it is trying to be - a five to ten year vision.
- The JCP is not eliminating duplicate JSRs (see OSGi). Worse, it is allowing the worse option to succeed.
- Individuals have too small a say. They tend to provide the innovation and disruption that keeps the big companies honest.
Colebourne also proposed several solutions such as an architecture group which would publish a five to ten year vision for Java, a larger and more autonomous JCP Executive Committee, payment for JSR members, and a proper TCK for Apache Harmony. Another option which is presented is the elimination of the JCP, and the redefinition of Java as an OSGi-based modular VM built on top of a kernel - vendors could then mix-and-match as they pleased, and the market would decide on a winner. Patrick Wright disagreed with several points, pointing out that in the Apache-Sun Harmony debate only Apache has publicized their side of the story. Wright also questioned how valuable a five to ten year vision was given the rapid pace of language development.
Peter Kriens also weighed in on the debate, agreeing with Colebourne about the analysis but disagreeing with the solutions. Kriens also raised a new question - what is more relevant, an implementation or a specification? Kriens points out that a specification allows multiple implementations that target different requirements, it allows neutrality by balancing the needs of multiple organizations, the slow standardization process allows for real time to think about solutions, and problems with intellectual property rights tend to be easier to handle. Dalibor Topic responded that both JCP and OSGi are too controlled by large companies, and that specifications are encumbered by proprietary components - however, they are both worth having. Kriens responded that large company backing was important for a specification to succeed, and tha tall members of OSGi are treated equally, whereas Sun has a disproportionate amount of control over the JCP.
What are your thoughts?
I don't think its a bad thing. JCP made sense when java was proprietary. Now there is OpenJDK - a whole new set of dynamics has to come into play. On the language front I would like to see lots of innovation (some first class support for languages other then java), Consumer JRE seems to have legs. Java 6 has Rhino in it ! Isn't Javascript meant to be the Next Big Language???
I think in the world of OpenSource and open community the role of standard should be changed quite drastically. Anyone who think that they have good idea can just spawn their own project and do pretty much what ever they like with it. The checks and balances will be the adoption i.e. if your doing the right things and solving real problems then most likely you'll see that reflected in higher adoption.
I strongly believe that the market should decide. However, for markets to work well you need liquidity. In our world, liquidity is seriously hampered due the many (half finished) plugin frameworks. It is hard to use someone else's modules if that module uses a different module system. Such friction in the market creates unnecessary complexity, monopolies and oligopolies which will all work against a free markets. A small VM a la Harmony with a widely supported module system will create a market of components that can then compete freely. Let the best win. This has been the model in my head for almost ten years, and I still believe that that is the way to go today.Software is already hard enough, we should not be hindered by unnecessary complexities. I get tears in my eyes when I look at CPAN (Perl repository) and think we could have a better repository if we got our act together as an industry. One of the reasons Sun is not adopting OSGi is because they realize how frictionless the market would become when there was a widely adopted module system for Java? Or is that too Machiavellian? I know I am suspect ... but don't you think that standardizing on OSGi, as the most complete, mature and thoroughly specified module system for Java, would help create a component market so that we can compete without the shepherd grazing with the sheep? Kind regards, Peter Kriens
See my response on Who needs standard anyway
Business users doing programming? Simonyi and Kolk presents how Intentional Software offers a radical new software approach that separates business knowledge from software engineering knowledge.
Jason Rudolph discusses Java/Grails integration, Grails plugins, creating a Grails sample application, Grails app structure, data querying and persistence, validation, controllers and tag libraries.
The Scrum Product Owner role is powerful, valuable and challenging to implement. It brings healthier relationships between customers and developers, and competitive advantage - if you do it right.
Effective Java, Second Edition by Joshua Bloch is an updated version of the classic first edition, which won a 2001 Jolt Award. InfoQ asked Bloch questions about the areas that the new edition covers.
A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.
In this interview, Burton Group consultant Pete Lacey talks to Stefan Tilkov about his disillusionment with SOAP, his opinion on REST, and addresses some of the perceived shortcomings REST vs. WS-*.
Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.
Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.
4 comments
Reply