|
November 2007
November 28, 2007
Google, Android, and Sun
The controversy around Android and Java; what does it mean to the Sun-Google relationship?
Sun enjoys a good relationship with Google (see http://blogs.sun.com/jonathan/entry/putting_
the_sun_google_partnership). Google helps distribute Sun technology, such as Java and OpenOffice, and Sun in turn helps Google distribute its toolbar. Money is almost always involved in agreements like these; why else are partnerships created? So what does the Google Android SDK mean to this relationship, and why isn't Sun part of the Open Handset Alliance (see http://www.openhandsetalliance.com)?
Before we get into this, let’s review some facts. Sun owns Java; it’s their IP and everyone besides developers needs to pay for it. Sure, OpenJDK is an option for companies that distribute Java with their products, but that subjects them to the terms of the GPL. Therefore, if you want to embed Java in your commercial product, you need to pay for it.
The interesting thing about Android is that it includes a version of Java that may violate Sun’s license terms. For instance, it breaks Java’s requirement for portable, WORA, code by compiling it down to machine-specific instructions (see http://www.oreillynet.com/onjava/blog/2007/11/dalvik_googles_tweaked_nonstan.html). It doesn’t appear that Google has entered into talks with Sun to license it at all (see http://blogs.zdnet.com/BTL/?p=6900). Also, one interesting portion of the Android SDK license click-through agreement (which you agreed to if you downloaded the SDK – whether you knew it or not) claims that ALL of the SDK – which implicitly includes Java – belongs to Google. See http://code.google.com/android/terms.html for the complete terms that you’re agreeing to when you download the SDK.
I’ve read other reports that Sun and Google are headed for a big fight (see http://www.techworld.com/news/index.cfm?RSS&NewsID=10693), or that Google’s intent is to stick it to Sun for one reason or another. I don’t believe any of this; I think it’s all media hype. My opinion is that Google is taking aim at the wireless carriers, and ISVs such as Microsoft, with Android and the OHA, not at Sun or Java. Google’s intent is to disrupt the marketplace for what it believes is the good of the Internet community; in this case, cheap or free wireless connectivity with a standardized application platform. Their use of Java, and the bending of it to meet their platform needs is part of that, but it’s not meant as an attack on Sun.
So how will this be resolved? I can’t be sure. However, my opinion is that Google and Sun will work things out in a reasonable way, where concessions will be made on both sides, possibly with Google committing to NetBeans as the sole Android IDE, and Sun changing its JavaFX Mobile (http://java.sun.com/javafx/mobile/) strategy to benefit Android in some way. Stay tuned for more information.
Happy coding!
EJB
Posted by Eric Bruno at 08:59 AM Permalink
|
November 19, 2007
Open Source and Capitalism
In many ways, the open-source movement is like Socialism--the community working for the benefit of the community without much regard for personal gain.
For the most part, socialism seems works for the software world. There are many companies out there making gobs of money with open-source (mainly GPL and Apache-licensed) products. For example, there’s Red Hat, MySQL, JBoss (now part of Red Hat), Interface21 (with Spring), Iona (with LogicBlaze/FUSE), and so on. Also, there are cottage industries built around these open-source projects, such as the consulting firms, magazines, and online publications, which also generate significant revenue from this movement.
But where would we be without capitalism? For instance, the top-two contributors to the open-source world are Sun and IBM. Sun is by far the largest contributor, when measured in person-months of development time, as outlined by the European Commission in this Business Review article (http://www.businessreviewonline.com/os/archives/2007/01/where_does_open.html).
While the community of developers that join efforts around an open-source project are what really matter, this article sheds light on the fact that today’s largest commercial software vendors have the potential to make an even larger impact. In my opinion this means that there’s room in this industry for both open-source projects, and commercial software entities, and that they can co-exist and benefit one another in the marketplace. After all, communities of volunteers, regardless of the industry or market – software or otherwise – need support from people or corporations that have the funds to make things happen. Any good commercial software company, and open-source project for that matter, will be motivated to do this for one reason: the benefit of the end user. If a corporation isn’t concerned with that, then they probably won’t be in business long anyway.
What are you, and/or the corporation you work for, doing to support your end-users through the open-source software community? Write back and let me know.
Happy coding,
EJB
Posted by Eric Bruno at 09:48 AM Permalink
|
November 13, 2007
FOSS Java - One Year Later
Today marks the one-year anniversary of open source Java technology as well as the formation of the OpenJDK community for Java SE and the Mobile & Embedded community for Java ME.
A lot has happened since Sun set Java "free" under the GPL v2 license and released the initial source code. Take a look at this time-line (compiled from the bogs of Rich Sand, Terrance Barr, and Roger Brinkley):
November 13 2006:
• Sun open sourced several components of Java SE (javac, HotSpot) and the entire Java ME code base, both CLDC and CDC, under GPLv2 licensing.
December 20, 2006:
• Five weeks later, the MIDPath Project releases a MIDP 2 implementation for desktops, based on the phoneME project. This allows you to run Java ME applications on your desktop development computer.
May 8, 2007:
• The entire Java SE JDK source code base is released on the openjdk.java.net site, and is announced in the keynote at JavaOne.
• Later that same day, a Gentoo Linux ebuild of the OpenJDK code base is published, proving that the Open JDK project is workable.
• Yet later that same day, a source RPM is published by the Fedora project by Fedora engineers who were sitting in the audience at JavaOne.
May 9, 2007:
• phoneME Feature Milestone Release 2 is released in the Mobile and Embedded Community.
May 16, 2007:
• phoneME Advanced Milestone Release 2 completes the update to the Java ME FOSS code bases. Now both Feature and Advanced implementations are under live development in the project's Subversion repository on java.net.
June 7, 2007:
• The IcedTea project forms to deliver a patch-set for the OpenJDK code base that allows it to be built from 100% free source code, using free software build tools.
"We intend this build repository, based on OpenJDK, to provide a basis on which to experiment. It’s not a fork from OpenJDK, and doesn’t contain the OpenJDK source code.” - Andrew Haley, Red Hat.
August 9, 2007:
• Sun announces the OpenJDK Community TCK License Agreement.
Fall 2007:
• The Mobile and Embedded Community begins porting phoneME advanced to the Nokia N770/N800 Internet tablet device. And Italian consortium Cineca is using phoneME in an open source set-top box for interactive digital TV.
November 5, 2007:
• Red Hat announces that they have signed the Sun Contributor Agreement (SCA) and the OpenJCK Community TCK License Agreement. A significant player in the Linux world agrees to join and contribute, and to work towards shipping a 100% Free and compatible implementation as part of their distributions. This also paves the way for most of the IcedTea developers, who work within the Fedora project at Red Hat, to align IcedTea even more closely with OpenJDK.
November 13, 2007:
• One year later, the OpenJDK project has been downloaded nearly 12,700 times by developers in the six months since the JavaOne announcement of a fully buildable JDK. And that tracks only full bundle downloads of the 6.5+ million line code base, and not checkouts through the read-only Subversion repository.
• The OpenJDK Interim Governance Board is actively working toward creating a Constitution.
• The Mobile and Embedded Community has over 80 projects active, over 500 passionate members, and has seen over 20,000 downloads of all projects in the community.
• The Java Mobile and Embedded Developer Days Conference, scheduled for January 23-24 2008 with James Gosling as keynote speaker, is open for registration.
If you're interested in hearing all about this right from the horse's mouth, watch these videos from key people within Sun:
• Mark Reinhold video
• Ray Gans video
• John Muhlner video
Happy coding!
EJB
Posted by Eric Bruno at 10:21 PM Permalink
|
November 05, 2007
Non-Google Phone Announced
Google announced Project Android today. The announcement includes 30 partners, with an open software platform available only to users who buy one of the official phones – there is no single GPhone.
Google announced their Open Handset Alliance plans through a blog entry, which is appropriate considering their stance in the web 2.0 world. Currently, there are no details on the SDK, although they did say details would be coming on November 12. It appears Java is part of the plans, according to a Sun announcement:
"We're thrilled to have Google amplify the global momentum behind Java technology, the world's most prolific open source software platform - on more than five billion devices. We are excited by the Open Handset Alliance's upcoming open source contributions of new services and frameworks. We welcome Google to the community and look forward to collaborating on the evolution of the Java platform as part of our ongoing relationship. In addition, Sun and the NetBeans community will provide NetBeans support for the Android platform as it becomes available and will continue to build on the support NetBeans provides to numerous mobile platforms and standards," said Rich Green, executive vice president Software at Sun.
Additionally, Jean-Claude Martinez, CEO of Esmertec, has said that they are delighted to be part of the Open Handset Alliance, and plan to make their Jbed Java ME product available for the platform.
What is known so far (see this InformationWeek article) is that the platform will be based on Linux, there is no one Google-branded phone; Google will provide the platform, base applications, search, and ads; the phones will be open to third-party application developers.
I can't help but feel a little disappointed by the fact there seems to be no such thing as a gPhone, the Wifi-enabled device that would offer free mobile phone service, as the press has been reporting for the past several months. However, time will tell if the fruits of the Open Handset Alliance will eventually include this promise.
Keep tuned for more details as they emerge.
-EJB
Posted by Eric Bruno at 12:43 PM Permalink
|
November 01, 2007
Java ME Born Again
Java ME isn’t dead, but it’s growing up to be JavaFX Mobile.
I've heard and read all of the recent rumors of Java ME's imminent demise (http://www.theregister.co.uk/2007/10/23/javafx_mobile). However, due to the demand for low-cost devices such as low-end cell phones and headless embedded systems such as smart RFID readers, there will be a need for Java ME CLDC (http://java.sun.com/javame/technology/cldc.jsp) for a long time to come. Java ME makes it easy to develop applications for these devices, as it leverages the existing Java developer base and tools.
However, higher-end devices, such as more capable cell phones, smart phones, PDAs, and other GUI-enabled embedded devices, are quickly moving up the spectrum of Java technologies to CDC (http://java.sun.com/javame/technology/cdc.jsp) and beyond. This is why Sun introduced Java SE Embedded (http://java.sun.com/javase/embedded/index.jsp) a few years ago, which was also the basis of the SavaJe Jasper phone (http://www.engadgetmobile.com/2006/05/13/savaje-releases-jasper-s20-java-phone/). Sun followed up with a strategy for an embedded version of Java that’s ideal for mobile devices, where application development and deployment are made more transparent even across different device manufactures. The result is JavaFX Mobile (http://www.sun.com/software/javafx/mobile/index.jsp), and the related JavaFX Script (http://www.sun.com/software/javafx/script/index.jsp) language.
Java is everywhere
Remember that Java is currently running on almost 5 billion devices today, 2 billion of which are cell phones. There are over 7 million Java-powered set-top boxes, and about 1 billion installations of Java SE on desktop and laptop computers. Don’t forget, there are around 6 million Java developers globally. This huge ecosystem represents a significant market to Sun.
However, as I’ve mentioned before in this blog on several occastions, Java ME is a cost item to cell phone manufacturers, as it needs to be licensed for embedded use. Regardless of developer and user demand for Java enablement, these manufacturers can be resistant to supporting Java. With JavaFX, Sun is apparently saying that they want those manufacturers to benefit from the power of Java just as much as the developer community, and the end users.

Java + Linux + Mobile applications = JavaFX Mobile
JavaFX Mobile intends to remove much of the cost, effort, and risk in building software stacks for new cell phones and other devices by providing an entire mobile operating system and application stack to them. This JavaFX stack will run right on the metal, and will be based on Java and Linux. Whether it’s a feature phone, smart phone/PDA, home entertainment system, or a laptop, JavaFX is Sun’s strategy to bring standardization and the write-once run anywhere mantra to the entire computing spectrum.
To answer the question, “How do you battle the iPhone’s absence of Java entirely,” Sun is making Java part of a standard OS with the intent to unify the development communities. Because it’s Java, with support for scripting such as the new JavaFX Script, or the existing PHP, Perl, Ruby, and so on, JavaFX Mobile will support standalone applications as well as Ajax applications. Do you want Java or script? You choose. Installable application or Ajax-based web 2.0 application? You choose.
It’s easy to see why this could indicate that Java ME is dead; it gets lost in all of the JavaFX hype. However, the JavaFX strategy still needs a JVM to make it all work. Is it going to be based on Java ME CDC or Java SE? I think the answer is yes. Sun will probably want it to work with either VM (and even CLDC). It will be up to the device manufacturers to choose the best JVM foundation based on their devices’ capabilities. It also helps to ensure that JavaFX extends across the entire spectrum of computers in the world, whether they fit in your hand, or on your desk, or in data center.

What makes this strategy interesting is that, while I see how it faces off against the iPhone, I’m not sure how it fits in with the already legendary Google Phone (http://online.wsj.com/article/SB119369951717475558.html?mod=mktw). Time will tell. Stay tuned to this blog for details as they emerge.
Happy coding!
-EJB
Posted by Eric Bruno at 11:16 PM Permalink
|
|