Before now, Apple required that all Java releases be sent to them for testing and then Apple was releasing them to users. Now the hardware and software has gotten powerful enough that Apple doesn't feel that this middleman testing is needed. And so there will be no more 'Apple approved' runtimes.

it's actually better for all because under the old system Apple's Java was sometimes a version or two behind the game. To the point of being a security risk, or potential one.

You either develop with apple technologies, like Cocoa, or you don't have to develop for the Mac. There is a major overhead using 50 different technologies to develop an OS. These technologies are for convenience, to minimize the amount of code required to be written, and to lessen the understanding required by the developer of the actual system they are developing for.

On iOS, Apple was sure to make one thing clear: You develop with UIKit, and its API's. That's it. They don't want to be supporting other people and bogging ourselves down. UIKit is more than capable as a UI development framework, and even beats Cocoa (an industry leader).

Moving onto Mac OS X, Apple has decided that if it wants to support devices like a 1.4Ghz MacBook Air, then it needs to pare down its OS to avoid running multiple runtimes for nothing. There's no reason to have bloatware for the sake of developer convenience when you have 20% of the US computer market. Developers need to get with the program and deal with it: You're either with Cocoa, or you aren't. And to be honest, there's not that much difference. Except overhead on devices that realistically don't need it.

This is about Apple stripping away bloat from its OS, and streamlining developers to Cocoa. A good idea indeed.

You seriously believe all those Java developers using Mac OS X are developing FOR Mac OS X?

Sorry, that's one big misconception.

All the applications I develop for my company are developed on Windows for UNIX. That's why we use Java. I can also protoype my applications on Mac OS X and still deploy to UNIX or Windows without a rebuild.

That's the power Java has that no other Programming API currently has.

You seriously believe all those Java developers using Mac OS X are developing FOR Mac OS X?

Sorry, that's one big misconception.

All the applications I develop for my company are developed on Windows for UNIX. That's why we use Java. I can also protoype my applications on Mac OS X and still deploy to UNIX or Windows without a rebuild.

That's the power Java has that no other Programming API currently has.

So apple should promote bloat in their system to support devs on other systems? Apple has a responsibility to it's users with performance, not just to developers.

Speaking of journalism, can you cite your sources on Oracle committing to support Java on the Mac?

Hey, Daniel, nice sockpuppet account! You did that just for me? I'm touched! Hey, if you want to be a journalist, not just a blogger, I recommend doing some investigative *journalism*. Maybe call your sources at Oracle or the guys who used to work for Sun? Or your insiders at Apple? (This is Apple Insider, isn't it?) You know, as opposed to just being a "reporter"... Don't just repeat the facts that somebody else discovered, dig down, connect the dots, find the story! C'mon, every Journalism professor on the face of the planet bangs this into your head from day one!

What is Oracle's incentive to assume production of the Macintosh JVM ?

Uh, because that's what they do for every other platform including Windows, Linux, and various *NIX flavors?

As background information, Apple only rolled their own JVM when Sun/Java was at the pinnacle and it wasn't all that certain that Sun was going to bother supporting OSX. So Apple made their own OSX-friendly JVM. Now Java needs OSX more than Apple needs Java, so they are putting that responsibility back where it belongs. Trust me, this way developers will get more frequent and timely updates vs. what Apple has managed to get out the door in the past handful of years.

You're confusing things. Java is strong on the server, especially among Fortune 500 company, and your reasoning that Java is only good for GUI development is absolutely specious. I work for a Fortune 500 company doing Java server-side development, and I can assure you that Java's going nowhere.

Where did I say it was only good for GUI development? Don't assume things about people you are replying to. I did server side Java dev for 9 years before switching to .NET a couple of years ago.

Fact is, every place I have worked the IT department guys are Windows fanboys, they hate Linux/Solaris and can't wait to go all Windows on the server side. When that happens it will be short order before management wants to use pure Microsoft dev tools too. If you care about your career jump ship like I did.

Good Article. Hopefully this frees up some developers to work on Cocoa.

Cocoa is faster than Java and faster than managed .NET, in fact the whole idea of solving Run Anywhere by using a VM at the app level seems to be an idea that it fizzling out. Products like VMware which solve the problem at the hardware level are getting much wider adoption.

I predict Java will die and C# will lose it's CLR and go back to native code, and Objective-C/Cocoa will go from strength to strength.

So apple should promote bloat in their system to support devs on other systems? Apple has a responsibility to it's users with performance, not just to developers.

Your argument would stand if you were somehow forced to use java on your system, or if java runtime were loaded by the OS each time you boot. None of those assumptions are true.

What Apple are doing is basically saying to Java developers who were somewhat responsible for making the OS popular among developer circles, is thanks, we have used you to get to this point but now fuck off, we have no need for you any more.

I know for sure I will not only not be buying another mac for my development purposes, but will be installing Linux on my existing Mac hardware to leverage my hardware investment.

I live by writing software (not for Mac since no one uses it in the enterprise or otherwise, and the users that do use it mostly browse internet on it anyway and are usually confused/affraid of technology and that's why they use Macs to begin with).

What Apple are doing is basically saying to Java developers who were somewhat responsible for making the OS popular among developer circles, is thanks, we have used you to get to this point but now fuck off, we have no need for you any more.

That argument would hold a lot more water if Microsoft were maintaining their own JVM for Windows and the Linux "community" (all six of you guys ) were maintaining a Linux JVM for the myriad variants of Linux.

So apple should promote bloat in their system to support devs on other systems? Apple has a responsibility to it's users with performance, not just to developers.

What bloat? 100MB in your system folder, compared to gigabytes and gigabytes of assorted printer drivers, foreign languages, all of Apple's pre-installed iLife apps that you might never use, etc. Disk space being what it is, none of these are really an issue these days.

Java on the desktop for Mac-targeted consumer applications doesn't have much point (with one or two notable exceptions). The real point of Java is for the professional, scientific, engineering, educational and enterprise markets, where Java is absolutely essential. If Apple drop Java support (which I don't think this announcement means, just that they don't want people to write App Store apps using it) they would lose all credibility in those markets, and among developers for those markets.

For example, I recently worked on the development of a large web app for a Fortune 500 company. Support for Macintosh wasn't a high priority goal, but there were enough developers on the project using their own Mac Book Pros for development that they made it happen more or less off their own backs.

Or think of a large lab or university faculty suddenly turning round and telling all its staff and students "don't buy a Mac, or if you do make sure you don't upgrade beyond Snow Leopard, else you won't be able to run any of the simulation and training software you're going to need. Get a Windows or Linux laptop instead. Oh and while you're at it, you may as well get an Android phone too, because all our Mac developers have left now and we've abandoned development on our iPhone apps".

If Apple convince Oracle to pick up the maintenance of Java for the Mac platform, this may not be a bad thing. Java is maintained by oracle for Windows and Linux (not by Microsoft of the linux community), so if they take on one more, we might actually get more timely releases.

If Java goes away completely, then that could be a very bad thing. Many, many apps rely on Java, more so than many people realize. In business, webex, GoToMeeting, and similar all rely on Java. Many internal applications are developed in Java.

I wouldn't count on Oracle to be open minded or forward thinking, they very well may strangle Java out of their spite for the opensource community.

HTML5 is going to play an increasingly larger roll in desktop & mobile apps, in the long run this will be a good thing but in the short it will be an absolute pain if Oracle pulls the plug on Java sooner rather than later.

A lot of Universities teach Java in their CS programs. A lot of students now buy Mac and a lot of Universities recommend their students buy Macs because up to this point it was a viable platform for Java development/teaching. All that is about to change too. I'm sure they will recommend Linux/Windows from now on.

That also means that in 5 years time, students that now graduate and start working as developers will not be familiar with OS X nor care about Macs too much. This is exactly where we were not such a long time ago....

It's so easy to undo a lot of progress that has been made in making Mac OS X popular among developers with a "simple" announcement like this.

You either develop with apple technologies, like Cocoa, or you don't have to develop for the Mac. There is a major overhead using 50 different technologies to develop an OS. These technologies are for convenience, to minimize the amount of code required to be written, and to lessen the understanding required by the developer of the actual system they are developing for.

On iOS, Apple was sure to make one thing clear: You develop with UIKit, and its API's. That's it. They don't want to be supporting other people and bogging ourselves down. UIKit is more than capable as a UI development framework, and even beats Cocoa (an industry leader).

Moving onto Mac OS X, Apple has decided that if it wants to support devices like a 1.4Ghz MacBook Air, then it needs to pare down its OS to avoid running multiple runtimes for nothing. There's no reason to have bloatware for the sake of developer convenience when you have 20% of the US computer market. Developers need to get with the program and deal with it: You're either with Cocoa, or you aren't. And to be honest, there's not that much difference. Except overhead on devices that realistically don't need it.

This is about Apple stripping away bloat from its OS, and streamlining developers to Cocoa. A good idea indeed.

Well that and partially limiting their liability from an Adobe lawsuit calling Apple capricious for supporting the third party Java but not the third party Flash.

A lot of Universities teach Java in their CS programs. A lot of students now buy Mac and a lot of Universities recommend their students buy Macs because up to this point it was a viable platform for Java development/teaching. All that is about to change too. I'm sure they will recommend Linux/Windows from now on.

That also means that in 5 years time, students that now graduate and start working as developers will not be familiar with OS X nor care about Macs too much. This is exactly where we were not such a long time ago....

It's so easy to undo a lot of progress that has been made in making Mac OS X popular among developers with a "simple" announcement like this.

No, now we are all getting institutional iPhone Developer memberships and going back to teaching C/C++ and then Obj-C in iPhone dev classes. I think Apple sees that sex sells and the iPhone development experience removes the fear of objective-C while providing the sex appeal the students seek. Then Apple desktop development ain't no big thang anymore, you just do the same stuff. Then that gets reinforced after a student sees the Android dev process on Eclipse, because they think one phone can't be that different from another until the see a half bajillion simulators and SDKs to choose from. And that everything is different, with hardly any transferrable skills anywhere else.

Where did I say it was only good for GUI development? Don't assume things about people you are replying to. I did server side Java dev for 9 years before switching to .NET a couple of years ago.

Fact is, every place I have worked the IT department guys are Windows fanboys, they hate Linux/Solaris and can't wait to go all Windows on the server side. When that happens it will be short order before management wants to use pure Microsoft dev tools too. If you care about your career jump ship like I did.

Thanks for your free career advice, which I have no doubt is worth every penny

.NET is not a serious option for non-webapp server-side development because Microsoft has constantly broken backward compatibility with new .NET releases, whereas Sun/Oracle have been religious about it. The methods in java.util.Date that have been deprecated since Java 1.1 are still there. This is the kind of reliability that's crucial to large companies that have mission-critical Java apps. This is especially true for my company where not only backward compatibility but raw performance is important, which .NET still can't match on the server side.

Besides, I've used Visual Studio, and I'm sorry to say that it really doesn't match up to Eclipse as a development tool, but that's just me.

You seriously believe all those Java developers using Mac OS X are developing FOR Mac OS X?

Sorry, that's one big misconception.

All the applications I develop for my company are developed on Windows for UNIX. That's why we use Java. I can also protoype my applications on Mac OS X and still deploy to UNIX or Windows without a rebuild.

That's the power Java has that no other Programming API currently has.

I wouldn't count on Oracle to be open minded or forward thinking, they very well may strangle Java out of their spite for the opensource community.

What spite? Java is still open source. OpenOffice is still open source. VirtualBox is still open source. Glassfish is still open source. Technically, OpenSolaris is still open source. Where did you get this information?

Quote:

HTML5 is going to play an increasingly larger roll in desktop & mobile apps,

Even the W3C recommends against using it.

Quote:

in the long run this will be a good thing but in the short it will be an absolute pain if Oracle pulls the plug on Java sooner rather than later.

You have absolutely no idea what you're talking about. Oracle practically runs their business on Java. They have zero incentive to pull it. What's more, they just convinced IBM to contribute to OpenJDK. Oracle has a strong incentive to support Java on OS X. Whether or not they'll be able to do so with Apple's Swing code is the open question here.

True, but Java server side developers weren't normally developing on OS X either. People tend to develop on the architecture they are primarily deploying on, and not many were deploying on Xserves. I'm sure a few were, but Apple probably isn't going to lose much business from this. It also tells me they aren't making a major play for that part of the business market. Essentially they have declared they won't come out to compete with IBM and Oracle/Sun.

We currently process credit card sales through a Java based system from our provider. We have two options: Select a "dumb," and minimalist interface intended for those completely oblivious to interfacing with their system, or develop our own system using their Java based technology. The "dumb" interface is exactly what it is, dumb. With Java, we're able to provide sophisticated interfaces, like ordering software online and then once a credit card approval is granted, allow the user to download it instantaneously. WIth the "dumb" method, an e-mail is generated, an individual needs to manually wait for an e-mail from the credit card company clarifying credit card approval, and then, once again manually, initiate an e-mail to the customer telling them how to download software.

The "dumb" method is archaic, time consuming, but it's provided by the provider as a means to allow someone to at least provide service, but certainly in a not-so-timely manner.

I should add, this service is not some archaic or unknown service provider for credit card processing, it's one of the biggest providers in the world. I didn't invent the system, that's what they've given us to deal with.

Our options, as of this announcement, are as follows:

Wait for a third party to develop a Java suitable for OS X, and just hope one comes.

Switch to alternate systems that will support the existing regime.

Adapt a different provider, one that's compatible with Apple (is there one???? I don't think so!)

Item 1. is a crap shoot at best. Item 3. likely doesn't exist. Item 2. is in reality, the only solution, meaning if you want to use Apple systems for any serious sort of work, then get off the crack pipe...it ain't going to happen.

Apple and Steve Jobs have a long standing history of remarkable successes, but they also have a history of remarkable failures. For example, just exactly how is it that a system using a much more sophisticated processor and GUI ended up losing a battle for dominance to a system based on a CPU that had to segment memory addresses and a user interface that looked like a terminal interface to a mainframe computer? That's kind of like a finely tuned Ferrari losing a race to an old VW beetle.

I put this decision in the same category, and it worries me extensively because of Steve Jobs own words [I paraphrase]

There's something wrong here in that Apple seems to be misinterpreting, or not caring about users that use their units for something a wee bit more sophisticated than using checking facebook, e-mail, and watching videos. What I truly fear is that we're watching the core operating system being thrown out, in the long term, in favor of elaborate "idiot boxes" capable of little more than an iPhone.

This is a path I'm not willing to gamble on, and now the search for alternate systems begins. It was a nice, 8 year love affair I had with Apple, but I'm afraid I must go crawling back to my ex-wives, Linux and Solaris (if it's even alive) and beg for forgiveness.

I wouldn't count on Oracle to be open minded or forward thinking, they very well may strangle Java out of their spite for the opensource community.

HTML5 is going to play an increasingly larger roll in desktop & mobile apps, in the long run this will be a good thing but in the short it will be an absolute pain if Oracle pulls the plug on Java sooner rather than later.

Quote:

Originally Posted by dsect

No actually, this is the problem. It runs terribly everywhere and subverts the mission of the mainframe: thousands of users simultaneously. Get it off the mainframe!

Our Java apps run just fine with thousands of users, thank you very much.

We're trying to decommission all of our mainframe apps because they're just about impossible to maintain and have archaic interfaces. Add to that the fact that they're difficult to audit and thus to meet our regulatory obligations.

True, but Java server side developers weren't normally developing on OS X either. People tend to develop on the architecture they are primarily deploying on, and not many were deploying on Xserves. I'm sure a few were, but Apple probably isn't going to lose much business from this. It also tells me they aren't making a major play for that part of the business market. Essentially they have declared they won't come out to compete with IBM and Oracle/Sun.

Apple made a major commitment to their customers to providing Java on Mac (as opposed to Sun doing it) back in 2000. It's their responsibility to ensure an orderly transition to an Oracle-maintained JVM if they won't do it themselves.

Apple made a major commitment to their customers to providing Java on Mac (as opposed to Sun doing it) back in 2000. It's their responsibility to ensure an orderly transition to an Oracle-maintained JVM if they won't do it themselves.

I guess I would say the first steps in that look a lot like 1.6 update 3.

We'll have to see how the rest plays out, it might be OK, it might be a disaster. A lot depends on Oracle now.

We also see Apple is consistent over the long haul in dropping explicit support for legacy capability that doesn't align with their core business and OS performance goals. That's not to comfort, it just is what it is and has contributed to where OS X and iOS technically are today.

What spite? Java is still open source. OpenOffice is still open source. VirtualBox is still open source. Glassfish is still open source. Technically, OpenSolaris is still open source. Where did you get this information?

Even the W3C recommends against using it.

You have absolutely no idea what you're talking about. Oracle practically runs their business on Java. They have zero incentive to pull it. What's more, they just convinced IBM to contribute to OpenJDK. Oracle has a strong incentive to support Java on OS X. Whether or not they'll be able to do so with Apple's Swing code is the open question here.

JavaCowboy, the only reason the W3C recommends against using it is because it's not finalised and won't be until sometime later next year where it will most likely have a lot of changes made to it in the interim.

Oracles plans so far have not been impressing much of the Java Community at all but with the concept of OpenJDK it will be interesting to see what the acceptance of Java 7 will be like - remember with the events of Sun over the last couple of years, Java 7 is running incredibly late and things just seem messy.

There is still a need to have more companies on board to support Java going forward, unfortunately many of these companies have already been swallowed up by other companies or ventured into creating the Java World for themselves (Android for instance).

As long as Apple is part of the OpenJDK initiative - not so much on implementation but at the very least give feedback - then I'm all for continuing my development on a Mac OS X platform provided we see an Oracle release of the JDK for Mac OS X.

Apple made a major commitment to their customers to providing Java on Mac (as opposed to Sun doing it) back in 2000. It's their responsibility to ensure an orderly transition to an Oracle-maintained JVM if they won't do it themselves.

That commitment was only based on the fact that Sun originally had the Mac Look'n'Feel which Steve personally called up Sun Microsystems and threatened to sue if they did not remove it from the JVM - besides even I doubt that Sun could have maintained the Look'n'Feel independently of Apple.

It wasn't a case of "Let's come up with a mutual solution", Steve Jobs literally threatened Sun with a legal notice. The same thing happened with Sun's Project Looking Glass Operating System, Apple do not seem to want to negotiate.

What Apple are doing is basically saying to Java developers who were somewhat responsible for making the OS popular among developer circles, is thanks, we have used you to get to this point but now fuck off, we have no need for you any more.

First they deprecate Java, now Flash. Pissing off Oracle and Adobe is not a great way to build marketshare especially in business.

I'm not sure this is going to piss off Oracle - more the developers - as Oracle now has the opportunity to properly support Java on Mac OS X without the concern of stepping on Apple's toes in regards to UI patents etc (hopefully). But Oracle will now need to be more responsible in support Java on the Mac OS X platform which, since Mac OS X is UNIX based, shouldn't be too big a task.

And in cold hard business terms, the dollars Apple doesn't spend implementing the JRE on OS X go to development dollars on projects that are bringing users in at a rate a couple orders of magnitude higher. Anyone that doesn't think a decision like this has been found to have little downside financial risk isn't really thinking it through. Sure you can not like it, not like it a lot, but I think this is more because we don't know about Oracles plans than anything else right now.

Uh, because that's what they do for every other platform including Windows, Linux, and various *NIX flavors?

Except, they actually don't, despite what Jobs said. Every operating system Oracle supports Java on is an operating system Oracle itself sells. You can buy Sun x86 systems running Solaris, Linux, and Windows from Oracle. And Oracle does not produce JVMs for any other operating systems than those three. IBM implements Java for IBM systems, HP develops Java for HP-specific systems, etc. If Oracle doesn't sell it, Oracle doesn't ship Java for it.

So, unless Apple is licensing OS X to Oracle as an OEM like Microsoft licenses Windows, there is no particular reason to expect Oracle to support Java on OS X. Do you expect there to be any Oracle-made Mac clones in the near future? Because I sure don't.