Slashdot Mirror


Apple Freezes Java Support for Cocoa

Nice2Cats writes "A little message on Apple's Developer Connection tells us that Cocoa for Java will get no new features after 10.4. The full text is: 'Features added to Cocoa in Mac OS X versions later than 10.4 will not be added to the Cocoa-Java programming interface. Therefore, you should develop Cocoa applications using Objective-C to take advantage of existing and upcoming Cocoa features.' Is this bad for Java, or bad for Apple, or bad for both, or doesn't anybody give a damn anyway?"

154 comments

  1. Toolkits by yasth · · Score: 3, Interesting

    While it may not seem like such a big deal it complicates crossplatform toolkits, and the like. Of course the whole idea of having a "blessed" programming language seems rather old fashioned, and academic.

    --
    I'd do something interesting, but my server can't handle a slashdotting.
    1. Re:Toolkits by HTH+NE1 · · Score: 1

      Apple registers "Numbers".
      Cocoa Java frozen.

      I have to wonder how will this affect the OpenOffice.Org port NeoOffice/J.

      --
      Oh, say does that Star-Spangled Banner entwine / The myrtle of Venus with Bacchus's vine?
    2. Re:Toolkits by Anonymous Coward · · Score: 0

      It won't. The little bit of java they use is pure java, not Cocoa-Java.

    3. Re:Toolkits by Frumious+Wombat · · Score: 1, Interesting

      Actually, this seems to be halfway to the Right Thing; you get rid of a non-portable extension to Java (good), but encourage people to use a minor (though clean) language for native-mode programming (iffy).

      I've always wondered why that piece of NeXT heritage stuck around, as I'd be willing to wager a doughnut (pick your favorite pusher) that there are more Ada-programmers around than Objective-C gurus. (translation: take a deep breath, wave goodbye, and move to C++ or whatever the modern alternative compiled language would be, or at least make sure the library interfaces are correct for both languages).

      Actually, I'd be just as happy, since they have the entire GNU compiler collection, is to simply define a uniform calling convention for their libraries from all languages, and stop worrying abou the One True Language. DEC did it back in the 80s with the Common Language Interface, which allowed me to call the same function (with pretty much the same syntax) from Fortran, C, or Pascal. I presume today that would mean using SWIG to generate a common set of wrappers, and remembering that there are Fortran, Ada, and C++ programmers out there somewhere when generating them.

      Maybe my memory is fuzzy, but it seemed simpler to call those functions than on Unix systems where I always have to worry about the library interface on a language by language basis (one underscore or two; case-sensitive or not, etc.) I would like that level of transparency back.

      --
      the more accurate the calculations became, the more the concepts tended to vanish into thin air. R. S. Mulliken
    4. Re:Toolkits by jericho4.0 · · Score: 2, Informative
      Objective-C is not some crufty old piece of legacy code that the old coots can't let go of. It's a stupidly simple, elegant extension to C. And there's a lot of good things in C, even with its "shoot yourself in the foot" power. C++ is far more complicated.

      If you know C, a very small language, and are comfortable with objects, then you are an afternoon away from knowing Obj-C. The runtime delivers amazing flexibility, the reason why all the apps on OS X are so feature rich. The GNUStep implementation needs more, but is very powerful as is. It's a fabulous choice for a large system, where the "system" part is very important.

      Again, the C to Obj-C transition is so easy that everyone who knows C should add it to their toolbox.

      As I understand it, work on GNUStep themeing is coming along. I haven't checked it out in a while. The visuals really need freshening up.

      --
      "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
    5. Re:Toolkits by harlows_monkeys · · Score: 1
      Actually, this seems to be halfway to the Right Thing; you get rid of a non-portable extension to Java (good)

      What's good about getting rid of non-portable extensions? Some people lke Java as a general-purpose programming language, and want to use it, even when they are doing non-portable things.

    6. Re:Toolkits by the_greywolf · · Score: 1
      Again, the C to Obj-C transition is so easy that everyone who knows C should add it to their toolbox.

      i know and use C as well as C++, and i'm quite comfortable in C++ (though Java is still completely foreign to me). i've been wanting and begging to learn Obj-C and C# to broaden my skillset, but non-.NET-specific resources on C# are disappointingly thin and i've been unable to find any books, turorials, or references on Obj-C anywhere. i've spent hours per day looking and have turned up very little. certainly nothing useful to me.

      please, PLEASE point me to Obj-C resources so i can get learning!

      --
      grey wolf
      LET FORTRAN DIE!
    7. Re:Toolkits by jericho4.0 · · Score: 2, Informative
      gnustep links

      The Apple stuff is well done, and much applies to GNUStep. The Apple community is the most active, of course.

      --
      "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
    8. Re:Toolkits by the_greywolf · · Score: 1

      many thanks.

      --
      grey wolf
      LET FORTRAN DIE!
    9. Re:Toolkits by tyrione · · Score: 1

      Go to Amazon and type Cocoa Programming.

      http://www.bignerdranch.com/products/

  2. What does this mean for WebObjects? by Millennium · · Score: 5, Interesting

    WebObjects 4.5 had support for both Objective-C and Java, if my memory's right. In WebObjects 5.0, support for Objective-C was dropped, because this was during the time when Apple Wanted You To Use Java.

    Now, of course, it seems as though Apple Doesn't Want You To Use Java Anymore. Does this mean that WO6 will drop Java support, or at least bring back Objective-C?

    1. Re:What does this mean for WebObjects? by zsmooth · · Score: 1, Redundant

      Let's hope so.

    2. Re:What does this mean for WebObjects? by mr_rattles · · Score: 2, Insightful

      I don't think this means anything for WebObjects. The announcement was very specific to the Cocoa-Java interface post-10.4 and nothing else.

      This doesn't mean Apple doesn't want you using Java, it means they don't want people using Java for Cocoa applications after 10.4.

    3. Re:What does this mean for WebObjects? by Bin_jammin · · Score: 1

      No, WO6 will contain support for neither Objective-C or Java, but will instead be powered by pure wishful thinking.

    4. Re:What does this mean for WebObjects? by Feral+Bueller · · Score: 4, Insightful
      "Now, of course, it seems as though Apple Doesn't Want You To Use Java Anymore. Does this mean that WO6 will drop Java support, or at least bring back Objective-C?"

      Not. Really. It indicates that Apple wants you to use Java for Web services and Objective-C for applications. As previous poster already mentioned they are merely killing support for the Cocoa-Java API so I don't see there being much of an issue: I worked on a number of custom OS X apps at my last gig: this announcement would not have influenced any of our projects then and certainly wouldn't impact anything moving forward.

      I'd be interested in hearing from an actual developer who *is* impacted by this.

      --
      - learn to swim.
    5. Re:What does this mean for WebObjects? by Yaztromo · · Score: 3, Informative
      I'd be interested in hearing from an actual developer who *is* impacted by this.

      Hello! I'm here!

      I'm doing some development using Cocoa-Java, and this could impact me, although as the information is extremely brief, I haven't figured out yet how or how much it will affect my work.

      I'm in the situation where I already have a very large Java library which was written on other platforms (which has taken ~8 man-years of development effort, and has been heavily debugged and tested int hat time), but works flawlessly on OS X. The Swing application built atop it works on OS X, but many portions of its basic design don't work too well on OS X in terms of UI integration (it works, but it really looks like it was designed for another platform).

      As such, to better support the Mac community, I decided one evening to create a Cocoa version using Cocoa-Java. It took me only about 2 hours of effort, and I had a native Mac version of my application that looks and acts like an OS X application, supporting all of the standard OS X controls and menu items.

      Yes, Apple says I should just use Objective-C, but honestly I have years and years worth of work that has been put into the Java library and engine code. It's completely multi-platform, and is used on multiple platforms. Rewriting it in Objective-C isn't feasible from either a time standpoint, or from a platform availability standpoint (even if I did have years to rewrite and retest all this code in Objective-C, it would then only compile and run on OS X, and perhaps Linux if I was very careful). So it's not going to happen.

      As such, I'm quite possibly impacted by this decision. However, the wording of the "annoucement" leaves much to be desired. Presumably based on their wording, they aren't dropping Cocoa-Java completely -- only that new Cocoa features won't be bridged. The GUI needs for my application are well served by the existing Cocoa-Java bindings, so if Cocoa-Java continues to be installed as a part of OS X, at least my application won't be unusuable before it is released to the public.

      I am a bit surprised in some ways, however. With the announcement a few weeks ago of the move to Intel-based processors, I thought they might actually work to improve Cocoa-Java, due to its immediate cross-platform benefits (although Xcode 2.1 won't generate Universal Binaries for Cocoa-Java projects).

      I'm holding out hope that OS X 10.5 and 10.6 don't drop the existing level of Cocoa-Java support. To be honest, I don't expect every feature of Cocoa to be made available to Java (as it doesn't always make sense to do so), so not putting anything new in, while disappointing, doesn't bother me a whole lot. It's the concern that at some point in the next few years Cocoa-Java could be dropped altogether that worries me.

      Yaz.

    6. Re:What does this mean for WebObjects? by larkost · · Score: 2, Informative

      I think that you are fairly safe. Apple has mearly announced that they are not going to produce new bindings for anything after 10.4. They have not marked them depreciated in 10.4 (even then the old bindings would still work), so you have at least through 10.5, and quite likely through 10.6 until your apps are no longer supported. You might even make it to 10.7...

    7. Re:What does this mean for WebObjects? by putaro · · Score: 2, Informative

      I'd be interested in hearing from an actual developer who *is* impacted by this.

      I am. We ship a commercial app for OS X which is Java/Cocoa. We wanted to have a good, native look and feel so we isolated the UI specific portions using a Model-View-Controller setup and have it running ontop of Cocoa and Swing. Swing does not provide a good enough Mac experience for a commercial app and SWT is not quite right either (the menu bar tends to go wonky, there's no support for sheets...)

    8. Re:What does this mean for WebObjects? by Anonymous Coward · · Score: 0

      NeoOffice/J is the only project I can think of that uses Cocoa-Java. Audacity uses Carbon, and they don't fully support long file names because of it. I think Apple's encouraging people to go with Cocoa o Xcode as much as possible because that's the easiest way to transition to Intel Macs. In a way they're not dropping support for Cocoa-Java, but dropping development for Cocoa-Java.

    9. Re:What does this mean for WebObjects? by am+2k · · Score: 1
      It's completely multi-platform, and is used on multiple platforms. Rewriting it in Objective-C isn't feasible from either a time standpoint, or from a platform availability standpoint (even if I did have years to rewrite and retest all this code in Objective-C, it would then only compile and run on OS X, and perhaps Linux if I was very careful). So it's not going to happen.

      Ok, then write the controller part of the app using Objective C, and keep the model in Java. Problem solved. If you need some help on that, take a look at my article.

    10. Re:What does this mean for WebObjects? by Anonymous Coward · · Score: 0

      Apple's message is clear, so just remember this:
      Obj-C on the client.
      Java on the server.

    11. Re:What does this mean for WebObjects? by chochos · · Score: 1

      My guess is the Java/ObjC bridge will continue to be supported, it's just that new Cocoa-Java apps won't have bindings to any new appkit classes. The bridge is still needed for Cocoa/EOF apps, since all of EOF is now written only in Java. And Cocoa/EOF is so much better than Java Client apps, even with the overhead from the bridge. They don't need a WO server and the interface and logic can all be written in ObjC, you just call the EOF stuff from ObjC.

    12. Re:What does this mean for WebObjects? by ErikInterlude · · Score: 1

      What if you wrote a bridge in C connecting the Obj-C runtime to Java's JNI interface? I believe there's some information on the Obj-C runtime (apple's implementation, the gnu imp differs) at Apple's Developer Site. Do a search for the Objective-C Runtime Reference.

      I know the Java JNI interface has a much larger set of functions and types to deal with, so that could impact the feasibility of the idea, but Apple's runtime seems fairly simple.

      --

      --Erik
    13. Re:What does this mean for WebObjects? by jcr · · Score: 2, Insightful

      Umm.. Obj-C support in WebObjects was dropped, because Apple didn't want to spend the money to keep Obj-C and PDO alive on a bunch of non-Apple systems.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    14. Re:What does this mean for WebObjects? by jcr · · Score: 1

      This doesn't mean Apple doesn't want you using Java, it means they don't want people using Java for Cocoa applications after 10.4.

      Not even that.. What it means is that so few people use Java for Cocoa apps, that they're not going to add to the Cocoa Java API from here on out. You're still free to use Java if you must, and my poor, overworked former colleagues in Apple DTS will still support it, but when the next NSWhizBangCoolNewFeature comes along, you'll have to use Obj-C to get at it.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    15. Re:What does this mean for WebObjects? by Feral+Bueller · · Score: 1
      In a way they're not dropping support for Cocoa-Java, but dropping development for Cocoa-Java.

      That's what the announcement looked like to me as well. I just wanted clarification.

      Thanks for all the responses.

      --
      - learn to swim.
    16. Re:What does this mean for WebObjects? by Anonymous Coward · · Score: 0

      I too am impacted. I use a common java code library for both my web server (webobjects) application and my stand-alone cocoa application. This SUCKS for me and will probably spell the end of my stand alone application.

  3. This only affects one app that I use... by Teancom · · Score: 4, Interesting

    Cyberduck. It's the only cocoa-java app that I use, or even know about (not saying there aren't more, just that I don't know about them). Following the cocoa mailing lists, questions about the java bindings are few and far between, which probably lead them to this point. Why dump so much time and effort into a language that your developers aren't using? Either redirect the manpower somewhere else entirely, or into a language like python, which gives your users a meaningful choice - between objc (lowlevel) and python (scripting). And applescript, I guess :-)

    1. Re:This only affects one app that I use... by 2starr · · Score: 1

      You'll find more discussion on the Java-dev mailing list... but not much. I think part of the problem is that the mentality behind Java is usually for cross-platform development. If I wanted to tie it to the OS, I'd be using Obj-C.

      --

      "Let your heart soar as high as it will. Refuse to be average." - A. W. Tozer

    2. Re:This only affects one app that I use... by Jeff+DeMaagd · · Score: 2, Informative

      The thing is that the Coaco+Java stuff is what already works for Macintel computers, without porting, and it doesn't need a Universal Binary.

    3. Re:This only affects one app that I use... by WJMoore · · Score: 1

      Wow I've been using Cyberduck for ages and never knew it was a Java app. Sure enough a quick check of the CVS repository reveals that this is indeed the case. It shows how well the Cocoa-Java implementation is. However it does explain which Cyberduck can be a little unresponsive at times.

  4. Probably not a big deal by jtshaw · · Score: 4, Informative

    All this seams to say is that any new wizzbang features of Cocoa won't be directly accessable with Java... There are already features of the Windows and Linux UI's that Java doesn't use...

    Fact is, Java apps will still work. Still look like MacOSX apps (at least as much as they do today). I don't see how this is much news really.

    If they did have an interface to use these features, it would break cross platform compatibility anyway as they are bound to be Mac specific UI elements.

    1. Re:Probably not a big deal by Anonymous Coward · · Score: 0

      If they did have an interface to use these features, it would break cross platform compatibility anyway as they are bound to be Mac specific UI elements.

      Uh, Cocoa-Java is not cross-platform to begin with--Cocoa is available only on OS X.

    2. Re:Probably not a big deal by jcr · · Score: 1

      I don't see how this is much news really.

      The news is, the Cocoa frameworks team gets to spend the time on more productive pursuits.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
  5. To clarify... by Otter · · Score: 4, Informative
    After reading the comments at MacSlash, I figured it's worth clarifying here -- this has nothing to do with cross-platform Java applications (i.e. what "Java support" normally means). What's being pulled is the ability to write to the native Cocoa API in the Java language.

    Good idea? As far as large software makers go, it probably doesn't matter. Adobe's Mac developers have all learned Objective C already. This does significantly raise the barrier of entry for hobbyist coders, though. Seems like a typical Apple decision, certainly.

    1. Re:To clarify... by Graymalkin · · Score: 1

      With the Aqua LAF for Swing having Cocoa available through Java doesn't do anyone much good. With a very simple "am I running on a Mac?" if statement you can turn on the Aqua LAF and have a JMenuBar become the application's Mac menu bar. While being able to build a Java GUI in Interface Builder is nice it isn't something a whole lot of people are doing.

      The biggest issue is in order to write Cocoa applications using Java you have to learn Cocoa. If you're going through that effort it is a lot simpler to spend the two days learning Objective-C and getting used to retain counts. You'll find there's a lot more support and documentation than writing Cocoa apps in Java.

      When YellowBox was intended to run on Mach/PPC, Mach/x86 and NT/x86 a Java bridge likely made a lot of sense. A single application binary would run on any of those systems without recompilation. Java at the time was also seen as the Next Big Thing in application development. The plans for YellowBox never panned out and Java was not the Next Big Thing with client application development (despite its success on the server). It's entirely likely that the Java bridge will end up falling under the APSL and end up in the hands of third party maintainers or an entirely new bridge will be written by a third party.

      --
      I'm a loner Dottie, a Rebel.
    2. Re:To clarify... by Yaztromo · · Score: 3, Insightful
      The biggest issue is in order to write Cocoa applications using Java you have to learn Cocoa. If you're going through that effort it is a lot simpler to spend the two days learning Objective-C and getting used to retain counts. You'll find there's a lot more support and documentation than writing Cocoa apps in Java.

      This line of reasoning bugs me, because it presupposes that you're building an application from scratch.

      However, what if you have a large and specialized existing Java library that has taken years to write and has been very strenuously tested, and want to use it inside a Cocoa application? Cocoa-Java was excellent for this -- it took me less than an hour to build a Cocoa interface atop such a Java library, giving me much better integration with OS X's UI than Swing with an Aqua L&F ever would, with a lot less coding.

      Yes, if you're building an application from scratch, Objective-C is a better option (I've developed some Obj-C Cocoa applications as well). But if you have an existing library which has taken you years to write in Java, why would you want to re-do all of that work in Objective-C, when you can just use Cocoa-Java?

      I'm hoping we few of the Cocoa-Java community can convince Apple to release the Cocoa-Java framework to the Open Source community so we could contain to maintain and update it. The only consoltaion I'm gaining from the current "announcement" (if you can call it that) is that it looks like future versions of OS X will support Cocoa-Java -- they just won't be adding anything new to Cocoa-Java past 10.4. So at least my existing Cocoa-Java application (which is only in limited release at the moment) won't be completely obsolete the day it is released.

      Yaz.

    3. Re:To clarify... by Feral+Bueller · · Score: 3, Insightful
      This does significantly raise the barrier of entry for hobbyist coders, though. Seems like a typical Apple decision, certainly.

      How?

      Objective-C is not the traditional point of entry for a hobbyist coder... AppleScript and Perl generally are. If I was going to recommend a programming language for such a person, it would be Java, on the strength of the API documentation alone, but certainly not Objective-C.

      Who reads macslash anyway? Their headline for this article is Apple: You Can't Develop In Java Anymore , which besides being inflammatory is incorrect.

      Macslash makes PowerPage seem like ArsTechnica.

      --
      - learn to swim.
    4. Re:To clarify... by Otter · · Score: 1
      If I was going to recommend a programming language for such a person, it would be Java, on the strength of the API documentation alone, but certainly not Objective-C.

      And therefore eliminating the Java option raises the barrier to entry for Cocoa! We're basically agreeing, so I don't understand what you're objecting to.

      Macslash makes PowerPage seem like ArsTechnica.

      Well, these days Ars Technica seems a lot like Slashdot...

    5. Re:To clarify... by WatertonMan · · Score: 1

      Exactly how hard would it be to develop a Cocoa-Java bridge? If only to add extra features from Cocoa or even Carbon? I know Java can call C, so it can't be that hard, can it? Surely no worse than what went into the Cocoa-Python bridge.

    6. Re:To clarify... by chochos · · Score: 1
      Exactly how hard would it be to develop a Cocoa-Java bridge?
      Ask Apple, they already built that bridge, years ago (since like WO 4.5 IIRC). You use it when you write Cocoa/EOF apps, but I suppose you can use it in other types of apps, like this situation where you have a large codebase in Java and just want to use it from a Cocoa app.

      Or, you can write a Swing or SWT app instead of using Cocoa/ObjC.
    7. Re:To clarify... by BerntB · · Score: 1
      AppleScript and Perl generally are [the traditional point of entry for a hobbyist coder]
      Is Perl really the hobbyist point of entry? Why?

      I am, for all practical purposes, a Perl fanatic. I love the language. The combination of power and breaking all "normal" language rules is, in a word, fun!

      But to really learn the culture etc, was more work than when I learned assembly (68k, regular though) and C in the .. hrm, let us say -- a long time ago.

      The disadvantage to Wall's linguistic influences is a quite steep learning curve. It is hard to not use for for even half a year and pick up again.

      --
      Karma: Excellent (My Karma? I wish...:-( )
    8. Re:To clarify... by CrawlingEvil · · Score: 1

      Keep in mind that the Obj-C to Java bridge is two way. If you have a java library, you can write a Cocoa application that calls the Java library just fine. The only minor issue is that Apple's tools for generating the Obj-C stub codes for calling Java objects doesn't work wonderfully well.

    9. Re:To clarify... by Feral+Bueller · · Score: 1
      Is Perl really the hobbyist point of entry? Why?

      I think you answered your own question in the next paragraph....

      I am, for all practical purposes, a Perl fanatic. I love the language. The combination of power and breaking all "normal" language rules is, in a word, fun!

      But to really learn the culture etc, was more work than when I learned assembly (68k, regular though) and C in the .. hrm, let us say -- a long time ago.

      If you mean a long time ago, Perl wasn't even an option. Also note that I'm talking about this from a Mac users perspective. When I say hobbist, I'm talking about someone who is trying to accomplish a task and gets themselves into doing so through a trial an error approach. AppleScript's syntax and GUI tools and Perl's lack of normal (in your words) syntax rules are much more forgiving to a trial-and-error development process. In this same general category would be VB, and for the truly old school Mac user, HyperCard.

      I certainly wouldn't put assembly or C in this category, but this might be a generational thing. I consider myself to be at heart a hobbyist coder. I just decided to start getting paid for my hobby :-D

      The disadvantage to Wall's linguistic influences is a quite steep learning curve. It is hard to not use for for even half a year and pick up again.

      I'm not a Perl fan so I try not to use it more than once a year if possible :-D
      --
      - learn to swim.
    10. Re:To clarify... by Feral+Bueller · · Score: 1
      And therefore eliminating the Java option raises the barrier to entry for Cocoa! We're basically agreeing, so I don't understand what you're objecting to.

      What I'm objecting to is a couple of things:

      1. We don't agree because you're factually incorrect. The 'Java option' hasn't been eliminated. They're just not going to be updating it anymore. Those are two very different things.

      2. How is lack of an API a barrier to entry for another programming language? My introduction to C was not in the form of an API from AppleTalk or Perl or any of the 4GL tools I was using, it was in the form of the K and R book and a lot of pain.

      I probably would have not bothered responding if not for the 'typical Apple' comment, as if we're all supposed to nod silently in agreement. Do you develop on or for OS X or has it been a little slow over in the Linux channel?

      --
      - learn to swim.
    11. Re:To clarify... by Otter · · Score: 1

      1. OK, fine. They're deprecating it and letting it rot, not eliminating it.

      2. Back to my point: Eliminating - sorry! - deprecating the Java option raises the barrier of entry to _Cocoa_!(Obviously, Java isn't going to be significantly hindered by losing the Cocoa API, but that has noting to do with my point.) Who I'd had in mind was new OS X owners who know some Java but know nothing about Objective C. You're talking about complete novices. Either way, Apple is now going to be telling new Cocoa developers to learn a language that has basically zero utility on any other platform.

      "Typical Apple": Well, am I wrong? Whether or not it's a good idea, twisting Apple developers' arms to use the official Apple language strikes me as a 100% classic Apple move.

    12. Re:To clarify... by Anonymous Coward · · Score: 0
      "This does significantly raise the barrier of entry for hobbyist coders, though."
      Not by much, it doesn't. If you presume a programmer capable of finding his way around both Java and the Cocoa frameworks, it isn't much of a leap to believe that such an individual would be comfortable with Objective-C in a few days time. Once you get the hang of the reference counting for memory management, it's really not that difficult.
  6. Apple has been advising against integration for so by Hungus · · Score: 4, Interesting

    It has been considered best practice by Apple for some time to not use cocoa with java. Typically when someone has done this it has been for the GUI so that native widgets are accessible but with the Aqua widgets being accessible through Swing there is really no need for it now. If the argument is for cross platform writing of Java apps then pure java is always going to be more portable than Java + native elements.

    --
    Bad Panda! No Bamboo for you! In matters of importance ACs will not be responded to. Want to say something critical,OK
  7. Re:Java scares the crap out of people! by Anonymous Coward · · Score: 0

    I'd say that any app that uses Cocoa, regardless of whether it is written in Obj-C or Java, is pretty hard to port to any other platform.

  8. Re:Java scares the crap out of people! by bwintx · · Score: 0
    (as I sit here typing this on my iMac 20")

    Oh, so that's the burning smell I suddenly noticed.

    --
    Discussion System prefs link: http://slashdot.org/users.pl?op=editcomm
  9. What about SWT? by chroot_james · · Score: 2, Interesting

    I wonder how this effects swt or if swt can provide similar functionality to java-cocoa?

    --
    Reality is nothing but a collective hunch.
    1. Re:What about SWT? by Anonymous Coward · · Score: 3, Informative

      Apple is currently porting SWT to cocoa (SWT is currently based on carbon). I wouldn't be surprised if thats why Apple's doing this. If you want to use native cocoa, SWT is the roadmap.

    2. Re:What about SWT? by chroot_james · · Score: 1

      I guess you and I have basically made the point of the rest of this thread null. *high five*

      --
      Reality is nothing but a collective hunch.
  10. Re:Java scares the crap out of people! by thefirelane · · Score: 3, Insightful

    Note: Java is not being removed from OSX. It is just that you would not be able to access the OSX api from Java... which would mean your applications are not cross platform in the first place. You'll still be free to develope 'pure Java' Applications... so your comment about Apple wanting to kill Java doesn't follow.

  11. Re:Java scares the crap out of people! by 99BottlesOfBeerInMyF · · Score: 3, Insightful

    Java scares companies like Microsoft and Apple because it has the potential to make their closed platforms irrelevant.

    Ok... now tell me how supporting java applications, including cross platform applications, but dropping cocoa bindings (largely irrelevant or even a hindrance to cross-platform java applications) is indicative of Apple being scared that java will enable people to move away from their platform? They are freezing support for cocoa bindings, not the java API in general.

    One of the main reasons I prefer OS X over most other platforms for most tasks is all the added benefits from the OS. The system services that are usable across all applications, for example, like the spell checking in this text field (and all other native text presented by applications and the OS). Cross-platform apps and java apps are weak because they have to reinvent the wheel for everything every time because they can't count on the OS offering all the useful features. It's fine for little games and whatnot, but for the most part, it is just not as good.

  12. Ob Homerism by NiceGeek · · Score: 4, Funny

    Mmmmmmmmm...frozen Cocoa Java

    1. Re:Ob Homerism by NiceGeek · · Score: 0, Offtopic

      Excuse me? Redundant? Last I looked no one had made this joke - I know it wasn't the funniest joke out there but mod me fairly at least.

    2. Re:Ob Homerism by tod_miller · · Score: 1

      Mmmmmmmmmm.... Apple

      --
      #hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com
    3. Re:Ob Homerism by Geoffreyerffoeg · · Score: 1

      Mmmm...chocolate frappucino... ...with an apple...?

    4. Re:Ob Homerism by Moofie · · Score: 1

      I like orange mocha frappucinos.

      And freak gasoline fight incidents.

      --
      Why yes, I AM a rocket scientist!
  13. Re:Java scares the crap out of people! by hunterx11 · · Score: 2, Insightful

    Cocoa is OS X only. Apple is ending Java support for Cocoa. Java Cocoa applications run only on OS X. Any OS X apps written in Java in the future will now be more likely to be regular, cross-platform Java apps. I wouldn't be surprised if Java Cocoa applications were harder to port to GNUstep than Objective-C applications. How does Apple discontinuing a specific closed platform choice (which was never very popular in the first place) constitute trying to force people to use a closed platform?

    --
    English is easier said than done.
  14. How? by hargettp · · Score: 5, Informative

    Please remember, Java is still supported, it is simply the Cocoa-Java bridge that will no longer be improved. If you are not clear on what the Cocoa-Java bridge is (or event Cocoa), then here is a quick primer: Cocoa is the preferred API for Mac OS X, specifically for applications written in Objective-C. The Cocoa-Java bridge was a similar API that exposed essentially the same object model to Java based applications. As the API was specific to Mac OS X, any application written on top of the Java Cocoa APIs was specific to Mac OS X and thus not portable.

    I would expect the impact to Java developers on OS X to be quite low. Most probably use Swing or SWT for cross-platform support, so the impact of this decision should be negligible.

    1. Re:How? by yasth · · Score: 1

      Well it limits the ease of someone creating a swing like thing that better integreated with the native OS. I mean it isn't a big loss just an annoyance. Like I said it only affects the toolkit authors not the users.

      --
      I'd do something interesting, but my server can't handle a slashdotting.
  15. Re:important by Anonymous Coward · · Score: 0

    Huh.

  16. Its really not a big deal by PierceLabs · · Score: 3, Insightful

    Apple is just telling people to stop using the Java-Cocoa bridge which was actually not useful for building cross platform applications and not used much by the development community anyways.

    People wanting this functionality in the future will still be able to do so by just writing a little JNI to handle it - though I'm really not sure its worth the effort.

    1. Re:Its really not a big deal by jcr · · Score: 1

      Apple is just telling people to stop using the Java-Cocoa bridge

      Not exactly.. What they've said is that the Cocoa-Java API won't be added to, so what you've got now under Tiger is what you'll have from here on out.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
  17. Re:Java scares the crap out of people! by Quarters · · Score: 4, Funny
    Java scares companies like Microsoft and Apple because it has the potential to make their closed platforms irrelevant. If the promise of Java did take off - people would be free to choose their platform without having to worry about buying all new apps or learning new look-alike apps.

    Did you just get off the boat from 1996 or something?

  18. Sun refusing to license/port Java to Apple+Intel? by NZheretic · · Score: 0, Redundant
    Is Apple having problems with Sun over Apple's transition to the Intel platform?

    It might be that Apple on Intel is a little to close to the Sun on Opteron workstation market for Sun's liking.

  19. swt by jandockx · · Score: 3, Insightful

    As long as they would now commit those resources to swt support on Mac OS X, this would actually be a Very Good Thing ...

  20. Transition by ross_winn · · Score: 1

    Apple is managing it's change. They are moving a huge code base, and will have to leave some things by the wayside as they do. This is not to say that there will never new support after the change, but I personally doubt it. My personal opinion? People are going to bitch. No matter what. If they win the lottery they will complain about taxes. It is just there nature, they are resisting change for its own sake.

    --
    Ross Winn "not just another ugly face..."
  21. Where does this leave the NeoOffice/J project? by NZheretic · · Score: 1

    NeoOffice/J is the port of OpenOffice.org to MacOSX. It does make full use of the Java Cocoa interface.

    1. Re:Where does this leave the NeoOffice/J project? by Brannoch · · Score: 1

      According to the NeoOffice/J docs, it doesn't use Cocoa at all. Instead it uses the Java 1.3.1 Carbon interface. According to them the Java 1.4+ Cocoa code is buggy and doesn't support OS X 10.2; Java 1.5 doesn't support 10.3 either.

    2. Re:Where does this leave the NeoOffice/J project? by Macrat · · Score: 3, Informative

      From the NeoJ Forum

      The Java that's used within NeoJ is "pure" Java, AWT and Java 2D at present, and perhaps some Swing in the future. Anything that's using OS X specific frameworks is written in either C++ or Obj-C. Since the majority of the application is already C++ based, we just call the frameworks directly. There's no need for us to add an extra layer with the CocoaJava language bridge and never will be.

  22. To put this in perspective: by tod_miller · · Score: 4, Insightful

    If someone writes a widget that places icons in the task tray, that only works on SCHOOMOO operating system, and then writes the Java class and JNI calls for this, but then goes and releases a new version of the widget, but doesn't update the Java classes.

    +1 mod points to everyone who spotted this is neither anti-java or anti-Cocoa, in fact, it is pro Java because no Java developer wants to be bogged down with much non-portable code or mac only code.

    I would wager than Apple was even nudged by some Java developers who said, yes, this was nice, but look, not much interest in it, we can use our own libraries and keep it cross platform.

    This is GOOD for Apple, as this 'embrace the non-proprietary cross platform Java' rather than using Java Cocoa fixated programming, will mean more Java developers will target the Mac. Oooops! But they already do because Java is cross platform. Oh Hahah I am funny.

    Now, sometimes you do want to access proprietary extensions, and in yesteryear, the extremely small quirky devices would give some benefits for being able to access their split bars, or their dialogue classes, so each platform had their own set of 'device API's', nothing too wrong with that, but with great power come great erm, device abstraction. Go spidey.

    --
    #hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com
  23. Why did anyone use it in the first place? by idiot900 · · Score: 1

    I don't understand why anyone cares about the end of Cocoa-Java support in the first place. Why was anyone using it in the first place?

    Java is a good language but restricting it to Cocoa destroys the cross-platform compatibility, which is pretty much why you'd use Java in the first place. I would understand if Cocoa were garbage and the Java class library was needed as an alternative, or if Objective-C were a complicated language to learn. But Cocoa is a great API and Objective-C is just a small and elegant bag on the side of C.

    1. Re:Why did anyone use it in the first place? by TheRaven64 · · Score: 4, Insightful
      Why was anyone using it in the first place?

      I can think of one reason for using it. If you have an existing Java application and want to release if for the Mac, it makes a good choice. If you run a Swing or SWT Java app on OS X without any changes, it will look native, and it will almost feel native, and that almost is enough to really irritate users (including me). Replacing the original GUI with one drawn in IB (so you get the HIG spacing guide lines) and with controllers written in Java as a thin wrapper around the existing model code would be a significant benefit in terms of usability.

      --
      I am TheRaven on Soylent News
    2. Re:Why did anyone use it in the first place? by SteeldrivingJon · · Score: 1

      "I don't understand why anyone cares about the end of Cocoa-Java support in the first place. Why was anyone using it in the first place?"

      I've no idea. I think it was created because Apple was concerned that Objective-C would be too alien and would be rejected. So they created Cocoa-Java, sort of a comfy security blanket insulating the programmer from Objective-C.

      Around the time of the Apple/NeXT merger, there was even some thought given to redoing Objective-C to have a Java-like syntax. Thankfully, they didn't do that.

      One thing that *is* good, is the Objective-C/Java bridge, which lets Objective-C programs use Java library code.

      For instance, you could use lucene from within a Cocoa app, and the bridge makes it pretty transparent to instantiate a Java object from ObjC, and use it like you would an Objective-C object.

      That would be nice to keep around, as long as they can.

      But maintaining Cocoa-Java means they need to create a Java facade for the Objective-C APIs, and they need to create Java equivalents for C constructs and Objective-C Categories which don't quite map cleanly onto Java. That's a fair amount of work.

      It doesn't seem like a good use of resources. Cocoa Java has always been a masochistic way to build Cocoa apps.

      --
      September 2011: Looking for Cocoa/iOS work in Boston area Cocoa Programmer Quincy, MA
    3. Re:Why did anyone use it in the first place? by bnenning · · Score: 1

      But maintaining Cocoa-Java means they need to create a Java facade for the Objective-C APIs, and they need to create Java equivalents for C constructs and Objective-C Categories which don't quite map cleanly onto Java.

      Exactly. It's much easier for Objective-C to call Java than vice versa because all ObjC method calls are resolved at runtime. (Which allows an ObjC proxy object to take the invocation and transparently forward it to a Java object). Note that more dynamic languages can be better integrated with Cocoa, for example see PyObjC.

      --
      How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
    4. Re:Why did anyone use it in the first place? by Pius+II. · · Score: 1

      So what?
      That's still possible. What's not possible is to use your cross-platform Java code, draw a GUI in IB for it, and then extend it with post-Panther additions to Cocoa in Java. Big deal: if you did, your code would cease to be cross-platform anyway.

    5. Re:Why did anyone use it in the first place? by jcr · · Score: 1

      Around the time of the Apple/NeXT merger, there was even some thought given to redoing Objective-C to have a Java-like syntax. Thankfully, they didn't do that.

      Actually, they did do that.

      There were a few revs of GCC that could compile what they were calling the "modern" Obj-C syntax. It went over like a lead balloon with the Cocoa community, so it was quitely taken out behind the barn and shot. ;-)

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
  24. Not a big deal by SteeldrivingJon · · Score: 2, Informative


    It really isn't a big deal. Few people use Cocoa-Java to build apps, and it hasn't ever been very well supported or documented.

    It doesn't effect cross-platform Java, won't effect WebObjects (which is 100% Java).

    --
    September 2011: Looking for Cocoa/iOS work in Boston area Cocoa Programmer Quincy, MA
  25. Re:Java scares the crap out of people! by Em+Adespoton · · Score: 1

    Nothing's being removed, including the ability to compile Cocoa/Java apps. They just won't be adding any new features to the C/J API; even features that are available to C/oC. All this means is that if Apple decides to add a hook for something like kCOM to Cocoa, Java-based apps won't be able to access this information.

  26. Bad for Cocoa-Java... very few give a damn anyway. by javaxman · · Score: 3, Insightful
    If you don't know what Cocoa-Java is, it's a way of gluing a Cocoa native interface onto a Java bytecode program. I suppose the idea is that you have a Java application, for portability, but don't want a Swing UI ? That description is a little simplistic, really, but it's the general concept.

    Who writes programs like that ? Very few people, it turns out. I'm sure there are excellent examples of Cocoa-Java programs out there. In fact, I know there are. But really, they are neither highly portable, nor are they fully native code. It's entirely like having a Java program with an ActiveX interface. It's neither native nor cross-platform, it's a mix of technologies, and has the advantages and drawbacks of both, oddly enough.

    Apple has, for some time, been moving away from full Cocoa-Java support. If you're shocked by it going away, you haven't been paying attention. If you want a multi-platform Java application, use multi-platform libraries, i.e. Swing. If you want a native application code program, write one- if you don't want use Objective-C because you'd like to port it more easily ( GNUStep aside ) , use C++. But if you want to use Java, well... use Swing. Seriously. It's not as bad as you've been told.

    Then again, having native binary projects designed for their respective platforms has it's advantages, too.

    Don't get me wrong. I've always thought Cocoa-Java was neat. But mostly in a 'cool trick' sort of way, not in a "I'm going to use this all the time" sort of way. If I want a chunk of code that just runs on any JVM-supported system, I'm not going to use Cocoa-Java, I'm going to use Swing and avoid having more than one build. If I want a native Mac OS X program, Objective-C is easy. Cocoa-Java fit some in-between requirements space that I guess I never really fully understood.

  27. C++ is not a replacement by mariox19 · · Score: 4, Insightful

    With all due respect, have you tried Objective-C? It's far easier to learn than C++, and in some ways far more powerful. Objective-C is a dynamic (late-binding) language. The Cocoa framework could not have been written in C++ -- many, many decisions are made at run-time.

    Don't get me wrong, I'm not one for "language wars"; I'm just saying that C++ is not a replacement. I'm not sure what is, given that Objective-C is fully compatible with C code -- all pointer and bit-twidling nonsense -- and dynamic.

    Objective-C coders don't use the language grudgingly.

    --

    quiquid id est, timeo puellas et oscula dantes.

    1. Re:C++ is not a replacement by 1010011010 · · Score: 2, Interesting

      Objective-C coders don't use the language grudgingly.

      Since learning Objective-C, it's become my favorite C-type language. It's not something I have to use, it's something I like to use.

      --
      Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
    2. Re:C++ is not a replacement by entrylevel · · Score: 3, Interesting

      I find it hard to believe you speak from experience. Did you write a program or did you just read some source code and figure some things out yourself? How long did you try at it? There's a lot to Objective-C, and being a superset of C is something I never saw as a detriment.

      IMHO, it's far more elegant than C#, VB, or Java, used by millions (and loved by less). Certainly moreso than C or C++. It's not as elegant as Python, but few things are.

      Most Objective-C programmers love the language a great deal and tend to be (at least on the Mac side) very vocal about it.

      --
      Karma: Incomprehensible (Mostly affected by posting at +5, reading at -1, and metamoderating everything unfair.)
    3. Re:C++ is not a replacement by mariox19 · · Score: 1

      You're not talking to me are you? I'm all for Objective-C and I use it. I said that "Objective-C programmers don't use the language grudgingly" -- meaning, they enjoy using it.

      --

      quiquid id est, timeo puellas et oscula dantes.

    4. Re:C++ is not a replacement by entrylevel · · Score: 1

      So you did... My apologies on me unpossibly non-well English comprehension!

      --
      Karma: Incomprehensible (Mostly affected by posting at +5, reading at -1, and metamoderating everything unfair.)
    5. Re:C++ is not a replacement by jiushao · · Score: 2, Interesting
      Python elegant? That's just ridicolous. Python is a huge and complex lanuage. It has ridicolously many language features, with a bunch new ones added with each release. All with only little planning and thought. It happens to end up being fairly powerful, and of course extremely featureful, but absolutely not elegant.

      C# and Java are both clearly more elegant designs, as is C really. C++ has a lot of syntax, and rather wacky semantics in parts, but it manages a lot of power with a few very important concepts (templates). Overall, in elegance I would probably rate Python second to last of the languages listed (VB is extremely unelegant). This does not mean that it is a bad language (though I personally don't care for it), it is powerful and featureful, but it pays for it by being a huge language.

    6. Re:C++ is not a replacement by Anonymous Coward · · Score: 0

      Are you possibly thinking of Perl? The Python language itself is rather small for an interpreted language. I've never heard anyone call it huge or complex.

    7. Re:C++ is not a replacement by jiushao · · Score: 1
      This thread has long since moved on, but I thought I'd clarify my position if someone happens to read it anyway.

      Perl is also very large and complex, but what people tend to remember is the very terse syntax. Python has an insane number of language features piled up on it (and there is no sign of it stopping), all of them with fairly clear syntax, but it still makes the language as a whole very large (and with size comes complexity).

      The code remains fairly easy to read, but the amount of syntax and semantics you have to learn to have a complete grasp just continues to increase, all in all it introduces power by having many specialized features, rather than for example C++ which introduces power by having a few very powerful concepts (templates) which can achieve a lot of different goals (in very obscure ways).

      Lets just have a look at the latest release, Python 2.4:

      - Decorators, a very non-ovious but fairly fundamental piece of syntax sugar (a function definition is preprended with a special syntax '@foo' causing the function to be bound as func = foo(func) rather than just 'func' as usual).
      - For some insane reason Python is still working on unifying the arbitrary length arithmetic with the regular 32bit one, again changing the semantics of some operations (why wasn't this all done in one go?).
      - Generator expressions. Basicly a special syntax for implementing lazy list comprehensions.
      - Decimal data type. Would not be so major if Python wasn't a dynamically typed language, changing the type hierarchy in every other release (especially the numeric tower which is already messed up from the changes to the handling of arbitrary length arithmetic) is messy.
      There are a lot more new in Python 2.4, but these are some of the more major changes. And this is with 2.3 having been released less than 1.5 years earlier. 2.4 is nothing special either, huge amounts of changes like these happen with every Python release. This lands us in some trouble, with tons of new syntax and semantics added to the core language in every release it is very hard to actually keep up or even worse, try to use different versions at the same time. It is also a very hard job for any newbie to get proficient with all the features of Python, meaning that one ends up having to spend a very long time before one can expect to understand other peoples code.

      This one can contrast with most other languages, where the core language is not changed more often than perhaps once or twice per decade. They instead try to offer more powerful basic constructs and expect users to build from there. The Python approach has its advantages, but it is hard to dispute that the end result can not really be considered elegant.

    8. Re:C++ is not a replacement by Anonymous Coward · · Score: 0

      I was completely agreeing with you for a while... people think Python is nice and simple and clean but really it's huge and complex and I kind of think that while its syntax may be pretty, its actual semantics are sometimes rather ugly.

      I was with you on that until you contrasted Python with C++:

      rather than for example C++ which introduces power by having a few very powerful concepts (templates) which can achieve a lot of different goals

      Now C++ is a total beast. I'm not one of those ignorant C++ bashers that occasionally pop-up; I've even defended C++ against some of them around here before. But the fact is, C++ really is just gigantic and UGLY. What sucks is, despite having so many features, it manages to avoid the features I actually would want to have, like closures. The STL encourages a functional style of programming, and yet C++ makes such a style very painful.

  28. NeoOffice/J? by mindbooger · · Score: 0, Redundant

    Ouch. I wonder what that means for an OOo 2.0 (and beyond) version of NeoOffice/J?
    http://www.neooffice.org/

  29. Re:Sun refusing to license/port Java to Apple+Inte by Anonymous Coward · · Score: 0

    oh how i wish i could elaborate, but i fear the power of apple/sun+lawsuits=slashdot giving my IP.

  30. No, actually, it won't bother many developers by green+pizza · · Score: 1, Insightful

    Move to x86 = anger
    Lack of Java support = more anger
    Are Apple just trying to piss off their loyal developer base?

    Most developers are happy to see the move to x86 as it will simplify the performance-optimization stage of software development or software porting. But that's another arguement for another time.

    This announcement has nothing to do with Java support in general. Apple and Sun are going to continue supporting Java on Mac OS X just as they always have. If you want your Java app to look like a native Mac app, then use SWT, just like you would do to make your java app look like a native Windows app. This hasn't changed one bit.

    The announcement refers to using Cocoa (native Mac OS X GUI and API) with Java, rather than Objective-C. Very few people use Java in this way as this JavaCocoa code only runs on the Mac and is not portable. There are many 10 freeware applications written like this, it's more of a technology demonstration than anything else. Because of this, Apple is not going to develop JavaCocoa past 10.4 Tiger. They are not removing anything from 10.4 Tiger, and chances are it will live on in 10.5, albeit a straight copy from 10.4 Tiger.

  31. Intel Java Performance issues? by linuxtelephony · · Score: 0, Troll

    Could this direction be to deal with the performance issues of Java on little endian systems like x86? Seems I recall reading that Java performance is generally better (or much better) on big endian systems such as Sparc (and, PPC970/G5). Given the migration to Intel, could it be the little endian performance issue (penalty?) is prompting them to make a preemptive move away from some of the Java support, so the Intel based Macs don't look like they perform badly for Java apps that are integrated tightly with Cocoa?

    If memory serves, the performance penalty was related to numeric processing, including GUI interfaces.

    I'm just speculating out loud, but that's the first thing I thought when I ready about this yesterday.

    --
    . 62,400 repetitions make one truth -- Brave New World, Aldous Huxley
  32. You are completely wrong by Geek+Dash+Boy · · Score: 1

    If you don't know what Cocoa-Java is, it's a way of gluing a Cocoa native interface onto a Java bytecode program.

    no, no, no. Cocoa-Java is a way to write native Mac OS X applications using the Java programming language. The Java platform (i.e. java.lang.*), never enters into it.

    Instead of using javax.swing.JFrame, you use com.apple.cocoa.NSWindow (the exact package name escapes me, but you get the idea), and you compile it into native code using Xcode, not bytecode using javac.

    Reading articles such as this one should explain further. Excerpt:

    "Because Cocoa is an Objective-C framework without automatic garbage collection, however, Java applications sometimes need to take steps to handle peculiarities in this mixed-language environment."

    see what I mean? You're using the Java language, which has no free() method, so you have to use weak references or other such idioms to mimic memory management.

    Mod the parent down. It's not "Informative", it's "Misleading"

    --
    I say we take off and nuke the entire site from orbit. It's the only way to be sure.
    1. Re:You are completely wrong by Yaztromo · · Score: 4, Informative
      Mod the parent down. It's not "Informative", it's "Misleading"

      That's better advice for your response, as opposed to the grandparent post.

      The Java platform (i.e. java.lang.*), never enters into it.

      That's not true. All of the java.lang.* classes are available. In fact, you can even make calls to javax.swing.* classes (although you have to be really careful in terms of event threads, so it's dangerous to do so). Cocoa-Java still uses java.lang.Class, java.lang.Object, java.lang.String, java.lang.Classloader, and any of the other java.lang classes.

      Instead of using javax.swing.JFrame, you use com.apple.cocoa.NSWindow (the exact package name escapes me, but you get the idea), and you compile it into native code using Xcode, not bytecode using javac.

      That is also not true. Cocoa Java bundles include the JAR files for their Java components. Only a small stub is compiled natively. Just view the package contents of any Cocoa Java application and you'll find the JAR file. Or build a Cocoa Java application in Xcode, and see something like the following in the build log (with lots of snippage...):

      JavaCompile.default Cocoa blah.app
      frameworkjars=""
      for i in `echo /System/Library/Frameworks/Cocoa.framework/Resourc es/Java/*.jar /System/Library/Frameworks/Cocoa.framework/Resourc es/Java/*.zip ` ; do if [ -f "$i" ] ; then frameworkjars="$frameworkjars":"$i" ; fi ; done
      classpath="/blah:"`/usr/bin/javaconfig DefaultClasspath`
      /usr/bin/javac -J-Xms64m -J-XX:NewSize=4M -J-Dfile.encoding=UTF8 -g -encoding MACINTOSH -sourcepath ...

      Sorry, but you're talking out of your ass, and have no idea what you're talking about.

      Yaz.
      (Cocoa-Java Developer).

    2. Re:You are completely wrong by javaxman · · Score: 2, Insightful
      The Java platform (i.e. java.lang.*), never enters into it.

      Look, I don't want to make you sound silly, Yaztromo already did a fine job of that, but when Apple says that the Cocoa-Java NSObject "inherits from Object", exactly what "Object" class do you think they're talking about ?

      Hint : it's in the package you don't have to import in the Java language.

      Further hint: NSObject in Objective-C ( native Cocoa as opposed to Cocoa-Java, I suppose ) doesn't inherit from anything else, it's a root class.

      It's hard to blame you too much for your misconceptions about Cocoa-Java, though, if you're using the Apple "Cocoa Tutorial for Java Programmers" you linked as your guide. I think they're almost intentionally misleading you there... notice there's actually no talk at all of what compiler is being used or what's going on behind the scenes ( it's javac ). Really, Cocoa-Java, IMHO, is there to lure Java programmers into Cocoa. It's a hook to get you to see how easy Objective-C really is...

      Basically, there are enough application developers for OS X that Cocoa-Java serves no real purpose now. Just my own little theory, that.

  33. History reconstructed (maybe) by fm6 · · Score: 3, Insightful
    Good idea? As far as large software makers go, it probably doesn't matter. Adobe's Mac developers have all learned Objective C already.
    When I interviewed at Apple in 97, the party line was that Java was going to replace Objective C as the standard language for accessing the NeXTSTEP APIs. But some of the NeXTSTEP people who came over to Apple after the buyout seemed less than convinced.

    I haven't had much to to with NeXTSTEP/OS X since then, but your comments make me reconstruct the Java/Cocoa story as follows: after adopting NextSTEP as the basis for OS X, Apple management decides Objective C as a fringe language, and that Java, which was then being hyped as the language of the future, was an easier sell. But, as always, the developer community went with the tools it knew how to use, so Objective C never lost its dominance in OS X development. This latest move is just management bowing to that reality.

    1. Re:History reconstructed (maybe) by metamatic · · Score: 3, Interesting
      When I interviewed at Apple in 97, the party line was that Java was going to replace Objective C as the standard language for accessing the NeXTSTEP APIs.

      Yeah, well, it's worth remembering that back in 1997, Netscape's new browser was going to be written in Java, Corel were going to sell an office suite written in Java, and everyone was going to run 'thin client' systems based on Java. The great Java hype machine was just winding down.

      --
      GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
    2. Re:History reconstructed (maybe) by jcr · · Score: 1

      When I interviewed at Apple in 97, the party line was that Java was going to replace Objective C as the standard language for accessing the NeXTSTEP APIs.

      That was the time when Sun was still making reasonable changes to the language, and Apple had reason to believe that Java would eventually be adequate for the purpose. It didn't quite work out that way, though...

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    3. Re:History reconstructed (maybe) by fm6 · · Score: 1
      Language features are kind of beside the point. The whole Java strategy was based on the assumption that programmers would slap themselves on the forehead and say, "Java is so much better! Why am I wasting my time on C++/Visual Basic/Fortran/Whatever?" Even if Java had had all the features that people wanted (and the whole point of Java was to resist feature bloat!), they still would have been reluctant to abandon familiar tools.

      Microsoft must have had that in mind when they decided that .NET would support programming in "legacy" languages, not just Microsoft Java, I mean C#. Which is not to say that CLR support for C++ or Visual Basic is as good as Microsoft claims...

  34. Re:Oh Well. by Anonymous Coward · · Score: 1, Funny

    No,

    signed

    Everyone

  35. Jonathan Schwartz ramblings by joshstaiger · · Score: 4, Funny

    I'm going to go out on a limb an guess that this means that Apple isn't going to take Jonathan Schwartz up on his offer that they adopt Solaris 10 for the underpinnings of the Mac OS and adopt NetBeans as their development environment...

    Shocking, I know.

    Oye vey...

    --
    http://joshstaiger.org/

    1. Re:Jonathan Schwartz ramblings by jcr · · Score: 1

      I guess with all the money Jonathan gets for running Sun into the ground, he can afford some pretty potent drugs...

      He should know from the experience of trying to port Lighthouse's own NeXTSTEP apps to Java, that it's not a viable development environment for desktop apps.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    2. Re:Jonathan Schwartz ramblings by Anonymous Coward · · Score: 0

      Dear Jon,

      Does the name "Real Media" ring a bell?

      Love,

      Steve.

  36. Incompletely wrong... by argent · · Score: 1

    There's quite a few Cocoa Java apps out there, and some seem quite good... but I've found that I'm using very few of them... probably due to the fact that I'm a low-end Mac user. Cocoa already has a fairly significant overhead (presumably due to Aqua rather then Objective C, since NeXTSTeP was quite practical on a 68030). Java just gave it that little extra punch to push it over the top, kind of like turning the lag up to 11.

    On faster machines I'm sure it's a lot better, and I would assume that they'd run under native Java on Intel rather than adding Rosetta's overhead to the devilish mix, so I doubt that performance is a direct issue for Apple. But the lack of adoption of Java by users could be.

    And of course there's a huge difference between the object models of Java and Objective C. Unlike languages like F-Script, I doubt that it's just a matter of translating the calling mechanism, so I suspect maintaining the interface has been pretty labor-intensive.

    As for Swing, what does that do to the native look and feel? What's an example of an application that uses it that I can try on Mac OS X?

    1. Re:Incompletely wrong... by javaxman · · Score: 1
      Cocoa already has a fairly significant overhead (presumably due to Aqua rather then Objective C, since NeXTSTeP was quite practical on a 68030).

      You're right there- if you're running on a machine with a non-hardware-acceleration graphics card, you really do need to try the turn-off-the-eye-candy tricks ( disable bouncing dock icons, window and sheet effects, etc ), and if you're on an early G3, ouch. Tiny delays imposed by Objective-C message passing are just that- tiny.

      Java just gave it that little extra punch to push it over the top, kind of like turning the lag up to 11.

      In fairness, most noticeable Java-related lag is going to be the first time you launch a Java app ( time to launch the JVM and allocate it's memory and threads... ). There might be a few extra instructions involved in packaging bits from the Java side and pushing them into the Cocoa-native UI classes, but it's not that bad there performance-wise.

      Sure, for Intel, Java would run on it's own VM, and Cocoa compiled code would still be Intel-specific, so... the more I think about it, the more I think dropping Cocoa-Java has *nothing* to do with moving to Intel. It was in the cards already, since, as you say :

      I suspect maintaining the interface has been pretty labor-intensive.

      I'm thinking "not terribly labor-intensive for Apple, but how great has the benefit been, when people are already screaming for them to keep up with Sun's Java releases and so few people are really using Cocoa-java ?"

      As for Swing, what does that do to the native look and feel? What's an example of an application that uses it that I can try on Mac OS X?

      I can say from my own experience, it's pretty good in general. You'd be hard-pressed to notice the UI difference in most Swing programs. Of course, I can't exactly send you my app... but, unless they actually go out of their way to use the Metal Look-and-Feel ( which some apps do, I suppose in the name of avoiding possible look-and-feel bugs, or just out of laziness ), any Java app will start using the native look-and-feel by default. You could always pick up the developer tools install and look at the /Developer/Examples/Java/JFC/SwingSet2/SwingSet2.j ar "SwingSet" demo application, I guess. It runs through a majority of the UI objects.

      The weak link, as with any look-and-feel it seems, is of course the file picker ( JFileChooser ). It's not *terrible*, it's just missing the sidebar and search area, really... rather than looking for "OS X Java" applications, just look for Java applications.

      There are a few things you can do in Java to make your app look more like a real OS X app, though- use a screen ( instead of window ) menu bar, have Apple UI-compliant menus, support the Application menu commands ( about, preferences, quit )... that takes a small amount of actual code, but there are plenty of apps out there that just don't take that extra step. I did find one, though, after a quick google search. It's a bio-related sequence analysis program. No idea how it works, but it's an example of what you're asking about.

    2. Re:Incompletely wrong... by Nurgled · · Score: 1

      There are a few things you can do in Java to make your app look more like a real OS X app, though- use a screen ( instead of window ) menu bar, have Apple UI-compliant menus, support the Application menu commands ( about, preferences, quit )... that takes a small amount of actual code, but there are plenty of apps out there that just don't take that extra step.

      Having to take these extra steps defeats the object of a cross-platform UI library. The library should be handling this stuff. If it can't, then it shows that the design is flawed. Such things as screen vs. window menu bars should just happen, and there should be higher-level objects representing things like a collection of documents, which might be an MDI interface on one platform but a bunch of windows which live together in the z-order on another.

      If Swing requires what you say it does, then you're back to writing special code for each platform, at which point you're not gaining much vs. just using the native Cocoa bindings for the MacOS version of your interface.

  37. Re:important by Anonymous Coward · · Score: 0

    Whew, you saved my life ! Dam, I wouldn't go near the thing knowing what I know now.

  38. Nope... by SteeldrivingJon · · Score: 1


    It's just because maintaining it is too much work considering how few people use Cocoa-Java.

    Java itself will still be available.

    --
    September 2011: Looking for Cocoa/iOS work in Boston area Cocoa Programmer Quincy, MA
    1. Re:Nope... by jcr · · Score: 1

      I'd say that the chief benefit of this decision is the morale boost it gave to the Cocoa frameworks engineers.

      Hi, guys!

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
  39. Might mean good things for Cocoa/ObjC in 10.5 by Anonymous Coward · · Score: 0

    On the plus side, this hopefully means that there's some really good things coming out for Cocoa/Objective-C which simply aren't able to be duplicated in Java without significant effort or sacrifices in speed. Certainly Java compatibility won't be a potential hinderance anymore.

  40. Re:Java scares the crap out of people! by Quarters · · Score: 1
    No, you didn't get mod bombed, the audience read your comment and rated it accordingly.

    Here, I'll repost my response. It's already +5 Funny. Maybe I can double score on it.

    Java scares companies like Microsoft and Apple because it has the potential to make their closed platforms irrelevant. If the promise of Java did take off - people would be free to choose their platform without having to worry about buying all new apps or learning new look-alike apps. Did you just get off the boat from 1996 or something?

  41. How about NeoOffice/J ? by constantnormal · · Score: 1

    I thought that NeoOffice/J used Java to integrate with the OS X GUI, providing a Java layer for the OpenOffice innards to paint the screen through.

    Or is this announcement something similar to the recent pronouncement that with 10.4, APIs were frozen, so developers would no longer have to target a morphing platform?

    I believe that either the same or a similar situation exists with Camino.

    1. Re:How about NeoOffice/J ? by constantnormal · · Score: 1

      Duh-oh!

      Camino has nothing to do with Java -- it uses a native Cocoa to wrap the C++ Gecko innards in.

  42. Re:Sun refusing to license/port Java to Apple+Inte by aonaran · · Score: 1

    It might be that Apple on Intel is a little to close to the Sun on Opteron workstation market for Sun's liking

    Not likely.
    Apple and Sun are really in two very different market segments.

    Sun has really cool hardware tricks that make their servers popular. Apple has really cool software tricks that make their Desktops popular.

    People are not likely to switch from Apple to Sun or vice-versa in any major numbers. The Apple folks and Sun folks are coming from very different perspectives.

    What this is is nothing to do with Sun/Apple relationship. It's just that there are newer, better ways to do this, so Apple is not going to continue to add new features to the old API when they really want developers to move on to the new one.

  43. Strange timing... by Anonymous Coward · · Score: 1

    ... given the ongoing hardware switch - just think about it.

    JavaCocoa was _the_ way for a new app to use Cocoa, avoiding the universal binaries - getting and testing on a second platform - thingie.

    Of course if you get your app right, universal binaries are OK, and there's no need to test on both plaforms... though if you always got it right the first time, there'd be no point testing at all... :P

    1. Re:Strange timing... by Anonymous Coward · · Score: 0

      JavaCocoa was _the_ way for a new app to use Cocoa, avoiding the universal binaries - getting and testing on a second platform - thingie.

      Not quite. While the guts of the app are in Java, the stub that makes it run is Objective-C -- meaning you'd still end up compiling Universal Binaries.

  44. Never saw the point by Bastian · · Score: 2, Insightful

    Cocoa-Java apps are _not_ cross-platform. About the only advantages I could see getting from it is not having to make your developers learn Objective-C and being able to work in a garbage-collected environment.

    But I don't think either of those advantages are great enough to make it worth Apple's while to spend money on maintaining Cocoa bindings for Java. Objective-C is really not difficult to learn, and has plenty of syntactic sugar to keep you happy - especially if you're using Apple's runtime. And reference counting isn't perfect, but it's also almost brainless to use after a few days of really getting used to it.

    Much better in my opinion for Apple to put their Java efforts into trying to keep the JRE on OS X up to date, and possibly to put a bit more effort into getting it to run well.

    1. Re:Never saw the point by morgue-ann · · Score: 1
      About the only advantages I could see getting from it is not having to make your developers learn Objective-C and being able to work in a garbage-collected environment.


      C# anyone?

      Interface Builder/Obj-C/Cocoa's supposed advantage is building first-class applications (native look-and-feel) in a "modern" environment (not raw C with Pascal-interface APIs).

      "Modern" (moving away from the solution domain towards the problem domain and letting the coder ignore details like memory management that the computer can handle itself) is evolving to mean garbage collection, dynamically typing and higher-order functions for some people.

      I'd like to use Python to write a Mac app that has preferences in the right place (BitTorrent's and iPodder-Lemon's wxWidgets interfaces have a few glaring Mac UI violations), but PyObjC seemed like a kludgey mess (though I didn't give it much of a chance).

      I thought Java would be worth looking at as it seemed that there might be a real Java-centric version of the app framework (PyObjC requires you to write ObjC-looking code in Python), but now it's going away. I thought I'd look at Jython if Java->Cocoa was good.

      Java is a nice language period. You don't have to use the supposedly portability features. You can implement the model in portable Java & make the controller/view be platform-specific. It's nicer to have all three be in the same language rather than having to jump through a native-interface hoop that make it easy to present a C-like interface but hard to keep things object oriented across the bridge.

      If C# makes first-class app development faster because you don't have to track down memory leaks (and it doesn't require Universal Binaries), and it comes with a better app framework (Avalon, WinFX, mebbe?) than Win32/MFC/whatever, it might chip away at one of the big advantages Cocoa supposedly has.
    2. Re:Never saw the point by Bastian · · Score: 1

      "Modern" (moving away from the solution domain towards the problem domain and letting the coder ignore details like memory management that the computer can handle itself) is evolving to mean garbage collection, dynamically typing and higher-order functions for some people.

      I would argue that Objective-C has a higher overall score for those three features than Java. But moving on, if I were looking for a truly high-level language for my app development (which I am), I wouldn't want ObjC or Java. ObjC is nice, but you still have to memory manage, and I don't think Java counts. It is incredibly buzzword-enabled, but in terms of development and debugging time - which is the root of why I like to work in HLLs - I find that it's still in the same ballpark as C++.

      My wet dream for rapid Cocoa development is for Apple to quit forcing AppleScript to lurch and vomit through life with shoddy cover-ups like AppleScript Stuido and Automator and let it die like it so desperately wants to. In it's place, they could give us scripting in a *REAL* language - Dylan, Ruby, Python, JavaScript, anything - and give us an AppleScript Studio type development environment with the same close bindings to ObjC/Cocoa, the same OSA wonderfulness, but a language that doesn't taste like rusty razor blades and dish soap.

    3. Re:Never saw the point by Anonymous Coward · · Score: 0

      A Ruby or Python based replacement for AppleScript would be rad!

      Or maybe they could develop a new language... iPython? CocoaScript?

      I am very pleased that they've stopped wasting resources on Java-Cocoa bridge. The objective-C side is very nice, but still has a few bugs which no one seems to get around to fixing. For example, try this:

      NSLog(@"%@", [[NSMutableParagraphStyle defaultParagraphStyle] className]);

      Since NSMutableParagraphStyle is a subclass of NSParagraphStyle, it SHOULD print out NSMutableParagraphStyle IMO. But it doesn't - it prints out NSParagraphStyle. According to the Cocoa dev team at Apple, this is "expected behaviour". I disagree. NSMutableArray's +array method returns an NSMutableArray - NOT an NSArray.

      However, despite a couple of minor frustrations, I LOVE working with Cocoa in objective-C!

      But I digress...

  45. Re:Java scares the crap out of people! by Anonymous Coward · · Score: 0

    Objective-C _is_ portable, you idiot.

  46. ID-10-T Error by LordKazan · · Score: 2, Insightful

    Anyone else see a contradiction in that statement, or is it just me?

    --
    If you cannot keep politics out of your moderation remove yourself from the Mod Lottery.. NOW!
  47. Third party bridge by Have+Blue · · Score: 4, Informative

    If there's really demand for Java support of new OS X features, someone else can write a bridge for it- how to do this is well understood. There are already third party Cocoa bridges for Python, Ruby, and Perl.

    1. Re:Third party bridge by Anonymous Coward · · Score: 0

      Here's my understanding -- others might correct me.

      These bridges (Python,Ruby,Perl,etc.) are powerful but they are very slow, as they require dynamic lookup of ObjC classnames (they're dynamic, untyped languages). But that's okay because the languages are very slow anyway, so if your'e already committed to writing your app in Python, you're wiling to take a significant speed hit as it is.

      Apple's Java bridge is rather faster, but the cost is that it's built into Java's typing facility, so you can't just access a new class dynamically on-the-fly. This locks the bridge so new classes can't be readily added after Apple gives up on it. If someone writes his own Java-Cocoa bridge in a dynamic, extensible fashion, it's going to be even more pokey than it is. But maybe that's not a bad idea.

  48. this is really a shame. by Suppafly · · Score: 1

    This is really a shame, it is cool how fast you can throw together a decent app using java.

    1. Re:this is really a shame. by wootest · · Score: 1

      Most decent apps that could be thrown together because of the Cocoa framework can still be thrown together in Objective-C, and most that could be thrown together because of the Java frameworks can still be thrown together in the same way.

      When Java was fresh on my memory, I tried to write a Cocoa-Java app to learn Cocoa. The Java parts weren't hard, but few Cocoa frameworks are available because there's sizable effort in making your frameworks work with Cocoa-Java. I ended up having to learn Objective-C and it immediately got much easier.

      Cocoa-Java support is generally neglected from Apple's side, and Objective-C Cocoa developers are not encouraged to help make sure that their own frameworks work with Cocoa-Java. With all respect to the Cocoa-Java team and the magic that have been put into it, it's a heroic effort, but it's still functionally half-assed. Apple had two choices - going all-in or ditching it. For better and worse, they chose ditching it.

  49. Cool.... by catdevnull · · Score: 1

    Frozen Java. I love ice coffee...

    (ducking from flying tomatoes)

    --

    I might know what I'm talkin' about, but then again, this is Slashdot...
  50. I you decided to use Java for your Cocoa apps... by 5plicer · · Score: 2, Interesting

    you should have listened to Aaron Hillegass IMO :p

    --
    The bits on the bus go on and off... on and off... on and off...
  51. Cocoa-Java vs Java-Cocoa by Agave · · Score: 1

    Yaz, javaxman, I believe what Geek Dash Boy was trying to explain is that accessing Java from Objective-C and Cocoa-Java are different things. In that regard he is correct. Specifically, what Apple's documentation is refering to that will not be enhanced in the future are the classes and interfaces that are in com.apple.cocoa package. Cocoa-Java in this context refers to the Java interface to Cocoa, -not- the Cocoa interfaces to Java which will continue to be maintained/enhanced.

    Yaz, in your case, where you have an existing Java library that you want to call from a native Cocoa application, that will continue to work just fine in the future. You'll just have to write the Cocoa parts in the native Objective-C Cocoa APIs. To access your native Java code you'll use the Objective-C/Java bridge directly. Have a look at NSJavaObjectNamedInPath() and NSJavaSetupVirtualMachine().

    Does that make any more sense? You know that the com.apple.cocoa classes are mostly just bridged to the Objective-C implementation, right? So it's possible that Apple will add methods or classes to the Objective-C implementation and not update the com.apple.cocoa Java bindings, right? That's all the Apple documentation was referring to. ... at least, I think so :) Certainly makes the most sense to me given the context of the comment and the history of the Java and Objective-C bindings.

    1. Re:Cocoa-Java vs Java-Cocoa by Agave · · Score: 1
      I wrote:
      You'll just have to write the Cocoa parts in the native Objective-C Cocoa APIs
      ... IF you want access to newer Cocoa functionality that has not been exposed in the Java interface.

      I think it's important to point out that existing applications and applications covered by existing functionality will continue to work without changes.
  52. Java is blazing on Intel by Stu+Charlton · · Score: 1

    It's my opinion that a CPU-intensive Java application on Intel or AMD will almost always smoke SPARC by a major factor. (I work for BEA, but I don't speak for them.)

    For thread/throughput intensive applications, SPARC may win vs. P4 or Xeon (especially the multi-core SPARC models), but against Opteron or Itanium it's probably going to be a wash.

    Generally we look at SPEC benchmarks when capacity planning, there is no inherent CPU advantage on the Sun JVM on Intel vs. Solaris (though the Solaris VM does have extra memory options like using Intimate Shared Memory which can be a benefit for large heap garbage collection).

    And then there's our JRockit VM which only runs on Intel and it's been known to be extremely fast... though we're eventually going to port it to other chip architectures.

    --
    -Stu
  53. Re:Apple has been advising against integration for by Anonymous Coward · · Score: 0

    Swing isn't nearly high-level enough to create a single interface which works well everywhere. It'll always end up seeming odd on everything other than your primary platform, with buttons not in the conventional places and menus with unusual captions.

    I think it's far better to implement a portable core and then build several user interfaces atop it. That way your UI can be made specifically for each platform and the user experience will be much improved. Of course, you can also write a Swing UI to handle the stuff you don't support directly. If you design it right, the platform-dependent GUI code should be minimal.

  54. i.... by SolusSD · · Score: 1

    dont give a damn anyway.. java doesnt do it for me.

  55. Apple has never done a great job on Java by gregluck · · Score: 1
    I support Mac OS X on my open source projects ehcache, ehcache-constructs and jpam. I also have a commercial app, simonsayssoftware.com.au that runs on Mac. I am not overly concerned about the lack of Cocoa bindings. You typically use Java where you want to cross platform. Using proprietary OS features is a committment to maintaining multiple code bases, something I have managed to avoid in my Mac Java coding.

    Apple has long struggled to deliver a first class Java implementation. There Java version is always 6-12 months behind the release from Sun. They do not have a -server option which is what most application servers use.

    JBuilder 8 and 9 were not available for Mac because the Java was too broken.

    Java 5 is not available in auto update but is a separate download. It does not some with the src.jar or the javadoc. At the moment you need to copy those missing files from the Linux version.

    Java was missing from the 200 new features in Tiger, although they could have included Java 5.

    So, this announcement is more of the limited support for Java that Apple has been giving us for a long time.

  56. Isn't NeoOffice/J written for Cocoa/Java? by Per+Cederberg · · Score: 1

    Isn't NeoOffice written in Cocoa/Java? Quite an important application for Mac OS X for some...

    1. Re:Isn't NeoOffice/J written for Cocoa/Java? by Teancom · · Score: 1

      I had forgotten about that, but it doesn't go against my primary statement: this doesn't affect any app that I actually *use* :-).

  57. It's about time by tim1724 · · Score: 1

    The Java version of Cocoa was never very well supported (lots of features not available) and the documentation always sucked. Plus, it was hard to use, as Java and ObjC have a lot of big differences which made using Cocoa APIs from Java very awkward. You pretty much had to learn the Objective C version of Cocoa first anyway, before trying to use the Java version, in order to really get it. And at that point you might as well just write your program in Objective C. (Unless you were just trying to put a native interface on top of existing Java code.)

    Also, Cocoa and Carbon have yet to reach feature parity ... when you complain, Apple will just tell you to call the Carbon API, which of course you can't do from Java. So in addition to Cocoa features which weren't available in Java, there were plenty of things which aren't in Cocoa yet and were thus not available to Java.

    The Java version of Cocoa was never terribly popular, because it was weird, hard-to-use, lacking features, and most Java programmers want to write platform-agnostic code anyway. (Although for any real application you have to, as Mac users tend to expect a GUI which matches the Aqua Human Interface Guidelines.)

    Apple would be better off promoting the Python-ObjC bridge, PyObjC. (Or Camelbones for Perl). Python and Perl fit into the Cocoa model much better than java.

    Of course, Apple needs to continue to improve their Java environment, with improved Swing support, and perhaps some new com.apple.swing.* classes to add some of the additional Cocoa widgets to Swing.

    I'm guessing Apple dropped it because too few people were using it, and it was just too hard to support. (The big differences between ObjC and Java [such as memory management, and the whole late binding thing which makes ObjC so fun] made it a lot of work to expose Cocoa APIs in Java, and in some cases were really ugly and difficult to use as a result.) Also, future integration between Cocoa and Carbon (I want to see HIView and NSView cooperate in a single window, damnit!) may have further complicated things.

    --
    -- Tim Buchheim
  58. Re:Java scares the crap out of people! by jcr · · Score: 1

    Apple is ending Java support for Cocoa.

    s/ending/freezing/

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  59. Re:Sun refusing to license/port Java to Apple+Inte by jcr · · Score: 1

    Is Apple having problems with Sun over Apple's transition to the Intel platform?

    No way. Sun doesn't have the luxury of snubbing anyone who wants to ship Java with their products.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  60. Re:Java scares the crap out of people! by jcr · · Score: 1

    Java scares companies like Microsoft and Apple because it has the potential to make their closed platforms irrelevant.

    No, it had the potential to do so. They tried, and they failed. It was Game Over for Java as soon as you had to ask the question: "Which Java"?

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  61. Tim Hortons by Anonymous Coward · · Score: 0

    So what you're saying is that it's an IceCap. mmm. IceCap http://www.timhortons.com/en/menu/menu_products.ht ml

  62. Hmmm... Java/Tk? by argent · · Score: 1

    Having to take these extra steps defeats the object of a cross-platform UI library. The library should be handling this stuff.

    Maybe they need to provide Java bindings for Tk, because it does a pretty good job of providing a compatible look and feel on any platform, including automatically putting the menu bar in the right place on Mac and Windows.

  63. Anyone else have strange characters popping up? by mclaincausey · · Score: 1

    After upgrading, Cocoa apps have individual characters popping up in shadowed yellow boxes, as if I have moused over a button and a description popped up. It's very strange and very annoying.

    --
    (%i1) factor(777353);
    (%o1) 777353
  64. I vote by Anonymous Coward · · Score: 0

    I don't give a damn