By webmink on Oct 24, 2009
Just a quick reminder to anyone who believes Sun has done something bad in the community; we do have a community ombudsman service. Send e-mail to firstname.lastname@example.org with your complaints and they will be investigated.
Back in 1995 I was a huge fan and advocate of Java - at IBM - because it provided developers and deployers a universal layer that promised to reduce the lock-in caused by platform differences. The JCP went on to define a limited number of Java profiles and in the areas where the market has stuck to them we've seen great things happen. And in the place it hasn't - Java ME - we've seen messy fragmentation that's held the market back. We risk the same thing happening in the Cloud if we don't define a Java Cloud Profile soon.
Just before the Easter break here in the UK, I made a passing remark (in a link roundup and on Twitter) to the fact that Google has added Java support to their App Engine cloud hosting product. I did so because I've been associated with the Java platforms ever since I helped get IBM to support them before joining Sun (where I haven't really been involved with Sun's Java team).
To my surprise, a journalist decided this was big news and wrote a story implying Sun was "slamming" Google. That in turn led to a discussion on Slashdot where a whole lot of people asserted a whole lot of things based on the assumption my pithy micro-blogging comment was a treatise on Sun's behalf as well as on a weak grasp of Java standardisation, politics and history. Gah. Now I'm back from Oslo, I've time to comment properly.
To be clear, I am delighted Google are supporting the Java platform on App Engine. Doing so grows the opportunity for the whole Java community. It allows a great deal of existing code to be re-used and offers use of a wide range of additional programming languages. It is a great solution to the problem many of us have had for years, that Java hosting is hard to find and hard to use when you do. GAE/j is a good thing and I welcome it, especially if it grows Google's engagement with the open source Java community.
Moreover, it seems entirely likely that Google's approach here to "subsetting" is simply because they haven't yet gotten around to making everything safe in their sandbox, not because they have some deep philosophical belief that those things should be removed. Reports I have seen suggest they have largely used a SecurityManager implementation (although there are some worrying reports also of people getting ClassNotFoundException for core classes). If they've simply made a temporary, pragmatic, resource-driven decision, we should all encourage them to work towards full compatibility as they head out of alpha. That doesn't change my reaction to the general issue, though.
My reaction related more to the fact that we can't afford as a community to leave this just to happen. While pragmatic innovation is a good thing on the part of an individual developer or even a diverse community, in the hands of a rich, powerful corporation it can - even unwittingly - quickly become market manipulation. That's why the JCP has striven to prevent unilateral subsetting. I can't speak for Sun - I am nothing to do with Java strategy at Sun - but I believe the Java community needs a new, agreed Java cloud profile.
If we allow each cloud provider in turn to define their own subset, we will be left in the same ugly position we have with Java on mobile phones where the common specification doesn't go deep enough and forces applications to be refactored for every different platform. On the cloud, this equates to having no freedom-to-leave - you'll be stuck with a price ticket if you ever want to move platforms.
I was already worried about that topic and think we need a common set of APIs for provisioning in the cloud (Tim has started), a common way to abstract data storage and an abstraction layer so that applications written for the cloud can move freely between providers. Java would be perfect for this last item - but not if every provider has a different subset. That's the real meaning of "compatibility" in a Java context - not needing to refactor for equivalent deployment in different places.
What we need as a global Java community is "Java for Cloud" somehow. Given their good work so far, I'd like Google to show leadership and a commitment to openness by taking their subset to the JCP and offering to join a working group to establish a new Java profile for cloud applications. I hope Sun would enthusiastically engage. I know that there's already some work aimed at Java EE 6 to create a "web profile" - let's get a community effort going here so that innovation means progress and not lock-in.
A rather unusual project just started in the OpenSolaris community. It's the OpenSolaris Lending Project. Instead of directly working on the code for OpenSolaris, the new project provides a venue for OpenSolaris community members who want to contribute to the OpenSolaris Lending Team at Kiva.org
If you're not familiar with Kiva, it is a scheme that acts as a marketplace and aggregator for microfinance loans. It allows ordinary people to make small loans to other people keen to lift themselves out of poverty around the world. The loans are aggregated by Kiva, sent via a local organisation that Kiva has vetted and used as start-up capital (or growth capital) by an entrepreneur who would otherwise be unable to get finance. The sums are small - $25 sums from lenders are aggregated into loans around $500 for borrowers - but the impact can be enormous.
The idea of the OpenSolaris community is to allow OpenSolaris community members who also share in the vision for microfinance to gather together and make a difference. By forming the team at OpenSolaris, we also hope that advocacy activities will choose to work with Kiva when they are looking for a gift or incentive for user groups and marketing activities. Not everyone would prefer a Kiva gift certificate to an iPod, but it's a gift that lasts longer and has a better effect on the world!
To get things moving, we've also opened an OpenSolaris Bookstore. If you order your copy of The OpenSolaris Bible through there, Amazon will give us a 5% commission that we'll use to fund Kiva gift certificates for use by the OpenSolaris Advocacy community. You can also bookmark this link and use it when you visit Amazon.
I got a comment this week from someone asking why OpenSolaris didn't accept commits from community members. The fact that a reasonably well-informed individual could ask that question suggests there are some misunderstandings that need clearing up. I've been investigating the current status.
First, the question itself is wrong - OpenSolaris accepts commits from outside Sun. Both Subversion and Mercurial have been available on OpenSolaris.org for a couple of years now so that projects there can host their source code. Indeed, one of the significant new-code updates in OpenSolaris - the integration of ksh93 - was accomplished mainly by Roland Mainz and his sponsor April Chin with support from a range of community members, who put in a huge amount of work and achieved integration into the OpenSolaris code in build 72 in August 2007.
Multiple projects are being developed in the open on the site with source code repositories out there using one or the other. Individual projects grant commit rights using whatever method they choose. There are multiple examples of non-Sun people having direct commit rights on projects - one that comes to mind is Shawn Walker on IPS before he became a Sun employee.
While many of the code groupings in OpenSolaris (consolidations) have been publishing source code for a while now, the version control systems (VCS) used by some of the OpenSolaris consolidations are still inside the Sun intranet at the moment, having completed their move from the old closed system to Mercurial (with much help from Richard Lowe). Changes to those must be done by a Sun volunteer - this is what the sponsor program is for. The outside person can work on the code (for the "ON" consolidation, using the Mercurial mirror repository that has been available for about a year), make changes, test, do a code review in the open, and so on.
The Sun sponsor is needed to update the bug tracking system inside Sun (although we now have a public one that many projects are using) and do the actual putback. The request-sponsor table lists the 600+ contributions offered to date via the sponsor program and their status (~43% integrated; ~20% in progress).
ON has transitioned to using Mercurial as its VCS as of this month. The tentative date for ON to move its VCS to the public internet is the end of October. Companion CD and JDS have been outside since 2006 (they use Subversion). G11N has been outside since 2007 (they use Mercurial). The new install code has been outside since it started; it's been developed in the open. Publications has a gate with source for four books so far (opened this Spring). I didn't get status reports from some of the consolidations, most importantly SFW, and I think it's important from them to move as soon as possible.
The summary is that OpenSolaris has been accepting commits from community members pretty much from the moment the source was published. Of necessity there were Sun employees inserted in the flow when the project opened because the VCS in use was closed source and internal. In the years since then the process has gradually been getting easier and easier. Having the gates internal to Sun certainly hasn't helped growth, but it was unavoidable. That is finally getting fixed.
The Sponsor system itself is actually a great idea and is now working better than ever before. Like Jim I think it should be retained - and populated with experienced developers regardless of employer - even when all the gates are publicly accessible. Even in the world of Linux it's hard to get started as a contributor and the Sponsor system provides a great pathway.
Having held fire for a few days to make sure I was cool-headed, I was about to go to comment on a poisonous little posting on a ZDNet journalist blog. I wrote a cool-headed reply and clicked "post".
Then I found that despite the appearance of openness (no hint on the comment form of all this), ZDNet has no interest in "community comment". They are actually cynically trying to capture reader data so they can "monetise" it.
To post a comment, I would have to go through a multi-step registration process and fill out the form shown over to the right (which requires personal information including a postal address, requires I accept their EULA and is set to "opt in" for spam by default - I have annotated the version on Flickr if you click through). There's no way I am doing that. I suggest you take the same attitude to them and avoid giving them any sort of support until they fix this cynical community attitude.
The most delicious irony though is they were criticising me for poor community skills...
I've been spending a little more time than usual on IRC because the OpenSolaris Annual Meeting is currently in session on Freenode. There was some excellent discussion on Thursday about constitutional amendments and I went on to submit two amendments for consideration by the membership (to article VI and to article IX). I plan to show up this week to discuss those amendments with anyone who has questions; I'll post the times once I know I have internet access in the places I am visiting!
On the subject of IRC meetings, there are also a series of them coming up this week to give the MySQL community the chance to chat with some Sun people. Kay Arnö has the details on his blog; I'll be joining #MySQL on Thursday at 2pm GMT (my nickname is "webmink", naturally!)
I just left India after speaking at FOSS.IN where I announced details of the Sun Open Source Community Innovation Awards in the context of a talk [20Mb PDF] about the challenges the Free/open source community-of-communities faces from success and growth. There's no question that India is a 'waking tiger'. The energy and enthusiasm I have found here has been without peer on my travels - apart, perhaps, from that of Brazil.
I have been considering with interest the reaction to my posting last week foreshadowing the awards. The awards were widely applauded, although as I'd expected there was also no shortage of people wanting to attack the program. I feel that some of the adverse reactions illustrate only the biases of their authors, and others were the result of of incomplete information. So I'd like to clarify a few points.
The press release for the Open Source Community Innovation Awards uses the word "prize". As anyone that has tried to construct a similar program will know that to pay grants in this manner, laws surrounding prize-bearing competitions in the USA and elsewhere may be applicable. We've actually made no detailed decisions about how the $1 million US fund will be distributed beyond believing it will be divided equally between the communities.
Instead, the six communities involved will each devise schemes that fit their members and bring the proposals to us, for us to knock them into a shape that complies with the laws in the places the communities want to address. We are wanting to recognise and reward innovation, which we fully expect to come mainly from existing community members including the many already employed to work on software (though not Sun employees since Sun is the sponsor of the awards). It's about sharing the wealth.
Yes, this may incent some people to join communities, but frankly I'm well aware that developers are motivated more by their own goals with the software than by this sort of award. And I'm therefore astonished to come across the notion that Sun is looking to attract "cheap labour" with these awards. In my opinion, people that subscribe to that kind of view of open source fundamentally don't understand what community development is all about - they're either confused, or trying to confuse somebody else, to borrow a phrase.
I hope that the communities will devise a variety of programmes that include "innovator of the year"-type awards, "feature bounty" schemes, "internship"-style project sponsorship and other styles. The awards will be annual and if they work out well I hope we'll be able to expand their reach. For the first year, we've picked a small group of communities that Sun knows well since the legal and administrative details turn out to be pretty complicated. However, by their very nature, open source communities are networks of interests. OpenSolaris, for example, includes work in a range of communities including GNOME, X.org, Mozilla and many others. The 2008/9 scheme will learn from the experience of the 2007/8 scheme and hopefully be even better - we all have to start somewhere!
The communities are welcome - encouraged - to apply the fund globally. The fact I announced the scheme in India doesn't imply it's targeted only there. However, I have personally seen that places like India, China, Brazil and Malaysia (which I also visited on this trip) have an enthusiasm and energy about FOSS that is raw and fresh, and I fully expect so see the people of this region well represented on the list of beneficiaries next year.
The next step will be for the communities involved to form proposals for their individual use of the $175k US or so they will be distributing. If you're a member of one of those communities, expect to see details of how this will be done coming from your leaders soon. I'm expecting to be able to join them in announcing the schemes early next year. If you've other questions, please ask in the comments and I'll try to answer them.
This scheme has proved surprisingly challenging to put together, and only goes so far in rewarding FOSS developers. I still think the best way to do that is to hire them, and indeed Sun does that to the tune of more than $200m US each year. But this scheme (and the others like it) is a useful addition and I hope the innovative features that result from it will greatly enrich the world of Free software and the open source communities that develop it.
Update Jan 2008: Details of the individual programmes are now available.
One of my better managers at Sun was John Loiacono - I worked for him around the start of the decade. Later, when I was working for then-CTO of software John Fowler, Loiacono was a figurehead for the release of OpenSolaris under the CDDL. By then he'd become way too busy to talk at any length to the likes of me, although he was as charming as ever on the odd occasions we met. And so, I never really got to discuss Free software with him before he left for Adobe.
Reading his recent blog posting, Innovate or Integrate, I start to wish I had. Despite claiming open source credentials, John explains why he thinks it has no place in Adobe's creative products business. From what the blog says - "Yes, clearly it's cheaper, but does it really save money in the end?" - it's clear this part of Adobe thinks of Free/Open Source software purely as a commodity and a way of cutting corners. That it's ultimately only about saving money. They seem to confuse Free with free, liberty with payment. In the process Adobe is missing a huge opportunity.
The thing is, the user-integrated/supplier-integrated distinction in the blog is a false dichotomy. The blog compares their products with existing Free graphics software - presumably things like The Gimp, Inkscape, Nvu and so on. It concludes their lack of integration makes them fatally inferior and thus the Free software from all open source communities is flawed. But that's missing the whole point.
As Stallman points out, software freedom is not about avoiding payment, it is about preserving and exercising liberty. I don't accept that pursuing profit and respecting software freedom are unrelated, much less that they run counter to each other. Profit and liberty are not orthogonal. I also profoundly believe that competing against software freedom provides (at best) a short-term advantage. For a company like Adobe, to compete against software freedom is to ignore the inexorable progress of disruptive technologies and the Innovator's Dilemma.
Those Free programs aren't integrated and offer lower function than Adobe's product today, but through Adobe's neglect that will change. They'll find each other, start to define interfaces and integrations with each other, begin to penetrate the "good-enough" band on the chart. Worse, being outside their domain, Adobe will refuse to use the integration they define. This happened while Sun was neglecting Free Java implementations, for example. The Java Libre communities agreed interfaces to make VMs and JITs pluggable and today can plug and play VMs with relative ease - apart from HotSpot.
So what could Adobe do? Well, by opening up their source code, licensing it under the GPL, they would team with the open source communities gathered around the various Free software commons. It's not impossible - they do it elsewhere in their business (albeit with a different motive and competitor). Instead of competing against Free graphics software, their programs would become the leading Free graphics suite. It would have the tight integration the blog speaks of, but it would also deliver the freedoms that the software world is coming to expect, stimulating a new developer community emboldened by the guarantees of freedom. And perhaps most importantly, their software would likely become available on platforms Adobe is currently unwilling to touch. They would take a leadership position that their main competitor would be unable to assail.
OK, there are plenty of difficult unanswered questions about business models, community governance and so on (which I'd love to explore, by the way, they are not insurmountable). But the point is, the dichotomy Adobe paints is of its own making. It is not inherent in either Free software or in the open source communities which create it. And by trying to protect their short-term revenue, Adobe avoid affinity with some high-energy developers while pushing their customer base to increasingly attractive Free - and free - alternatives.
As Ben Rockwood notes, the time has finally come for the OpenSolaris community to pay close attention to the community governance. The Board (OGB) has completed a proposed governance document - the OpenSolaris Constitution - and it's time to hold an election. The work was actually completed at the end of 2006 just before the OGB's term expired, and while it would be feasible to select an entirely different group to run the voting, Stephen Harpster (to whom responsibility has reverted under the Charter) felt it would be smarter to ask the OGB to hang on for a little longer to oversee things.
If you trawl back through the OGB discussions you'll see we toyed with having separate votes to ratify the Constitution and to elect the new OGB under its terms, but Roy Fielding pointed out (and I agreed) that really all that's needed is one vote - if the Constitution needs radical revision, the OpenSolaris Community can elect a Board to go do that.
So, now is the time to sit up and take note. Please read the Constitution Draft, then consider if you would make an ideal Board member for the community and be ready for the announcements. This is the moment many of us have been anticipating with both excitement and concern - when OpenSolaris truly steps out as a member-led organisation. Get ready, the project needs you.
Thoughts and pointers on digital freedoms and technology markets. With a few photos too.