Agile Zone is brought to you in partnership with:

Matt is the Group Leader of Research Application Development in the Research Informatics Division of Information Sciences at St. Jude Children's Research Hospital in Memphis, Tennessee. Matt has been developing and supporting enterprise Java applications in support of life sciences research for St. Jude since 2001. Matt is a committer to multiple open source projects and is the founding member of the Memphis/Mid-South Java User Group. Matt is also a regular speaker on the No Fluff Just Stuff symposium series tour (as well as other major conferences), and his articles have appeared in GroovyMag and NFJS the Magazine. His current areas of interest include lean/agile software development, modularity and OSGi, mobile application development (iPhone/iPad/Android), web development (HTML5, etc.), and Groovy/Grails. Matt has posted 44 posts at DZone. You can read more from them at their website. View Full User Profile

Is the Apple JVM an "Extra Feature?"

11.03.2010
| 7960 views |
  • submit to reddit
Recently Apple announced that it was deprecating its Java Virtual Machine (JVM) implementation. Ten years after promising to "make the Mac the best Java platform," Steve Jobs has done an about face, with Apple indicating that no further development of Java for Mac OS X will occur within Apple beginning with the upcoming Lion release. Quite expectedly, this move triggered an uproar within the Java community, the likes of which haven't been seen since Leopard shipped without Java 6. Many a Java developer has signed online petitions and/or vowed to never purchase Apple hardware or software again. Pundits galore have commented on the situation with widely varying opinions. Allow me to join the fray.

I'd like to begin by asking the question, "Is the Apple JVM an extra feature?" I wrote about extra features in episode two of my series "The Seven Wastes of Software Development." "Extra features" is the mapping of the lean manufacturing waste "overproduction" into the software development space by Mary and Tom Poppendieck. Any and all features come with a cost and generate a certain amount of waste, and this is absolutely true of extra features as well. How do we determine whether or not a feature is extra?

Let's begin by referencing a Standish Group study [1] which states that almost 65% of software features are rarely or never used. Is this something that's true of Java on the Mac? Let's examine the situation. I have absolutely no statistics to back this up, but I think it's fair to say that the development of client-side applications targeting the Mac OS X platform flat-lined years ago. I challenge you to name one "killer app" for the Mac platform that is written in Java. With that said, the Mac remains a very popular platform on which to develop server-side Java applications. I and nearly every one of my colleagues on the No Fluff Just Stuff tour use a Mac laptop for developing JVM applications. But are we representative of the Java developer community as a whole?

My guess is that everyone would agree that the community of Java developers using Eclipse represents an reasonable cross section of the Java developer community as a whole. The Eclipse Foundation recently published the results of its 2010 Community Survey. The results of this survey indicated that usage of Mac OS X as a primary platform for software development topped out at 7.9%. More importantly, this means that 92.1% of Eclipse survey respondents rarely or never use Mac OS X as a software development platform. Now I know you can make statistics say anything you want (as I just did), but it is a startlingly high number nonetheless.

In his recent article entitled "Waste!" Hamlet D'Arcy tells us about another means of exposing extra features: economic models.

Create a currency based cost/benefit model for all new features. Estimate what revenues and income the new feature will likely produce, and what development costs it requires to create.

Being the profitable company that they are, it's quite likely that Apple does business this way. Given the financial success of the iPod, iPhone, and iPad platforms, Apple seems to be making the right decisions with respect to revenue and income, resulting in a 424.26% increase in share price over the last five years. With all of that said, even lacking a cost/benefit model, the Poppendiecks provide us with a simple litmus test for features:

If there isn’t a clear and present economic need for the feature, it should not be developed.

Or as D'Arcy states: "When in doubt, leave it out."

Is there a clear and present economic need from the perspective of Apple (and its shareholders) for the Apple JVM? The argument has been made that the increase in Apple hardware sales alone from Java developers should more than make up for the cost of the minimal resources that Apple invested in the Apple JVM [4]. However, as a percentage of overall revenue generated by the company (think about all iPods, iPhones, iPads, iMacs, OS X licenses, App Store revenue, iTunes revenue, etc.), these sales probably still amount to a small blip on the radar. It stands to reason that there isn't a clear and present economic need to maintain these sales. And if developers represent the bulk of Apple JVM consumers, there is no other relevant source of economic need.

Are there holes in this analysis? Absolutely. I'm a software architect, not a financial analyst. With that said, I think its extremely likely that we can, from Apple's perspective as a profit-seeking entity, file the Apple JVM implementation under "extra features." Let the flame wars begin! :-)

References

[1] Jim Johnson, Standish Group. XP 2002 Conference Presentation

[2] Hamlet D'Arcy, "Waste." NFJS the Magazine, November 2010.

[3] Mary and Tom Poppendieck, Implementing Lean Software Development 2006

[4] The Java Posse, Episode 327: http://javaposse.com/java-posse-327-news-and-listener-feedback
Published at DZone with permission of its author, Matt Stine.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

David Pavlis replied on Thu, 2010/11/04 - 4:23am

Good reasoning - which makes me worry as our company is one of thouse few producing cross-platform business application which also supports Mac OSX (Windows is the main target). We chose Eclipse & JVM to make it easy to run on Win, Lin, OSX. Most of our developers use Win or Lin systems; only two OSX machines - mostly to test & fix problems stemming from slight incompatibilities of Eclipse/SWT behavior on various platforms.

Actually we have far less issues testing&fixing when we go from Win to Linx then Win or Lin to OSX.

Our Mac/OSX customers constitute really a minority, but with relatively small effort in porting our app to OSX, it seemed sexy to offer Mac support. If Apple discontinues JVM, then we will have less trouble and good excuse for potential customers asking about OSX support.

PS: I have been happy MacBookPro user (and Java developer) for last 4 years. Looks like my next computer won't be from Apple unless SoyLatte gets improved. I will miss my MacBook :-(

Andrew McVeigh replied on Thu, 2010/11/04 - 6:39am in response to: David Pavlis

Actually we have far less issues testing&fixing when we go from Win to Linx then Win or Lin to OSX

I found exactly the same. i make a complex development tool, with fairly sophisticated graphics, using swing and java2d. We target windows, linux and the mac: http://www.intrinsarc.com/evolve/screenshots

i used to develop under linux and i found one or two glitches when running under windows, nothing serious.  i moved to windows for main development, and used to be able to run under linux without any problems.  wonderful.

however, when i tested on the mac, i literally found about 10 serious swing glitches.  jsplitplanes didn't split properly all the time, text boxes sometimes wouldn't focus, the layouts behaved differently.  it took me two weeks of concerted effort to fix it up and i had to retest under all 3 platforms.

i'm not sure how many of our users are developing on the mac, but the browser share for our site from macos is significant, which is why i'm reluctant to give up on the mac.  for all i know though, they are browsing using macos and then using parallels to develop in windows...

Greg Brown replied on Thu, 2010/11/04 - 7:58am

I agree that, from Apple's perspective, the JVM is probably an "extra feature". Their software ecosystem is based on Objective-C and Cocoa, not Java. However, that is not the same thing as saying that Java on the Mac is irrelevant or unnecessary.

For example, the "killer app" argument is weak. Java on the Mac doesn't need to have a killer app to justify its existence - it *is* the killer app. Like other cross-platform toolkits (such as Flex or Silverlight), it allows developers to quickly and easily build applications that target multiple operating systems. This ability is essential, particularly in the enterprise, where development teams don't have the time or budget to build a native version of every business application.

Further, as you noted, survey results are often unreliable. The fact that this particular survey showed that "92.1% of Eclipse survey respondents rarely or never use Mac OS X as a software development platform" is inconclusive, since it is equally possible that "92.1% of Eclipse users rarely or never respond to Eclipse Community surveys".

Finally, whether developers are using Java on the Mac to build client-side or server-side applications is not relevant. The fact is that they *are* using it, and from my experience, in seemingly large numbers. So while it may not make business sense for Apple to continue investing in their own custom JVM implementation, it does not necessarily follow that there is no justification for some entity (e.g. Oracle) to continue supporting Java on the Mac in some capacity.

Matt Stine replied on Thu, 2010/11/04 - 9:35am

Excellent. I've touched a nerve (as I expected).

I do want to clear up one point. In no way am I asserting that "Java on the Mac" is not relevant. It is extremely relevant to me and the team I work with daily. We are 100% Mac developing 100% JVM server-side applications. The vast majority are Eclipse users, so we depend on a reliable client-side JVM to develop our software. With that said, multiple folks have said that Eclipse happens to run wonderfully on Soy Latte. I don't have enough information to know if the same can be said regarding Netbeans or IntelliJ IDEA.

Furthermore, should the same "economic analysis" be performed by Oracle, Google, or other companies, the results may differ. It might make sense for one of these companies to develop a Mac OS X JVM that integrates with the native Aqua UI. Unfortunately, I just don't have enough information to predict what any of these companies are going to do.

I can say that I have "heard" that Oracle isn't the friendliest company when it comes to using the Mac platform as an employee of the company, and it's incredibly hard to get Apple hardware paid for. Take that for what it's worth.

Tony Johnson replied on Thu, 2010/11/04 - 11:08am

Macs are used heavily in education settings and many educational sites use Java. Here is one example I am familiar with:

http://epgycourses.stanford.edu/

(See http://epgycourses.stanford.edu/certify/ for software requirements). Similarly in academic/scientific environments many users choose to use Mac's and many applications require Java, again one example (of many) I am familiar with:

http://evo.caltech.edu/evoGate/

I don't know whether this community is large enough that the impact of them all abandoning the Mac would hurt Apple financially, but the removal of Java would generate a great deal of ill-will towards Apple which should also be included somehow in their calculations.

Jason Erickson replied on Thu, 2010/11/04 - 11:21am

The concept of "Extra Features" cannot be so easily calculated for very broad, multi-purpose things like computers or even some software.  If 95% of Excel users never use the spline() function, does that make the spline() function an "Extra Feature"? Of course not, because those who do use it would REALLY miss it if it went away.  Plus there's the users who have never used it, but are the kind of users that might, and they expect it to be there when they need it.

If you are in the business of branding and you are in the business of delighting your customers and making them thrilled to have you around (like Apple), you are taking a real hit when you piss off 8% of your customers.  (And we really are pissed.)  Add to that the influence of these customers.  Many of those developers are the technology decision makers in their household (and they give advice to their parent's household, their in-law's household, their sister's household - you get the idea).

I can't say that Apple has, on balance, made a bad miscalculation with this move.  But I do think that you underestimate the cost of the move.

Greg Brown replied on Thu, 2010/11/04 - 12:09pm in response to: Matt Stine

Hi Matt,

I think you may have misunderstood my comments. In my opinion, you have drawn some inaccurate conclusions, or at least failed to present and justify those conclusions properly. After reading the article I was left a bit confused as to what message you were actually trying to convey.

Greg

Andrew McVeigh replied on Thu, 2010/11/04 - 12:31pm

i have felt for quite a while that macs are basically starting to turn into "appliances for consumers".  it's a lucrative business for apple, as computers are too hard to use for the average person.

so, an appliance is great for my parents and my kids, but as a developer I want more freedom.

Matt Stine replied on Thu, 2010/11/04 - 1:39pm in response to: Greg Brown

Greg-

This article represents more of a thought experiment than an attempt to draw a definitive conclusion in the matter - something to generate discussion (which it has). If I failed to convey that message then I apologize. At any rate, there's barely enough information out there to speculate...hence the framing of the article's title as a question.

 -Matt

Greg Brown replied on Thu, 2010/11/04 - 3:18pm in response to: Matt Stine

Got it. Thanks for clarifying.

As I said, I do think that it makes sense for Apple to drop its custom JVM. It doesn't seem to fit into their current model, and, as others have noted elsewhere, it always lagged pretty far behind the Sun/Oracle version. As long as someone else is willing to pick it up, I think that Java still has a long life ahead of it on the Mac.

G

Mikael Lundgren replied on Fri, 2010/11/05 - 6:25am

It would be interesting to know how many iPhone apps that rely on server side Java applications developed on OS X. It would also be interesting to know how many Java developers also develop for iOS. Is it really so easy to dismiss Java from the OS X world and the iOS world just because Java development is focused on servers? Much of the Internet is server based and I am quite sure that very few of those servers are OS X servers.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.