Please buckle up and enjoy the ride (oh, and hang on to your hat!)
It is impossible to travel faster than the speed of light, and certainly not desirable, as one's hat keeps blowing off.
-- Woody Allen
Sure feels like the mobile and embedded industry is moving at a breakneck pace. Now, try taking an entire product line open source in a couple of months ... That's what we've just done and I had to hold on to my hat more than a few times lately. It's been a wild ride so far and it's about to get a whole lot more fun.
Successes and Challenges
Unless you've been hiding under a rock for the last couple of years you'll know that the Java ME platform has been amazingly successful with over 3.8 billion devices shipped to date. An entire industry has been created in the process, an industry that is at the center of the way people communicate, interact, live, work, and play. And there is still plenty to come - I see many opportunities to improve mobile technology and make it much more integrated, valuable, and user friendly.
Software, of course, is at the heart of the mobile experience. Java ME has become the unifying factor across a heterogeneous set of vendors, devices, operating systems, interfaces, networks, services, and content. Given the history and situation it has been fulfilling this promise surprising well.
I'm also quick to admit that there have been - and still are - challenges. These are a natural sign of the vitality and rapid growth of an ecosystem such as the mobile space. In the beginning, entrants to the market may be forced to build a significant part of the technology stack themselves due to the lack of available base technology solutions. As the market evolves and matures this results, despite best intentions, in an unfortunate but entire logical situation: Multiple providers offering similar, but partly (or even entirely) incompatible base technology.
Consequently, one part of the market (the base technology providers) is now spending a lot of effort maintaining and improving a technology which may not be its core value-add and the other part of the market (the application and content providers) is forced to deal with a fragmented technology landscape that is difficult monetize. The situation grows worse as the complexity of the platform software increases. A situation nobody can be entirely happy with.
At a Turning Point
Today, I believe we are at a turning point. The industry is ripe for a base platform and implementation that affords a level playing field. A platform that is feature-rich, compatible, consistent, reliable, high-performing, secure, and most of all, open. A platform that acts as a springboard and allows everybody to particpate equally, to add their value, to accellerate the rate of innovation, and to foster new markets. A platform that is predictable and meets the needs of all participants because it is evolved by all participants. And free doesn't hurt, either.
Enter Java ME Open Source and the Java Mobile & Embedded Community
Here is what Sun is announcing today for Java ME:
- Sun has chosen GPL2 as the license for its Java ME open source code. Sun will also continue to offer the code under commercial licenses for customers requiring the benefits of such licenses
- Sun is open sourcing immediately its Sun Java Wireless Client implementation, which is one of the leading MIDP/CLDC-based mass-market phone platforms
- Sun is open sourcing immediately its advanced phone implementation, which is a CDC-based platform for smartphones, set-top boxes, and similar advanced devices
- Sun is open sourcing immediately its Compatibility and Quality Testing Tool Frameworks, including the MEframework
- Sun is open sourcing soon the Java Device Test Framework, which is a framework for quality and functional tests
Sun is also announcing the creation of the Java Mobile & Embedded Community (vision, governance) as the central location for open source development of Java ME technologies and applications. The community will initially be populated with a few key projects and we hope, with community involvement, much more to follow soon:
- phoneME Project: Implementations for Java ME feature and advanced phones. This includes a single repository containing active development modules including CLDC, CDC, MIDP, and various JSR implementations.
- cqME Project: Sources of the MEframework including the repository for active development.
- jtHarness Project: Sources of the JavaTest Harness including the repository for active development.
- Application and Content Developer Project: A community for developers to find tools, resources, and help, to collaborate in the development of Java ME applications and content, and to engage in the evolution of the Java ME plaform.
What Does It Mean?
This is pretty radical. This not a test, it is the real thing. These are the actual and complete bits of Sun's commercial products, minus encumbered code (code that Sun cannot make available as open source for legal reasons). For example, the phoneME code made available today is full-featured and buildable for several popular platforms, including Windows, Linux/X86, and Linux for embedded devices. We are planning for regular releases of the open source code in collaboration with the community including full QA testing to ensure deployable quality. Sun's ongoing development will happen in the open on this code and Sun's commercial products will be built on this code.
This means that everyone in the community now has access to high-volume, high-quality Java ME implementations, both the tested and released code as well as the bleeding-edge bits, for free. You can download them, build them, fix bugs, add features, and develop applications and content on them. Here is how to get involved . Where things start to get really interesting is here or here . More about this in another blog.
Heck, you could even ship your mobile product with an open source release for free if the GPL2 license is right for your situation. All this sounds quite radical to me.
Benefits for Everyone
This announcement pretty much revolutionizes the model by which the mobile industry creates platform software. It gives everone in the community equal access to code, information, and influence. By integrating all relevant technologies (platform, tools, applications, and content) into a single open community we'll have platform architects, tools developers, service providers, and application and content developers working together to maintain and evolve the code in a collaborative, industry-wide effort.
Platform vendors will be able to leverage the base implementations to reduce development costs and variation across their devices. Tools vendors can create a better product by providing tighter integration with the platform. Application developers will have access to tighly integrated development platforms and tools, be able to qualify their applications against the real platform bits early, fix problems themselves, and influence the evolution of the technology in ways previously impossible. Operators will benefit from accellerated innovation and improved consistency of devices and software.
This model will make innovation much more efficient, tearing down barriers and slashing turnaround time for improvements from months and years to merely days or hours. And most importantly, this compelling cycle of innovation and collaboration will encourage the industry to adopt and maintain a common "golden stack" that serves as a reference for features, behavior, and performance to the benefit of the entire ecosystem. These changes go straight to the heart of many of the inefficiencies currently still present in the mobile industry.
Step Aboard and Fasten Your Seatbelts
As you can tell I am quite excited about what's ahead. As we roll this out please pardon the dust as construction is still underway in some places. But I would wholeheartedly like to encourage everyone to look around, download the code, play with it, give us feedback, and most importantly, get involved. Let's make this a vibrant place for innovation and participation and shape it into the community and technology you want it to be.
Welcome! Enjoy the Ride. Never mind the hat ;-)
Evangelist, Java Mobile & Embedded Community