Why i don’t care about Java 6 on Leopard

It looks like anywhere you go in the Java blogosphere, people are only talking about Java 6 (or lack of thereof) on Leopard. Some say that the only reason they bought Leopard was for Java 6, some say that their honeymoon with Apple is over, and some say that Java 6 will be available shortly as a separate download. And 99% of the postings and the comments seem to agree – Java 6 should have been included in the golden master of Leopard.

I thought about it over the weekend, and time and time again i reach the same pragmatical conclusion – i don’t care about Java 6 on OS X, and for that matter i don’t care about OS X as a Java development platform. While that may sound as a harsh statement, allow me just a few minutes of your time.

I’ve already written that for me, an operating system is just another layer in my development platform. I’m more interested in the tools that i’m using and the applications that i’m developing. The things that i said 30 months ago are still true – i’m perfectly OK with my Windows machines, because i rarely directly interact with the operating system. I might have switched to Linux, but pragmatically speaking, it is not a good business proposition. Between 150$ for the OEM version of Vista and spending 12 hours to download and install OS and configuring the Java environment (on my free time during the weekend away from the family), i choose Vista any given day.

Now, let’s talk some numbers. The market share for Windows is somewhere in 90-95% range, and while sales of Mac machines rise on the quarterly basis, so do sales of Windows boxes. One might say that these numbers are for all the machines, including corporate environments and home machines for non-IT people. I’m looking at the visitor stats of this blog, which is has a very specific technical orientation, and the numbers are a little surpising:

  • Windows has 75.6%
  • Linux has 14.4%
  • Mac has 9.6%

Yes, even for such a narrowly oriented site that mainly talks about Swing, Java2D and other UI topics in Java land, Mac doesn’t even cross into double digits. While you do see most of JavaOne presenters use Mac laptops, it doesn’t really extrapolate to the wider audience of JavaOne attendees, and most certainly it doesn’t extrapolate to the much wider audience of Java developers. The same applies to the blogosphere numbers – i’m sure i have seen about 20-30 rant entries on this subject over the past three days. Let’s be generous and say it’s an even hundred. Is that a lot? It is a lot of noise, but compared to the number of blogs tracked by JavaBlogs (2261) it’s not that much.

Looking at the bug reports for my open-source projects over the past three years, i see only two Linux-specific bugs and one Mac-specific bug. Yes, about 500 bugs reported via the bug trackers, forums, mailing lists and direct mail, and only one Mac-specific bug. Of course, most of these bugs were cross-platform, but so have been the bug fixes.

Now, your numbers might be different. If you’re developing a commercial product that is targeting multiple OSes, you might not be in a position similar to mine. However, if you spend more money to provide support for Mac than what you make from product sales on Mac, that is a bad business proposition. In this case, you might as well say that your product is for Windows only (like the vast majority of all the applications out there) and don’t mention that it’s in Java (so you don’t get blog-flamed about lack of cross-platform support). Of course, in this case you might as well switch to Win32, MFC, WinForms, WPF or whatever technology is pimped that year, but that is a topic for another blog entry.

This is, of course, my personal subjective opinion. I never had a Mac, and this fact alone might severely skew my judgement. But on the other hand, i never had to have a Mac as a Java developer. And this most certainly doesn’t change now with Leopard. Windows (in its various flavors) was and remains my only Java development platform (both at work and at home), with Linux and Mac delegated to what they really are at this point in time – alternative OSes with minor penetration to be installed for platform-specific bug fixes. Will this change in the future? I’m a pragmatic person, so i don’t say “no”.


Related posts:

  1. The customers don’t care about the technology It’s been about three months since Sun has announced JavaFX “family of products” at JavaOne....
  2. AquaLookAndFeel no more in Leopard? Judging by the applications coming lately from Apple (such as native controls in Safari on...


37 Responses to “Why i don’t care about Java 6 on Leopard”

  • Shai Almog Says:

    I use a Mac so I’m hardly subjective.

    I think the Mac is a rising platform that has very influential demographic among its users e.g. this photo speaks volumes about why the Mac is so influential:
    http://www.curious-creature.org/2007/05/09/javaone-swing-keynote-demo/

    Furthermore, Apple is a trend setter and when it pisses over Java people take notice. They don’t always ape Apple but they sure as hell notice.

    Personally I use virtualization to run many things since the Mac (or Linux) doesn’t have proper Java ME support anyway. However, my users don’t want to use that for the latest version of my applications and so I can’t upgrade to 6 until its easy for them to get… Sure I can neglect my Mac users but they are some of the most loyal users since they are a niche market. Unlike Linux users they are statistically more willing to pay for software.

    So not having proper support for Java on the Mac hurts both the image of Java and its viability as a legitimate solution for desktop development… If Apple keeps treating Java like this I will not buy another Mac, but I will still need to support it for my users.

  • Panos Konstantinidis Says:

    I also use a Mac but not only as my development platform. Being fed up with Windows, Linux and Solaris I decided to have a go with Mac. Now it’s a family computer. I use it for my personal work, I use it for development. My wife also uses it to watch films, listen to music, browse the web, check e-mail and so on. It’’s not just my development environment, it’s our home computer.

    I guess it’s easy if you are flexible and you have several computers at home but for someone like me having Java 6 is a one way road. I cannot change computers so I expect to get value for money. But it seems that Apple prefers to promote a stupid phone rather than Mac machines.

    Oh well, if all else fails I can still install Ubuntu on my intel Mac.

  • Alex Ruiz Says:

    Hi Kirill,

    I agree with you 100%. In fact, I use Windows XP for all Java development. I have a question though (and excuse my ignorance on the topic). Why Sun creates JDKs for Windows and Linux, and not OSX? Are there any licensing issues that prevent Sun from doing so?

    Thanks,
    -Alex

  • goddard Says:

    Well, then my question is: Why do you even bother to use java when you’re basically developing for win os only? You would get a hell lot of more power using C# on Win OS than you do with Java.
    I’m trying to test my apps on all 3 platforms (win, mac, linux), since Mac OS X is very specific from L&F point of view, and it’s crucial for your application to follow those rules to succeed there, even with advanced fucntionality.
    Linux can make the difference also, especially when you develop something that uses TCP/IP or threads extensively.
    Windows is the most supported, so it’s easy way to go. I have my Mac, WinXP and I plan to install Ubuntu instead of Solaris.

  • Kirill Grouchnikov Says:

    Alex,

    I don’t know the exact reasons, but from what i hear in the comments over the past year is that Apple told Sun that it was willing to license their JDK and port it to Mac (to have better integration for the AWT / Swing / …)

    Kirill

  • Panos Konstantinidis Says:

    Apple believes that it can do better than Sun on Mac. It’s basically that Apple doesn’t want Sun involved in their platform because they believe that Sun wouldn’t do a good job.

  • Shai Almog Says:

    Sun wrote an Apple VM in the rather distant past and did a terrible job. Comparing their VM OS integration to Apples work it seems that other than a faster release cycle this might actually be a regression.
    The Apple VM is reasonably well integrated with the OS and ships with it… its got native application wrappers built in and JWS actually works more often than not (as opposed to the many problems on Linux/Windows). Mac OS being so different in many levels I highly doubt Sun will do a reasonable job especially with their dismaying history in proper UI integration and client development.

  • Robert Says:

    I don’t care either. I can install Parallels and any OS I would want to do Java6 work if I needed to.

  • Jonathan Giles Says:

    I’m a windows user, but I am also a developer of a commercial Java 6 application. What I think is most critical is that my application can not be sold to any Apple user. Regardless of the market, shrinking the size of a market is a painful one.

  • Kirill Grouchnikov Says:

    Robert – why would i do that? Why run OS inside another OS and add complexity?

    Jonathan – it’s simple business. If you’re spending more money on supporting a platform than you get from selling the version of your product for that platform, it’s bad business.

    Goddard – without going into merits of speed, i enjoy programming in Java and having access to very low level details of the UI toolkit. This is something that is not exposed in the MS UI toolkits (WPF might be an exception). And the same thing that i said to Jonathan applies here – it’s crucial to run under all OSes only if it is a good business. If it’s not, then what’s the point? If you’re doing open source development on your free time, that’s, of course, is a different beast altogether.

  • Rayz Says:

    For someone who doesn’t do a lot with Macs, the style of your blog is most odd.

    I see your point though.

    @Shai Almog

    That’s an interesting picture, but that was kind of Kirill’s point; that handful of people on stage are not representative of the whole Java community, most of whom run Windows. James Gosling, arguably one of the most influential people in the Java space, has already dumped his Mac and is now developing on what sounds like an extremely nifty OpenSolaris setup.

  • Dave Armstrong Says:

    Downloading Ubuntu 7.10 takes about 2o minutes. Perhaps you have a slow connection, so we’ll say it takes you an hour. Of course, you can do this while watching TV, going to Lunch or what ever. Installing Ubuntu takes about 10 minutes. Installing Java takes about two minutes.

    You can use Windows if you like but your argument that it takes a day to install Linux and Java is pretty weak.

  • Kirill Grouchnikov Says:

    Dave, you might want to read the linked entry on my first experience with Ubuntu. It took me literally half a day to have it done. It might take me 10 minutes today after i know what to do, but i’m talking about the first time. Anyways, this entry is not about Ubuntu.

  • Dave Armstrong Says:

    Thank, Krill. I’m a Java developer who uses Linux and, sometimes, Windows. I’ve installed Ubuntu on a stand-alone Dell machine, which used to have Windows XP on it. My installation takes no more than 20 minutes and I didn’t find the questions from the installation exceptionally difficult, even for a lay-person (i.e. my mother).

    I realize the blog is about Java 6 on apple, but it lost some creditbility, frankly, with the claim that it would take that long to install Ubuntu and Java.

    Incidently, I did try to reinstall Windows XP on this box. It literally took me all morning before I finally got all the drivers installed.

  • Kirill Grouchnikov Says:

    Dave,

    So our experiences with Linux and Windows differ. I guess that would be because of the “sometimes” factor, where you mostly use Linux and sometimes Windows, and i use Windows and sometimes Ubuntu. And personally speaking, i would be very happy if my mother could repartition a NTFS hard drive, allocate enough space for Ubuntu and navigate through Feisty configuration screens to select that partition :)

  • Shai Almog Says:

    @Rayz:
    I understood the point, the counterpoint was that these are influential people both within the Java community and without, even in TV’s and movies Apple makes sure the good guys use Macs and bad guys use Dell/HP (seen 24 etc..).
    Its perception and in our industry perception is a very important factor, Java is perceived dead on the desktop which is very far from the truth but does it plenty of damage still.

    About Gossling’s Solaris migration… With all due respect even he admits that Solaris is not a practical solution with basic things like hibernating the laptop! Let alone things like using attached devices etc… And the guy has full 24/7 access to he best Solaris support in the world, imagine how hard it will be for one of us to get Solaris running on off the shelf laptops. I’ve been using Linux since 1995 and I love it, but its such a huge pain to get running on a laptop I just give up on it.

    @Kirill, I use virtualization for everything on my Mac. Its essential for a person who does lots of consulting/outsourcing. I need to go to a customer and install their environment/build tools which are sometimes native (when I do a VM port) in which case I can just grab a fresh VM image and work with that no damage to my general environment and no crashes… Performance is pretty good even on my laptop and backup is just copying the VM image to an external drive. I can run Linux/Windows and Mac on the same machine without a problem and install anything my customer needs including custom VPN to access his internal network. I can also let the customer see my filesystem using shares since this is only the virtual file system and I’m not afraid that one customer might accidentally see files that belong to another.

  • goddard Says:

    @kirill: take it like this – osx teaches you to design things for users, that’s important on any platform and sometimes it might be the “bad” reason why users pick your application over another (even that yours lacks features).
    don’t make me laugh – you have enough control over GUI in C# on WinOS as well as on any other platform (C/C++ on Linux, ObjectiveC on OS X). And if it’s not enough, you can start to develop windows@widgets in ASM;)
    The only point where this fails is the “WORA” – it should be WORA, but we know the odds, right? It’s just hard to get the right L&F from designers point of view across the platforms. To your main argument – it’s nice, but from those 90% of users on WinOS, maybe 50% of them actually buy apps. On the MacOS, the share is much higher. And now, it’s not only about business in general, it’s about marketing. And it is a good business – take a look at Aplle itself.

  • Barry Says:

    I understand your point of not caring much for Apple as a development environment (to each his own, I quite like it)
    But I disagree that Apple or Linux should be “avoided” when the returns are not worth it just because it makes business sense.

    In a purely functional capitalistic system you would be right, but given the fact that the OS market has been strongly monopolized by one player (not stating whether I like it or not, but the fact is that most desktops are Windows) and by continually tying ourselves to that player we will never restore a balance where quality, features and price determine the market leader.

    Java is unique in this respect because it provides “Write once, run everywhere” and allows you to provide desktop applications to other systems with relative little effort.
    Saying we should just chuck it overboard and use Win32 because it’s a better business decision is in my opinion short sighted.
    Why perpetuate a damaged market if the alternative is within grasp?
    One of the main things holding back adoption of other systems like Linux and Mac OS X is the fact that a lot of important applications will only function in Windows.

    Now my main complaint is that Apple makes itself the lowest common denominator in Java development by:
    -Lagging behind on releases
    -Only providing new Java functionality to those who upgrade to the latest and thus further compounding the lag.
    Also the fact that there is no roadmap but that Apple finds the time to court ROR developers worries me about their commitment to Java.

    FYI I just use my Mac to develop mostly server side applications and the need for 1.6 is not very pressing but still felt.
    But at least we still have a choice on what to run. (Linux, Solaris, Windows)

  • scotty Says:

    Hoho!! You’re the maintainer of an OS project for a technology with negligible market share (compared to native Windows apps or Java webapps) and heavily involved in many Java community discussions (which I really appreciate, by the way)… that’s all but pragmatic business, man! ;-)

  • Dalibor Topic Says:

    The Eclipse download numbers are similar to yours, with Linux at ~10%, and Mac ~5%.

  • Kirill Grouchnikov Says:

    Scotty – let’s keep the business and hobbies separated. I do have a few OS projects, but that is a hobby. As long as i enjoy doing it in language X, does it really matter how many people are using it? If i cared about market share, i’d switch to enterprise development (next Sprint / Hibernate / …). And as a hobby, i find Windows to be a good enough facilitator for my needs – as an application container. And the same applies to business – OS is just a conduit, and when you spend more money on conduit than you make off it, you have a hard decision to make.

    Like Barry says, you can justify investing resources in Linux / Mac support by contributing to “the greater good” (which, by the way, i prefer doing by licensing most of my OS projects under BSD).

  • David Says:

    I’ve been a (happy) Mac OS user for 1 year by now.
    Though I still haven’t understood why Apple is lagging behind to release a fully-supported Java 6 distribution, I was pretty happy with the b66 that I was using for development of our Java6 application. Though this certainly wasn’t perfect, it did fit my needs and I didn’t have any problems with it. I was actually developing for Java6 on my Mac; this made me happy.

    I upgraded to Leopard this weekend, and was pretty shocked to see that Apple removed the JDK 1.6_b66 download from their support website. I just couldn’t find it, and I found out reading other posts that I’m not the only one in that situation.

    Now *that* is annoying. Since our application is using Java6-specific features, I must develop using the Java6 JDK. Now I must either boot directly in Windows or use it over VMWare to be able to actually *work*.

    This was a nice slap in the face from Apple. Though I’m not completely stuck, I am sure pissed off. Still a happy user of Mac OS, but with an annoying bitter taste…

  • Carl Antaki Says:

    Another reason to stick with Windows XP and not to try Leopard. I’ve tried Open Solaris and Ubuntu and found that Java 6 and Eclipse run best on Windows. Also all software is available for Windows and one can do video editing / play games on one single machine without any VMWare or emulation software.

  • Will Says:

    I want to use the Mac as a dev platform for java because I want to use a Mac for all my work.

    I often quip how I love programming but hate computers. But it’s a basic truth.

    I hate computers.

    I hate the complexity of computers.

    I hate hunting junk down on the web and assembling kits.

    I like NetBeans, one stop shopping, painless install. I like Glassfish, for the same reasons.

    And I like my Mac because for the bulk of it, everything they say is true — it just works. My Mac and my wifes iBook are never turned off. They’re just left alone to go to sleep or are put away. I only reboot for updates. I never log out. Every now and then, Safari goes stupid on me and I restart it. Other than that, a wave of the mouse or a tap on the keyboard and my aging horrible 17″ CRT glimmers to life (sure I’d like a nice display, but I think I’d rather have another 2G of RAM).

    And it has its quirks (NetBeans clipboard issue being my biggest pain point).

    But the damn thing works. I have more problems with my ISP than my Mac.

    All my code runs on Solaris boxes, or Linux boxes. Remotely deployed in some nameless datacenter.

    It’s bad enough to have to fight the various frameworks and what not just to get a piece of code running in Java today, so I want my computing experience to be as painless as possible. And Apple makes the Mac as painless as possible. Nothing else comes close.

    I can give a rip about marketshare, I’m focused on a market of one — Me.

    But that’s why I want Java 6 on the Mac — not to run it there, to but build it there.

    PS I love the Aqua themed buttons here ;-)

  • David Says:

    *** Edited for inappropriate content ***

  • David Says:

    OK Sorry for that Kirill didn’t know the consequences. ;)

  • Kirill Grouchnikov Says:

    David,

    I just don’t want to get in trouble with Apple lawyers.

    Thanks
    Kirill

  • scotty Says:

    Kirill, i agree, let’s keep business and hobbies apart. For me as a sever-side professional, the cards are stacked against Windows, and Linux is a viable choice, while Mac isn’t. There are many reasons, including licensing costs (forget the 150 bucks for a single OEM-Vista). On the other side, i’m a desktop hobbyist, and in this area, i truly believe that Mac is surpassing both Linux and Windows. Sorry if i am too curious: Which advantages does Windows have for you in business terms, besides being a good enough application-container for you hobby OS projects?

  • Dave Armstrong Says:

    Krill, Good points. You might want to look at 7.10 for the latest. You can take the defaults to partitition the drive, which means the entire installation will work if you just press next or ok. It’s really simple.

    What’s even better for someone lilke my Mom (if she knew I was using her name ….) is that printers, for example, are even simpler to install: just plug it in and turn it on. After about 5-10 seconds you see a bubble saying that your printers (in my case Brother HL-5050 and Canon PIXMA MP780) were both automatically recognized, configured and installed. This included the scanner and fax on the MP780.

    We have a local Windows guy who is responsible for installing local printers (I work remotely). It _always_ (no exageration) takes him longer to set up printers for the Windows boxes than I need for the same printer under Linux. This is especially true for networked printers.

    What’s better under Windows is that the driver support is more complete. For one printer, in particular, they only had a Windows utility to set the IP address if you were not using DHCP.

    D.

  • Harri Says:

    Is there a Linux distribution that has Sun Java 6 installed by default? So far I have only seen some non-Sun GPL Java 4 or something. Installing the latest Sun Java has always been a pain on Linux.

  • Jim Says:

    Will nailed it on the head. I don’t want to be bouncing back-and-forth between “OS X” and Windows just so I can develop in Java. Apple is forcing me back to Windows, and guess what? If I’m forced to run Windows, why would I choose to do it on a very expensive Macbook Pro? Jobs is replaying his Apple failures of the mid ’80s, but this time it’s by keeping a closed fist around the software instead of just the hardware.

    When you screw the high-end guys, you eventually screw your marketplace. All my less technically oriented friends tend to look to me to see what they should be buying. Lately, that’s been Macintosh — however, it looks like that’s about to change.

  • Rayz Says:

    @Shai Almog

    You are mixing two distinct markets. Having Apple being used by the good guys on TV only influences consumers, not developers. The argument here is not about running Java apps on MacOSX (pointless since Java has not taken off on the desktop), but providing tools to developers.

    Take your point about Solaris though; it might not be a suitable platform for most people just yet, but at some point in the past, the same applied to Linux. And contrary to what you read on the internet, most folk will just go back to using Windows if they feel they have to.

  • Trent Black Says:

    While you are debating logic based on a pure money decision, there is more to the world then money. Don’t you stand for anything but the what you get in your wallet?

    Microsoft is a nasty company. So, if Java goes on Apple, maybe that is a way to help some get away from nasty. But, I can see, you don’t care about anything but your bottom line. *** Rest of post removed due to inappropriate content ***.

  • Shai Almog Says:

    @Rays

    Developers are also consumers, this is something many development tool shops (such as Sun) fail to realize. If we only judged OS’s by the merits of their kernels and not by the swoosh of their GL effects ;-)

    Furthermore, perception of the general consumer population effects development decisions in the long run… E.g. manager or customer perceiving Java as “not worth building in”…

    Java on the desktop might not be the type of success we were looking for but its working and I have the many deployed projects to prove it. In the enterprise world desktop Java is remarkably successful, on the end user client less so but there are quite a few applications written in Java. Maybe not Firefox or something of that visibility to non-developers but there are plenty of Java applications mostly in Swing. According to many surveys there are many desktop Java developers they are all well employed.

    See you are a developer and you are affected by perception.

    People won’t move from Mac to Windows since the whole point of buying a “Mac” is to run its OS. If I can’t port my application written in Java to the Mac (since it requires Java 6) people will just use a Mac based product. If a product sucks the way Azureus sucks on the Mac then people just won’t use it and would use an inferior Mac product.

    I dumped Azureus after a while on the Mac because it sucks on the Mac (works OK on Windows though), I’m using something far inferior thats native to the Mac. Even though I have an excellent Parallels VM with Windows I don’t intend to run my torrent downloads in a VM… I just use a different tool.

    The same would apply to my products.

    Furthermore, on Windows my development team can upgrade to Java 6 right now. Even XP users can download and install Java 6. On the Mac the moment our development teams move to Java 6 (assuming Apple will release it) we will have to set Leopard as a minimum requirement. Which means I have to demand my users pay $129 and take the plunge of running an upgrade.

    @Trent
    I don’t like Microsoft… But I don’t consider them evil. Apple though, is far from being good and in many ways is as bad as Microsoft.
    The really terrible thing about Apple is the fact that they and their cult often perceive them as good regardless of what they do and accept their bad decisions as valid business practices: DRM closed even for commercial licenses, closed and locked down platforms, secretive plans and no developer disclosure, forcing everyone to upgrade for a high price etc…
    I admire Steve Jobs a great deal, I love many things about Apple and its culture but they are not “the good guys” just as MS isn’t “the evil empire”.

    Money or even open source have nothing to do with this.

  • Maxim Says:

    I do not use Mac and I do not use Linux because of some internal reasons. But anyway I do care about Java 6 on Leopard because I’m Java developer. Making
    execution on multiple platforms is almost unique strength of Java and if we
    won’t have Java 6 on Leopard it is a small kick to Java platform in general.
    This will mean that less applications are produced with Java, less investment is done in Java technology etc.

    Kirill don’t you still care about it?

  • evanx Says:

    An article on DesktopLinux.com presents some numbers for Linux desktop trends. One of best arguments for Java over other languages is its crossplatformness. This means we need it to be well supported on MacOS and certainly on Linux, in addition to Windows, which i use very happily on my laptop. But if i had a PC, i would install Ubuntu on that for sure. Incidently i’m using my mom’s home PC with Ubuntu this minute. She’s a granny and uses Linux at home and work, so yes, Linux is great for your grannies ;)

    I think Apple will step up efforts with OpenJDK, because alienating millions of Java developers would be very silly.

  • Antonio Says:

    Kirill, you say: “OS is just a conduit…”.
    Well, the problem is that an OS can very easily become a mortal trap if it is the only one your application can run on. If your product runs only on one OS the developer of that OS will get your business if your application has really a good market.
    We have seen this with word processors and other “office” applications. We have seen this with web browsers and a lot of other applications. Was not for various Unix and other OSes the whole Internet and it’s protocols and standards would not exist today, we would just have Microsoft Network.
    For example let’s remember that the only office suite that has survived is derived from the unique Microsoft “would be” competitor that wrote it’s applications for a lot of OSes (now OpenOffice). All the others just went bankrupt.
    Now I agree with you that single developers have to focus on their business and would not do a good job trying to address their applications to exotic and little adopted OSes, but this is exactly why we need to use tools and languages that already guarantee us that our applications will run on as many OSes as it is possible. We applications developers must focus on the application, the developers of the tools and languages must focus on the compatibility with other plataforms. This is why we need Java on Macs and we need Java on as many plataforms as it is possible. And this is a business matter, not hobby.