|
|
|||||||||||||||||||||||||||||||||||||||||||||
David Herron's Blog
Is the JCP fundamentally the wrong model (now) for Java?Posted by robogeek on June 04, 2009 at 09:29 AM | Permalink | Comments (5)I'm drawing on several threads of thinking in several presentations and conversations this week at JavaOne, and am thinking the Java Community Process (JCP) no longer serves the needs of the Java ecosystem. I'm not the first to say this, not the last, but here's a few thoughts anyway. Sun (soon Oracle) is the owner and for the process to work out well the owner has to be enlightened enough to serve the needs of others as well as their own needs. In reaping rewards from building an ecosystem requires having the wisdom that your benefit comes from everybody happily using your ecosystem, and always acting to nurture the ecosystem you've built. Some styles of gardening (Permaculture) recognize this principle. However administrations change and while one set of people overseeing Java might be enlightened the next set might be money grubbing short sighted opportunists. I'm not pointing fingers at anybody, just outlining a general principle. The question is.. is it appropriate to have the foundational pieces of the Java ecosystem in the hands of one company? Or is it better for those foundational pieces to be in the hands of a consortium whose purpose is the benefit of all? Open process - When Java was first developed in the mid 90's the open source software world was nowhere as mature as it is today. In 1995 the open source software scene was very primitive even if some specific pieces of that scene were well developed and widely used. The JCP was born in that environment and historically has served mostly big business and mostly acted behind closed doors and secrecy. In todays world where the open source software scene is much more developed and accepted, is closed door secrecy of any use now? Of course the JCP has been undergoing reforms, a good thing. Also a language specification, VM specification, etc, those are not open source software, they are specifications. The IETF is an example of a standards organization developing standards out in the open in a way I longingly remember from the early 90's when I was still an electronic mail expert. The JCP setup is tailored to the old model of iterating the Java platform. There is a platform JSR to define the Java <n+1> and a passle of specific JSR's for each feature in Java n+1 are formed to steer those features through the design and development process. This tied well with Sun's traditional 18 month or so development cycle of delivering a huge amount of change in 18-24 month cycles. Does that model still serve us? Or is there are model with shorter cycles which would serve us better? For that matter Sun has been successfully delivering feature changes in the "6 update" train, going against their former rules of not adding features in update releases. (updates were only for bug fixes) Having short cycles offers a lot of potential benefits. Witness what the Ubuntu, Fedora, etc projects have been able to do with short cycles. It means rapid adjustment of direction with changing conditions. It means a bug fix has a greater chance of getting into the platform than previously. etc.
JavaOne 2009 opening KeynotePosted by robogeek on June 02, 2009 at 02:50 PM | Permalink | Comments (1)The JavaOne opening keynote is still a fancy rock & roll show with fancy stage and the like. It's always exciting to see what they have to say, and they do a good job of spinning a story that Java is Everywhere. The overall message is to convince developers that the Java platform is compelling, that Sun is providing this compelling ecosystem for developing applications, and that the developers can become uber-rich by developing applications for the Java platform. It's a cool message.. Anyway it struck me how non-community-oriented this message is. It's delivered in a push model, that "we Sun are developing this platform for you <the developer>" rather than a community oriented message of "we came up with this cool thing, let's work together to make it totally great". At one point Jonathan said something about delivering compelling technologies that engage developers who are going to build the next eBay. This phrase "the next eBay" is emblematic of a problem Sun has in general, in that they develop lots of great technologies not all of which are lines of business that can do $1B per year. Sun's management however can only contemplate billion dollar business decisions and is incapable of working with smaller scale business decisions. Example in point: SunSpot which is going to remain an unexploited business opportunity because it's too small. Sun is leaving a lot of $$$'s on the table by being unable to exploit small business units along with the large ones. In any case I want to get back to this distinction between the push model of developing technology to give to developers, versus setting up collaboration projects to develop technology ideas. This is important in regard to the trending at Sun towards Open Source software projects. While the official definitions of open source projects focus on the licensing terms and freedoms granted by the license, it's widely recognized that community oriented development is a requirement for success in open source software projects. There are a lot of resources out there with guidelines for successful communities and how it exists within open source software projects. Yesterday @ CommunityOne the Ubuntu community manager, Jono Bacon, gave an excellent presentation on community (artofcommunityonline.org), for example. Basically a community is a cluster of people interacting with one another. It help's bring community into existence when the people gain value of some kind from participating in community processes. It seems obvious to me the push model of delivering technology does not lead to community creation. The push model isn't very collaborative, not engaging people into interaction. How can the community form if there is not a compelling reason for people to interact with one another? Perhaps this is a core reason behind a number of WTF issues related to Sun and Java .. Sun makes excellent technologies like Java, so why hasn't Sun been able to be successful as a business. During the Keynote the tail end was led by the new overlord, Larry Ellison. There was a little dance on the stage which wasn't explained but reminded me of the 2006 JavaOne keynote which was Jonathan's first time as CEO giving the keynote. He and Scott were on stage and they explained that the widget used by the presentation leader to control the slides, that the official name for that widget was "The Pickle". They made a big hooraw about Scott handing The Pickle to Jonathan in a symbolic passing of the torch of authority from Scott to Jonathan. During this keynote there was a similar passing of the Pickle. It went first from Jonathan to Scott who did a bit of joking around about reasons why Sun+Oracle makes sense, and then Scott passed it to Larry. During this section Larry & Scott addressed the obvious concerns we might be having about the Sun+Oracle deal and specifically what it means for Java. It sounds good in that for example Oracle's middleware is 100% Java. Oracle's product line-up is a database engine plus a whole big slew of apps running on top of the database, all of which are written in Java. It's clear that Java is important to Oracle. What isn't clear is whether the OpenJDK community is important to Oracle. Nowhere in Larry's talk did he mention open source, community, OpenJDK, etc. Instead he talked in this same push model. Larry also said a few oddball things ... He's been meeting with various teams within Sun to discuss product plans. This makes perfect sense in that Oracle buying Sun is clearly going to mean a direction change for what has been Sun's product line. A specific weirdo thing he said is he hopes for "JavaFX Libraries from the OpenOffice team". Uh... say what? I've long been wanting that very thing. It makes perfect sense to me that an Applet to display OpenOffice documents would be extremely useful. And with JavaFX it's very plausible this could be a great user experience. This would be known as Rich Enterprise App's. Rich applications need not be limited to consumer app's. There are plenty of examples of needing Rich applications for other purposes than immersive gaming. An obvious example is finance.yahoo.com and the like where stock information is presented as a fancy charting application. It's nice that Oracle sees the need for Rich Enterprise app's. However a couple years ago I had a chance to talk with a Marketing leader within the OpenOffice team, and brought up this very idea. That led to an interesting conversation. Because of the OpenOffice architecture any display app to show an OpenOffice document would end up dragging in pretty much every OpenOffice component. OpenOffice's file format is a compressed ZIP file with XML files in a known/standard ODF format. This is why it seems compellingly possible that an applet could simply read the XML files and render them. But OpenOffice has an embeddable object module so that e.g. you can embed a spreadsheet in a presentation to display charts or tables. Because of that any OpenOffice document can reference OpenOffice objects from any of the applications. Because of that even a simple viewer applet would be essentially the whole of OpenOffice. Another fly in the ointment here is the various licenses involved. One of the big huge values of OpenOffice is it's open source license that e.g. allows OpenOffice to be in Ubuntu/Debian Main and have equivalent status on other operating system distributions. But JavaFX is not using an open source license making it infeasible to put JavaFX into those operating systems. If OpenOffice were to be rewritten in JavaFX that would put a dependency on JavaFX making it impossible for OpenOffice to continue being delivered in open source operating system distributions. That is, if JavaFX continues being closed source. Maybe JavaFX will be fast tracked into being open sourced? An open question is whether Larry's statement means a demand to rewrite OpenOffice into Java/JavaFX .. or whether he only meant some kind of library. For example it might be possible to embed (JNI) OpenOffice native libraries as Java(FX) objects without biting the bullet of rewriting OpenOffice in Java. It would also be incredibly expensive to undertake an OpenOffice rewrite and also be very risky. In other words I was left scratching my head and going WTF is he thinking. Before you think I was turned off by the keynote, no, I wasn't. It was exciting the various ideas and things presented. For example they showed fabulous things with JavaFX TV, JavaFX BluRay, the new Authoring tool, and store.java.com. Very cool. OpenJDK Porter Group BOFPosted by robogeek on June 02, 2009 at 11:38 AM | Permalink | Comments (0)Just a reminder to those of you a) attending JavaOne, b) interested in porting OpenJDK to other platforms, we have a BOF on thursday night. Please attend. The agenda is to simply bring the right people into the room and chat. Please attend. Rich User Interfaces for Java ME, Project Capuchin (Sony/Erricsson), JavaFXPosted by robogeek on June 02, 2009 at 11:36 AM | Permalink | Comments (0)This session is conducted by a pair from SonyEricsson, and they're discussing Java based rich user interfaces for "mobile" devices. As always the word "mobile" is overly constrained to mean "cell phone" which is to me a misnomer because "mobile" could clearly mean other kinds of devices than cell phones. There are lots of portable electronics devices which would do well to have a light Java stack but for some reason the JavaME community focuses on cell phones only. What about digital cameras and portable game devices just to name two kinds of portable devices that are not targeted by JavaME.
JavaFX is a cross platform RIA stack, JavaFX Script is the language, JavaFX Mobile is for cell phones. "All the screens of your life" are defined as "Desktop", "Mobile" and "TV" (what about digital cameras?). JavaFX Mobile runs on top of Java ME. Same language, same API, for the core profile. Tools: Netbeans; JavaFX plugin for Illustrator and Photoshop (Production Suite) Capuchin: Bridge between JavaME and Flash Lite. Design UI in Flash with Java providing services. Combine two well known and widely spread technologies, Flash and Java. Capuchin API presented to joint MIDlet which contains both .swf content and MIDlet class(es). Flash can request from Java class, Java class can notify flash UI. "MXP" components provide services e.g. to access native services like calendar, accelerometer, contacts, etc, these components also available through relevant JSR's. To aid developers to expose an Java service, they have an API generator tool which helps generate MXP components. They did not create their own GUI authoring tool, because Adobe's Flash is a perfectly fine IDE. SWF2JAR. http://developer.sonyericcson.com Requires Adobe CS. There's an interesting strategy conundrum.. would it have been better for Sun to join forces with Flash Lite? Or is it better for Sun to attempt to own the whole stack with JavaFX. For the demo they show a "Car Shop" application developed in both JavaFX and using Capuchin. It shows you can use two different technology stacks to provide very similar applications. The reason I posed that strategy conundrum is due to the expense of developing JavaFX and to ask whether that expense was worthwhile. Why not instead collaborate with Adobe to provide rich UI experiences on mobile devices? Clearly Sun chose to develop JavaFX. Future? Sun's direction is clearly JavaFX and they decide JavaFX's direction. For Capuchin: SonyEricsson has 12+ devices now, also Symbian phones will have Capuchin. They will continue exposure of services, apparently promise to continue developing their stack. Their demo showed JavaFX can run on SonyEricsson phones. Blogging from JavaOnePosted by robogeek on June 02, 2009 at 11:21 AM | Permalink | Comments (0)I am attending JavaOne and will be posting a series of blog's about each session I attend. Oracle+Sun effects on Java...?Posted by robogeek on April 26, 2009 at 10:48 AM | Permalink | Comments (5)So, hmm, Oracle+Sun. Interesting twist from the IBM+Sun matchup earlier. There has been numerous rumors over the years about SUN+xyzzy mergers such as Fujitsu, IBM, SGI, Apple, etc. And it's finally come to Oracle. It seems there's a lot of scratching of heads over what this will mean for the open source software projects run by Sun, and of course the back of my mind has been pondering the effect on the OpenJDK. An article in that esteemed dumpster diver rag, The Register, is prompting me to write: Oracle suits to strap on Sun's Java sandals: leader without followers There's a meme in that article that's been in my mind a lot, especially with Stephen Colbourne's series of articles dissecting the JCP. Maybe the JCP doesn't properly represent what the community wants regarding Java. Many in the community regard Sun as the "steward of Java" and there are many questions over whether Sun is a good steward over Java. But does Sun think of itself as the "steward of Java" ?? As an employee inside the Java SE team I heard different statements from different people. Sometimes we were positioned as Stewards, other times we were positioned as Owners. The role of a Steward is different than the role of an Owner, right? Sun's true vision of its role in the Java ecosystem is what flavored what Sun did for/to that ecosystem. Similarly Oracle will soon (?likely?) finish the purchase of Sun and then it will be their vision of their role in the Java ecosystem that will flavor what they do for/to that ecosystem. Some of the criticism of Sun was not properly monetizing its software, such as Java. But would a Steward monetize fully? Or would they hold back for the good of the community? Is full monetization is something an Owner would do? Think: Microsoft and Windows and programmers tools for Windows. The big 8,000,000 lb gorilla in programmers tools for Windows is, so far as I know, Microsoft. But monetization is only part of Owner versus Steward. Another part is feature choice, right? I never got involved with the EE end of the Java universe, so I'll trust The Register article when it says most of the focus of Enterprise Java developers is not the EE stack but the various smaller scale open source frameworks and tools. Hibernate, Spring, Maven, etc. This says to me that at the EE end the community is not developing the preferred technology through the JCP but through other mechanisms (primarily open source projects). That points to a failure of the JCP to properly represent what the community really wants. That touches on concerns I've had for a long time. The decision making for Java SE, as I saw it occur, seemed focused on satisfying the needs of huge organizations over smaller ones. I always heard it stated as these huge organizations are big customers of Sun, buying lots of Sun hardware/services etc, and of course we should pay attention to their needs. Similarly it's well known that the JCP is run by the Executive Committees, and that the EC seat's are predominately held by corporate JCP members rather than individuals. Does Java exist to enrich its owners? Or does Java exist to enrich us all? Who is to be making the decisions about the Java ecosystem? Sun employees were the inventor of Java and that means (because software is a work-for-hire arrangement) that Sun has had the right choose how Java is delivered to the market, and what to do with this thing. For better or worse Sun's positioning of Java was as an open playing field for everybody to partake in (Sun==Steward). Maybe Sun's true vision is Sun==Owner and that distinction may be the source of much of the friction in the Java ecosystem. What Oracle do we consult to learn what Oracle's vision is? And if the JCP truly doesn't serve our needs perhaps it needs to be killed, but what would or should replace it? Does it serve us best for significant pieces of the Java ecosystem to continue being developed outside a shared standards process? Or does the existing open source projects better serve the shared needs of the Java ecosystem? And should the core pieces of the Java ecosystem, the ME/SE/EE stacks, also be defined via open source projects rather than the closed source style of the JCP? Unfortunately we in the Java ecosystem/community cannot make some of the required choices, as they rest with the corporate overlords. Sun+IBM ==> What does it mean for Java?Posted by robogeek on April 04, 2009 at 08:44 PM | Permalink | Comments (3)I've been gone from Sun for a little while now but of course I'm still interested in Java, and thankfully still have access to this java.net blog. Anyway the recent news about IBM pondering buying Sun has piqued my interest. To me the potential hookup seems like a bad idea. Sun plays a useful role in the computer industry as an independent company, that would be lost if woven into IBM. And the tremendous overlap between Sun+IBM leaves me scratching my head over what they could be thinking. Unfortunately Sun has run into some more serious trouble than they were already in. Whatever the business stuff is being done.. the real puzzle is whether IBM will be a better steward of Java than Sun has been. I really don't know.. Wonder what is on everybody's mind. Here's a few items I'm finding in recent blog/news searches.. Dana Blankenhorn talks about The failure of McNealy's ponytail strategy .. the enterprise storage forum thinks IBM-Sun Merger Appears Near (with an announcement on monday) .. In JavaWorld they interviewed a bunch of folk about If IBM owns Java ... James Gosling is quoted warning of James Gosling warns of ‘culture clash’ if IBM buys Sun ... Forbes.com is predicting IBM And Sun: There Will Be Blood ... And C|NET's staff have written several articles about Envisioning Sun on IBM's horizon |
June 2009
Search this blog:CategoriesBusinessCommunity: Embedded Java Community: Java Tools Community: Java User Groups Community: JavaDesktop Community: JDK Community: Mobile & Embedded J2SE Open Source Swing Testing Archives
June 2009 Recent EntriesIs the JCP fundamentally the wrong model (now) for Java? Articlesj1-2k7-mtW09: OpenJDK Quality Team Introduction and Discussion All articles by David Herron » | ||||||||||||||||||||||||||||||||||||||||||||
|
|