Search |
||
The Economics -- and Politics -- of Software Language EvolutionPosted by editor on September 8, 2009 at 5:58 AM PDT
Joe Darcy has posted a very interesting blog on the similarities between his own experience as a Project Coin lead and what the leaders of the C++ standards team experienced as that language evolved. He titles his post "Project Coin: Solidarity with C++ Evolution". The use of the word "solidarity" reflects a team or band of soldiers who are under fire, perhaps significantly outnumbered, and facing attacks on multiple fronts. Indeed, if you've been following the reactions to the progress of Project Coin, in particular the reaction to the final list of JDK 7 features, it's easy to see how the Project Coin team would find justification and support in looking at what Bjarne Stroustrup and the C++ committees experienced (as stated in Bjarne's paper "Evolving a language in and for the real world: C++ 1991-2006"). Prior to reading that paper, the Project Coin team might recently have been asking themselves: "Is it us? Are we being unreasonable in some manner?" But Bjarne's experiences tell them "no, it's not you, this is just the nature of software language evolution, and community reactions to the necessities imposed by reality... you're the messenger, and they shoot you -- no matter what you do." Here's a key quote Joe cites from Bjarne's paper: As ever, there are far more proposals than the committee could handle or the language could absorb. As ever, even accepting all the good proposals is infeasible. As ever, there seems to be as many people claiming that the committee is spoiling the language by gratuitous complicated features as there are people who complain that the committee is killing the language by refusing to accept essential features. If you take away consistent overstatement of arguments, both sides have a fair degree of reason behind them. The balancing act facing the committee is distinctly nontrivial. And what is Joe's reaction to this? An interesting presentation of the economics and politics of software language evolution: Viewed over the long term, one goal to evolving a platform is trying maximize value delivered over time. This is analogous to a net present value-style consideration from economics. A feature delivered in the future is less valuable than having the feature today, but the value of choosing to do a feature needs to be weighed against the opportunity costs of doing something else instead. Developers are chronically optimistic and eager to deliver something sooner rather than later, especially when the next release vehicle may be in the relatively distant future. As previously indicated, I too would prefer to see additional language changes as part of Project Coin in JDK 7. However, given the available resources, overcommitting to a large set of features is not responsible; either the large set won't get done in the end, it won't get done well, or the schedule would slip — all of which lead to reduced value too. I myself have a generally sympathetic view toward what Joe is expressing. It's always easy for non-decision-makers to loudly criticize those who have undertaken the task of trying to advance a platform, and do so in a balanced manner that accounts for the real-world limits of resources and time. What a software language committee faces is not all that different from what an elected leader of a nation faces at times. No matter what you do, for a significant segment of the populace, it's wrong -- and what's going wrong for your particular society is all your fault! If you'd like to express your own reaction to the proposed final JDK 7 features list, our current java.net poll provides you with a fast and simple opportunity to do that. Voting will be open through Thursday. Or, if you'd like, post a comment below, or post a comment to Joe's post.
In Java Today, As I just reported in a little more detail over at Superpatterns, we released OpenSSO Express Build 8 yesterday, including features such as our new One Time Password feature, the Fedlet for .Net and a new task flow for enabling single sign-on to Salesforce.com. Joe Darcy points out some similarities in the history of Java and C++ in Project Coin: Solidarity with C++ Evolution: Recently I read with interest Bjarne Stroustrup's HOPL III paper Evolving a language in and for the real world: C++ 1991-2006. Despite the numerous technical differences between Java and C++, I was struck by some of the similarities in community involvement and expectations in the evolution of both languages. Selected excerpts from the paper are in block quotes below... Simon Brocklehurst is seeking a few seconds of your time, to help with "Testing JavaFX Applet Deployment":
In today's Weblogs, Roger Kitain writes about Contexts and Dependency Injection (JSR 299) and GlassFish: Version 1.0.0.PREVIEW3 of Web Beans (the implementation for JSR 299 Contexts and Dependency Injection For Java EE) now uses the annotations from JSR 330 (Dependency Injection For Java) and it is available in GlassFish V3. In this entry, we'll look at a simple JSF 2 application that uses Web Beans and the JSR 330 annotations. There are other features available in this release of Web Beans which will be discussed in subsequent blog entries. Masoud Kalali asks So you want to develop a rich client application on top of NetBeans RCP?:
Sahoo describes Using a REST Console to administer OSGi runtime in GlassFish:
In the Forums,
And Our current Spotlight is Terrence Barr's annoucement of 4 New Screencasts: LWUIT, JDTF, JSR 290, and JavaCard: "Our documentation team has put together four brand-new screencasts on current subjects. They are 5 minutes each in length and a great way to get introduced quickly to the highlights of each topic. I encourage you to have a look..." The current java.net Poll asks "What's your reaction to the JDK 7 feature list?" Voting will be open through early next Friday. Our Feature Articles include Jeff Friesen's article Introducing Custom Paints to JavaFX, which shows how you can leverage undocumented JavaFX capabilities to support custom paints in JavaFX Version 1.2. We're also featuring Biswajit Sarkar's Using the Payment API for Microcredit and Other Applications, which describes how to apply the Payment API (JSR 229) in JavaME applications. The latest Java Mobility Podcast is Java Mobility Podcast 86: Mobile Service Architecture 2: Introducing New Features in Mobile Devices: "Kay Glahn from Vodafone Group R&D and Erkki Rysa from Nokia share the new features in MSA2 in this abbreviated feature from JavaOne." Current and upcoming Java Events:
Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site. Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive. »
Related Topics >>
Blogs Comments
Comments are listed in date ascending order (oldest first)
|
||
|