| By Richard Monson-Haefel | Article Rating: |
|
| December 25, 2007 10:30 AM EST | Reads: |
29,990 |
Richard Monson-Haefel's "I, Analyst" Blog
Ed Burnette wrote a rebuttal to my essay on "Why Microsoft Loves Google Android", which was high-spirited. Reputation bashing aside, I like high-spirited debates. My favorite quote these-days is, "Argue as if you were right, listen as if you were wrong" by Karl Weick. It's a good ground rule for any debate. It allows you to be passionate while also giving serious consideration to your opponent's arguments.
I want to apologize for my imprecise language in my original post. Ed’s misunderstanding of my thesis makes it clear to me that I didn’t explain myself very well, and I must admit that I used terminology inconsistently. I’d like to take another try at it, and this time I’ll make sure that I clearly explain the subtleties of forks, platform compatibility, and platform fragmentation. I also want to make it clear that I’m not trying to bash Android. I like Android. I’m just saying that Android is a threat to Java standards.
Is Android a fork?
First let me differentiate the Java Programming Language from the Java Platform. The Java Programming Language is a programming language syntax. The Java Platform includes the Java Language, but it’s much more than that. The Java Platform is a three-legged stool consisting of the core Java APIs (packages, frameworks, and libraries), the Java bytecode (the compiled, executable format), and the Java Virtual Machine (the runtime system that executes bytecode). Note that the language syntax is actually the least important aspect of the Java Platform. Other language syntaxes (e.g., Groovy, JRuby, JPython) can be used to write Java bytecode applications that execute in the JVM.
In order to qualify as a Java-compatible platform, a platform must implement all three of these legs as required by the Java SE or Java ME specifications. (I'm leaving Java EE out of this because it’s not germane to this discussion.) If a software distribution does not depend on or implement all three legs of the stool (APIs, bytecode, and virtual machine) then it’s not a Java Platform – it’s a fork.
Android uses the Java programming language and some of the Java ME and SE APIs, but it uses a different executable format (i.e., not bytecode) and a different virtual machine (i.e., not a JVM). You cannot take Java bytecode generated using a Java ME or Java SE environment and execute it on Android. Therefore it is a fork. That is not a value statement; it’s a fact. Perhaps "fork" is an overloaded term these days. If there is a better word for implementing some, but not all, of the required parts of a software platform – any platform - then please tell me.
Published December 25, 2007 Reads 29,990
Copyright © 2007 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
- Google and 34 Others Launch Android Platform, Form the Open Handset Alliance
- Why Microsoft Loves Google's Android
- Google Developer Advocate Announces Beta Release of the Android SDK
- Opinion: Do Google Android Mobile Apps Lack Consistency?
- Android Outside the Mobile Domain
- Book Review: Programming Android
More Stories By Richard Monson-Haefel
Richard Monson-Haefel, an award-winning author and technical analyst, owns Richard Monson-Haefel Consulting. Formerly he was VP of Developer Relations at Curl Inc. and before that a Senior Analyst at The Burton Group. He was the lead architect of OpenEJB, an open source EJB container used in Apache Geronimo, a member of the JCP Executive Committee, member of JCP EJB expert groups, and an industry analyst for Burton Group researching enterprise computing, open source, and Rich Internet Application (RIA) development.
- Cloud People: A Who's Who of Cloud Computing
- New Relic Q1 2013 Blazes Past Growth Targets and Reaches 40,000 Active Customer Accounts
- GDS International Confirms Unprecedented Delegation for Upcoming Next Generation Telecoms Europe Summit in May
- AWS Going into a New Line of Work
- Cloud Expo New York: Using APIs for Better Business Partnerships
- Google Compute enters the IaaS market
- Agile Solutions for Cloud, Big Data, Mobility Services
- Apple’s Key Rubber-Band Patent Found Invalid Again
- How to Re-imagine Your Business for a Mobile World
- 910Telecom to Exhibit at Cloud Expo New York
- The Cloud Delivers a New American Workforce
- Component Models in Java | Part 2
- Cloud People: A Who's Who of Cloud Computing
- New Relic Q1 2013 Blazes Past Growth Targets and Reaches 40,000 Active Customer Accounts
- North America and Asia Account for Highest Proportion of TD-LTE Network Deployments, Direct Carrier Billing Accelerates Revenue Growth for CSPs
- GDS International Confirms Unprecedented Delegation for Upcoming Next Generation Telecoms Europe Summit in May
- AWS Going into a New Line of Work
- Register for the 2013 FOSE Conference
- Cloud Expo New York: Using APIs for Better Business Partnerships
- Apple Ordered to Pay VirnetX $333K a Day
- Google Compute enters the IaaS market
- Agile Solutions for Cloud, Big Data, Mobility Services
- Nielsen to Present at Upcoming Conferences in March
- IBM Picks Mobile for Its Next Big Growth Play
- Where Are RIA Technologies Headed in 2008?
- Should RIM BlackBerries Be Rented?
- Has the Technology Bounceback Begun?
- Trump's Apprentice Runner-Up Rebecca Jarvis Has $150,000 Job Offer From SYS-CON Media
- "Mobile Web 2.0" – How Web 2.0 Impacts Mobility & Digital Convergence
- Ringback Tones
- Microsoft and Sprint Collaborate on Mobile Search
- Mobile Music Gets Boost From New W600 "Walkman Phone"
- i-Technology Blog: Zero-Cost Telephony, the 6-Ton Elephant in the Telco Room
- Java Edition of Windows Live Messenger for Mobile Launched
- Alcatel + Microsoft = Internet TV Over IP, a.k.a. "IPTV," Coming Soon To a PC or TV Near You
- Cloud People: A Who's Who of Cloud Computing

























