Wednesday, May 20, 2009

Does Apple hate Java?

Apple seems to have a thing about Java. On the one hand they make a play as big supporters but on the other they have been doing a -- let's face it -- lousy job of maintaining even a baseline level of actual support for it. At some point doesn't this reach beyond technical mishaps and enter the area of willful neglect?

  • I've already mentioned that Apple 2D graphics are badly broken out of the box.

  • And OS X is now the only major OS that can't run Eclipse under 1.6 out of the box. This used to be due to Eclipse's reliance on the Carbon UI, but now that the Eclipse Cocoa team has a very nice SWT build that excuse has gone away. I'd really like to use the 1.6 64-bit vm for development, but it is difficult to impossible to get it running consistently because of the infamous compiler bug.

  • And now, Ars has word that a critical security bug still hasn't been patched. Security experts recommend that we don't use Java in web-browsers at all.


We're stuck with 1.6.0.7 when everyone else is at 1.6.0.13! What gives, Apple? Is this a lack of resources, weaknesses in the Apple development team or some kind of nefarious scheme to make everyone abandon Java in favor of Objective C? OK, the last is silly and paranoid, but it does make you wonder...

Update: I should mention that there is a pretty simple way to get Eclipse Cocoa running under Java 1.6 but it's given mixed results. Here's how:
  1. Right-click on Eclipse app and choose show package contents.
  2. Open Contents/MacOS/eclipse.ini
  3. Add the following line at the top:
    -vm /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin
  4. And these lines at the bottom:
    -XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/DataTreeNode,forwardDeltaWith
    -XX:CompileCommand=exclude,org/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding,<init>
    -XX:CompileCommand=exclude,org/eclipse/jdt/internal/compiler/lookup/ParameterizedMethodBinding,<init>

14 comments:

  1. And you're stuck at 1.5 if you foolishly bought a 32-bit x86 machine.

    Mind you, they do only have $30B to spend.

    ReplyDelete
  2. I'm running the latest developer build of Java 1.6u13 from the ADC on my Mac Pro, with Eclipse Galileo Cocoa, and it works fine. Maybe I just haven't exercised it properly, but I haven't had any issues with it. Well, the one issue is that FlexBuilder doesn't work with Galileo and/or 64-bit, but that's a different issue.

    ReplyDelete
  3. maybe.. but somehow java developers love Macs

    ReplyDelete
  4. http://eclipse.dzone.com/articles/calling-all-maceclipse
    no 64 Bit? no 1.6? ho :O

    ReplyDelete
  5. They appear to hate it, they don't want to spend time upgrading it, but then they don't want to release control of it to sun (oracle/sun) so that it stays up to date... Enjoy your dictatorship ;)

    ReplyDelete
  6. Yes folks I'm well aware that Galileo does work under 64-bit. It does not work OOTB with JVM 1.6. You might check and see what version of Java your version of Eclipse is actually using; it defaults to 1.5 because of the issues mentioned above. So if you spend a little more time reading the dzone article you'll find out why.

    ReplyDelete
  7. Two words: Web Objects. You know, the little Java web framework that runs this little site called the iTunes Store--the one you get your iPhone apps, your iPod songs, your AppleTV movies from...

    ReplyDelete
  8. "maybe.. but somehow java developers love Macs"Perhaps someone should write a book -- "Smart Developers, Foolish Choices".. Seriously, I love Macs too -- have been using them since 1984. That -- and that fact that so many Apple technologies are dependent on Java -- makes me all the more confused by Apple's neglect.

    ReplyDelete
  9. It is even worse for JavaME development on a Mac, I have been forced to have dual boot on my Mac: http://ovenordstrom.blogspot.com/2009/05/dual-boot-macos-x-and-windows-7rc1-on.html

    ReplyDelete
  10. I bought a Mac a few years back thinking I'd start doing my Java development on the Mac. But this year when purchasing a new dev notebook that would run a 64-bit OS and 4 GB or RAM (and capable of expanding to at least 8 GB), I opted to go with a Sony Vaio running 64-bit Vista.

    Once I got Vista configured and trimmed up, it has been a good experience from a Java development point of view. At any time I can update my JRE or JDK to track the very latest releases. I can run 32-bit or 64-bit mode. Eclipse, Netbeans, etc., etc. Plus I'm learning to use PowerShell - which is a way more modern and poweful scripting shell than the Unix-flavored bash shells.

    Oh, the MacBook Pro I priced out was coming in around $2900. The Sony Vaio with similar specs (plus a blue ray drive and 811n, bluetooth, webcam, etc) came in at less than $1600. As a developer computer, I wasn't needing the iLife suite (I have my old Mac for that). So just put Microsoft Office and by development software on it. Would have put MS Office on the MacBook too, so that would have been the same expense.

    As a mostly Java and Adobe Flex/AIR developer, this has been a much better platform choice than all the headaches of a MacBook Pro.

    ReplyDelete
  11. You know, my orginal MacBook Pro just died. Lots of things wrong with it -- its been a great machine but 3 years of abuse has taken its toll and I'm not sure that its worth it to repair it now. And I really am not wanting to spend 2k+ on a new laptop right now. I just bought a sweet Mac Pro and that's perfect for me but I need a fast machine for on the road demos. So I thought; hey keep an open mind take a look at some Windows machines. I came away pretty underwhelmed. They all seem cheap but once you really get them up to spec there didn't seem to a big difference in price -- absent a good tiger direct deal. And I've just dealt with too much PC crap to trust most of the major brands. I recommended a Lenova to a friend and it turned out to be total crap. But still, I could spend a little over 1k and get a pretty decent machine. And I've just installed Windows 7 on my Mac Pro for testing and it doesn't suck horribly. (I couldn't stand Vista.) But you know the umber one thing that stood out for me? This is going to sound silly, but I'd have a really hard time giving up Keynote.

    ReplyDelete
  12. Hi,

    We have just added your latest post "meta beta: Does Apple hate Java?" to our Directory of Bluetooth . You can check the inclusion of the post here . We are delighted to invite you to submit all your future posts to the directory and get a huge base of visitors to your website.


    Warm Regards

    Blutooth.info Team

    http://www.blutooth.info

    ReplyDelete
  13. >>OS X is now the only major OS
    >>that can't run Eclipse under 1.6 out of the box

    Why are we blaming Apple for this? Look, write-once/run-anywhere is a great goal. But it is not Apple's goal. I know a lot of developers have invested heavily in java and don't want to see it fail. But from and end-user perspective, there is nothing, I repeat NOTHING written in java that I need.

    Even when I ask the most devout java enthusiast what java applications they use, the answer is almost always 'eclipse'. But its rather circular reasoning to justify a language, to support a tool, to support a language.

    ReplyDelete
  14. Here's a fun experiment! Open up Appplications:Terminal and type:

    mv /System/Library/Frameworks/JavaVM.framework /System/Library/Frameworks/JavaVM.framework.backup

    That'll be a good way of seeing what applications might be using Java on your machine. I'm not responsible for the results but here's a hint; you might discover that OS X itself had Java dependencies.

    I'm also going to assume that you've never bought anything on the web and never used google... OK I'll stop being a smart-ass now. ;)

    As a consumer you probably wouldn't even know wether or not your application was dependent on Java. On the application front, most serious science and engineering applications use Java. In fact it could be said that it was the widespread adoption of web-enabled business applications -- all due to Java -- that allowed Apple to survive the pre-boot camp days. Otherwise people would still be locked into Microsoft client software.

    But no, if you're just Joe Consumer then you're not really the target audience for this post. Java isn't going to fail but if Apple doesn't offer more support it's going to lose developers who have to worry about developing for any other targets but the Mac. (That's most of us.)

    ReplyDelete

Popular Posts

Recent Tweets

    follow me on Twitter