“The Mac lets you code anywhere, anytime.”: Ahh, the irony

I just got an email from Appie with the following text

ANY PLATFORM, ANY LANGUAGE, ANYWHERE

Why are the hottest new applications being developed on the Mac? Because the Intel-based Mac lets you easily develop for virtually any platform, language, and programming environment. And now, you can test and run applications on UNIX, Linux, and even Windows, using just your Mac*. Plus, with powerful Intel processors, MacBook and MacBook Pro let you code anywhere, anytime. Learn why developers choose the Mac to create cutting-edge applications.

Sure, if you don’t need to use Jave 6 / JDK 1.6, released almost 6 months ago now, with Apple support nowhere in sight. It looked like it would be out with Leopard, but now that Leopard has been delayed to October, who knows?

Spring 2.1 now needs JDK 1.6 to _build_ (it runs very well in JDK 1.4+), so trying to build Spring CVS HEAD for those of us using Macs is now a major pain. Fellow Spring Framework developer Thomas Risberg has figured out a sort of workaround, basically taking the JDK 1.6 Mac preview from last Sept. and patching some problem classes with equivalents from the final JDK 1.6 for Linux/Windows, but this is painful and a stopgap solution at best.

So I guess the message from Apple really is, “ANY PLATFORM, ANY LANGUAGE, ANYWHERE, once we ship the iPhone and can get back to business on other stuff…”

 

11 responses


  1. Ooo, what is the workaround?

  2. kilgore says:


    Haven’t you heard? Steve says no one uses Java anymore. Get with the program!


  3. Brian,

    You need to copy the javax.sql.CommonDataSource and javax.sql.DataSource from the final released version of the JDK - there were some changes made after the Apple beta was released. I just extracted those from the rt.jar on my Ubuntu installation and added the to the classes.jar in the Java 6 installation directory on OS X. I recently moved java.sql.DatabaseMetaData over as well since I’m using some of the new metadata methods in there.

  4. Colin Sampaleanu (blog author) says:


    You need to work off the ADC preview of JDK 6:

    https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/

    Then, to quote Thomas:

    “”
    Your comment made me think though. I installed the Java SE 6.0 Release 1 (based on JDK 1.6.0_b88) downloaded from the ADC website. Then I replaced the javax.sql.DataSource and javax.sql.CommonDataSource in classes.jar with the corresponding classes from Java 6 rt.jar on Ubuntu. After this hack I can compile and run most of the tests. The only tests that fail currently are the JasperReports tests - get a stackoverflow in some awt class. Wouldn’t rely on this for production release :) , but for some quick changes it could be handy.
    “”

    This gets around the fact that some some “createQueryObject” methods on the javax.sql.DataSource interface that were removed.

    YMMV, as they say, but maybe better than nothing.

    You can also run Linux or Windows in Parallels of course, but that’s not exactly optimal either…

  5. Colin Sampaleanu (blog author) says:


    >> Haven’t you heard? Steve says no one uses Java anymore. Get with the program!

    Hey, even the Fake Steve jobs agrees:
    http://fakesteve.blogspot.com/2006/11/its-official-java-now-worth-nothing.html


  6. Sorry, but I think it’s silly to make your build dependent on Java 6. Do you really really need it? Why make things so hard for yourself?

    I don’t understand why Apple keeps getting flak over this issue. Java is not core to their strategy, so why should they devote their precious resources to chasing the latest Java version? Maybe Sun should do it… after all, nobody expects Microsoft to offer Java 6 for Windows. Alternatively, if enough Java developers (like you) believe it’s important, then why not work on porting OpenJDK yourselves?

  7. Rob Harrop says:


    Neil,

    The build is 1.6 dependent simply because our users want 1.6 features to be supported in Spring.

    Rob

  8. Colin Sampaleanu (blog author) says:


    Neil >> I don’t understand why Apple keeps getting flak over this issue. Java is not core to their strategy, so why should they devote their precious resources to chasing the latest Java version?

    Neil, the whole point of this blog entry was Apple sent me an email talking about using the Mac to “develop for virtually any platform, language, and programming environment.” So ultimately, when it looks like it might be as long as 10-12 months after Java 6 ships (regardless of who’s job it is to port it), before it’s available on the Mac, that statement is complete BS… Now the next statement in that email (above) is also obviously also talking about using Parallels or VMWare to test and run stuff for other platforms, but I don’t think anybody would consider it acceptable that to actually write Java code you’d have to install Windows or Linux on your Mac.

    Colin


  9. I agree with Colin that the issue is not that Apple is slow in porting Java. Clearly, Java 6 is not the most pressing issue for its core market.

    The issue is that Apple talks the talk and doesn’t walk the walk. The page http://www.apple.com/macosx/features/java/ states “Apple has optimized Java on Mac OS X to look great and perform superbly, making Mac OS X the ultimate platform for developing and deploying cross-platform Java applications.”

    It just ain’t so. Maybe an OpenJDK port is the answer.

    Cay

  10. Robert says:


    I wish Apple would just have worked with Sun to have a “standard” Java on OSX. It would make everyone much happier.

  11. Jerry Darcy says:


    It is absolutely absurd that Apple is messing us around on the JDK issue. At least this is not happening on the other side ie Windows and Linux.

    We as developer have to do something about it. We need suggestions and we need to move fast. We cannot keep quite and let Apple just one day decide that the JDK is now ready for delivery. There has to be a proper deliverable milestone program.

Leave a Reply