Email from Steve Jobs re: Java and OS X
flic.kr
flic.kr
"Sun (now Oracle) supplies Java for all other platforms. They have their own release schedules, which are almost always different than ours, so the Java we ship is always a version behind. This may not be the best way to do it"
--------------------------------
In reply to:
"Mr. Jobs:
I am the CTO and founder of a Software company based in Philadelphia. We create and sell Enterprise software into the health care space.
Our software is Java based, and runs on both the server and desktop. We have been in business for over 12 years now, and are a healthy growing company with about 180 employees.
I am a big Apple customer, as is my company. We love developing and testing Java based software on OS X.
Today in the news were stories like this: http://www.theregister.co.uk/2010/10/21/apple_threatens_to_k...
and here's another example: http://news.cnet.com/8301-31021_3-20020338-260.html
I am hoping you would consider commenting either to me or via your PR channels what are the future plans for the Java programming language and platform on OS X?
One last note - a growing trend over the last few years at all the software conferences I attend is the popularity of the Macbook laptops. Go to any non-Microsoft focused developers conference and the rooms are typically dominated by Mac laptops. One major reason for this is that OS X is a great platform for Java developers.
thanks
Scott Fraser CTO, Portico Systems http://www.porticosys.com
"This email message is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message."
It is amusing that these stern words, particularly regarding distribution, never seem to apply to the sender.
Of course, they never apply to the recipient either, absent further contracts or social pressure. You can put whatever you want in your signature; it doesn't make that able to be enforced.
As a grunt programmer while working for one large defense contractor some years ago, I put something similar to the following, embedded in a paragraph of mind-numbing boilerplate and no one up the food chain seemed to notice.
If you are not the intended recipient, you need not do anything. Men in black will come to erase your memory. Have a good day.
That would be a question for Oracle at this point. I think Apple just let us know what their plans are for Java.
My personal opinion on the issue is one where Apple and/or Oracle decided that Oracle should control the release schedule of their own software, just like they do with every other platform. I really don't understand why this is such a big deal. Apple decided to not do something completely different and adopted a "normal" behavior and everyone freaks out, just like they do when Apple does something different.
Now that I know it's Java, I'm not surprised.
Since I got such a big productivity gain from this change, I'm looking for other things I can do. I'll be due for an upgrade in another 4-6 months and I think I'll get an SSD.
I almost have to admit that the 9 window limit on the iPad's Safari isn't a bad thing. Forces me to instapaper stuff right away and close the window.
Friends and family literally have literally made a novelty of exposing safari when they come by to wonder at how many multi-tabbed windows I have open at once. :)
By default it just sits there waiting for an app to spin for 5 seconds, at which point it starts sampling the app's activity (as in sample(1)). You can set preferences to make it watch a particular named app, and can set the minimum spin time required for it to notice and start sampling the spinning app. The app produces a text report of the output so you can see what functions it's spending its time in.
Might be useful. It seems like you shouldn't be spinning that much, even if you're multitasking.
;)
Anyway, I get what you're saying (even though I've seen many web apps that I hate as well). The question is simply whether the Mac is a software platform or a consumer appliance. If it's the latter, then I understand the idea of Apple curating every single piece of software that goes on those machines. Otherwise, the idea of banning everything you or Mr. Jobs don't like is inconsistent with the purpose of the product.
He isn't banning anything. Nobody is saying that Java won't be allowed on OSX, just that there is no longer a need for Apple to maintain the development.
http://www.oracle.com/technetwork/developer-tools/sql-develo...
That being said, I still use it because I haven't found anything else free that I like. I suppose if I use a tool every day like this one, I should pay to find one that works better.
Combo it with JDeveloper and a local instance of Weblogic, and you can pretty easily eat up 3Gb of RAM just opening up the standard set of Oracle dev tools.
I have a java app that I wrote for my own use. It was written, using xcode, on G3 and G4 Macs. The day I moved to an Intel Mac, the app's performance improved dramatically. You can slap something together (with java) in a hurry and call it an application. Or you can take the time to look at it, refine your algorithms, and make it perform quite well.
Some of the GUI issues, however, are a limitation. While I don't know what the real issues were, I would not be surprised if keeping the java interface elements, as close to the Mac GUI, was a contributory factor here. The Mac GUI is evolving quite quickly. Perhaps java could not keep it.
I've heard Cyberduck uses Java as well. While I don't use that one any more, I've heard it's very popular. I could not even tell it was a Java app.
edit -- turns out I use a lot of Java apps myself, more related to work, though: Pentaho Studio, SQL Power Architect, etc.
Not only they're about to move desktops/laptops into the App Store's walled garden, they are showing they can drop support for major technologies like Java or Flash if they feel like it. This is not good news for anyone but Apple, certainly not anyone calling themselves "Hacker".
Apple aren't about to "move desktops/laptops into the App Store's walled garden", but rather they're about to add an optional place to purchase apps. It's an addition that I think may have some benefit for some users and smaller indie developers. I can see it becoming the way most people purchase most of their apps in time, but I can never see it becoming the only way to do so on the mac.
They also haven't dropped support for either Flash or Java. The new MBAs aren't shipping with Flash installed; so what? OSX is the only OS I'm aware of that does ship with Flash. Java? Well, Java's not going anywhere either.
As for Java, I knew this one was coming, Jobs and Ellison are good friends and Apple and Oracle are the only two companies that either are not at war with, they really don't compete in each other spaces. So I think Jobs is comfortable with Oracle providing the JVM for their platform.
I am sure that Steve has resigned any worry in his head that Java is going to achieve desktop dominance so it is not a Trojan horse to his platform where it will be used to provide OSX apps in preference over the native OSX development technologies.
Giving it back to Oracle means that the developers get the latest JVM at the same time as everyone else not waiting up to a year as the cycle comes around itself. I think it is a good move on both companies parts. I just wonder why Steve always has to be so vague. I think his showmanship has become so ingrained that he just can't come right out and say it everything has to be a big announcement. I guess I cant fault him, it's his trademark and has served him well.
The App Store will most definitely become the most popular way to find and install applications. Therefore if your app is not in the app store it may as well not exist. The regular user is going to search for the best application within that garden to fulfill their needs which puts all developers at the mercy of Apple to get their app in the store.
I wonder that if this model gains popularity on the desktop, how long it will be before users click that app store icon to find an application they need vs. click the browser icon to find a service on the web that may fit that need.
With strong shift towards web based apps over the past few years it's interesting that a move like this may re-invigorate the desktop app!
People do want native apps (for a bit of humor http://daringfireball.net/linked/2010/10/21/beltzner )because connectivity is not 100% and the fit, finish, and speed of native apps are better. I don't think your wrong, I guess twitter clients kind of prove the point.
You may be able to do what you want on your own machine given enough knowledge/time. The issue arises when a business based on a Mac Java app becomes redundant when Apple feels like it, or when it will become very hard to make a living selling an app Apple doesn't feel is right for the Store.
Once upon a time there was a company called Microsoft who controlled a popular OS. People who called themselves "hackers" generally didn't like it, since they asserted this power to control the product space as well, changing APIs or bundling software to eliminate competition. Apple has gone beyond Microsoft's wildest dreams, and are on track become comparably widespread - I don't think they get a pass just because the standby light has the same frequency as a human heartbeat.
Even if Oracle would provide java, would anybody put so much trust into Oracle, to base the future of his/her software company onto this? Apple again has proven to be unreliable.
I think, this is a serious blow either for java or for Apple itself. Probably we may have to fall back to c, fortran or delphi?
No, but I do know a lot of developers that write Java code that runs on banking infrastructure, that do.
At the last big Weblogic project I worked on, the (many) developers worked on Windows in VMs, on Windows boxes. One advantage being that we could use VM images pre-configured with Eclipse and whatnot set up just right.
Yes, because as we all know, SUN has been a bright example of RELIABILITY in regards to Java et al...
The collapse of SUN, the Swing for the Desktop/JSF/Java FX fiascoes, the Oracle takeover and the recent JCP fights, totally inspire confidence in Java...
They don't want to have to manage complex dependencies in the app store.
Therefore no optional or deprecated packages.
This move doesn't really support the conspiracy theory of an Apple lockdown strategy, although it certainly doesn't give any confidence that such a strategy is not in the making.
I think App Store is a great solution for most users and developers. But not for the particular minority I define as hackers.
That would be suicidal.
Oracle, if the Apple's platform is attractive enough. Note that Sun fought Microsoft to effectively take over Java on Windows. I know, MSFT one was not "pure," still that was the result. And one has to wonder if Apple would be sued the same way, since they also have OSX specific bindings.
The current bet is: OSX just became interesting enough to let Oracle maintain Java on it, if they want and are capable.
As far as I understand, the Java applications that were not already using OSX specifics weren't by any measure successful, and the only famous one is that FTP client, which is actually not a "write once works everywhere" Java app, but an OSX app accidentally written in Java. And it's an open source app. Can you please name some examples for "business based on a Mac Java apps?" Especially those that don't use OSX specifics.
I don't understand this question.
Either it's a Java app (no platform specified), or it's a Mac Java app that does use OSX-specific code.
http://www.javaworld.com/javaworld/jw-10-1997/jw-10-lawsuit....
http://en.wikipedia.org/wiki/Microsoft_Java_Virtual_Machine
As far as I understand Java license doesn't allow you to make a platform specific Java implementation.
So who's then to bet his business on Mac Java apps? The only potentially "safe" approach is not to depend on Mac specifics. But is there any example of a profitable Java app (which made profit by targeting OSX customers) applying the mentioned "safe" approach?
And AFAIK specs are made for "write once run everywhere."
> it would mean you could never distribute the JRE together with any sort of extra libraries.
You can as long as you are using only what Sun (now Oracle) approves.
> Even the Sun/Oracle runtime ships with non-standard extensions
They make the rules, so what they do can't be used as an argument.
Yes, my understanding was that the MS implementation did not pass all the compatibility requirements. Adding extra functionality is entirely orthogonal to that point.
IBM's, Azure's and all the J2ME implementations come with proprietary extensions and are blessed by Sun/Oracle. I don't follow your argument.
I don't have anything more to add than to quote you (the keyword is blessed) and also point to my previous posts. As long as you're forced to get the blessing before you introduce the interface to your own platform (or be forced to leave something out because you know it won't be blessed) why should it be in your interest to maintain the technology of others if you have your own technologies and a platform that's attractive even by itself?
- .class files compiled on Apple's JVM work fine on other JVMs
- Source code written for Apple's version of javac will compile fine on other Java compilers.
To my knowledge, Microsoft's JVM violated both of these requirements, which was Sun's bone of contention. (Android's Dalvik is in similar violation, but doesn't pretend to be "Java" - they're being sued based on patents IIRC)
Technically, you don't need to compile "on JVM" but "for JVM." And it doesn't seem to be as you describe for most of the cases (in Sun's words, 98%).
> Microsoft's JVM violated both of these requirements
AFAI understand it was far more subtle: the language (the source form representation) was extended with the features which functioned only on Microsoft's implementation, and only such classes were affected. See
http://download.oracle.com/javase/1.4.2/docs/guide/deploymen...
for a list of issues of switching from Microsoft VM based upon Java 1.1 to Sun's 1.4.2. The list appears to be very unimpressive.
What Microsoft did was extend the language to include an annotations feature (making it source-incompatible), and extending the JVM spec to include new opcodes (which crashed everyone else's JVM). Had they extended Java the conventional way there would not have been a problem.
They have Java based apps for the Film industry. I have to support them on OS X. They are hideous to use, hideous to install and maintain. I don't know if they use OS X Java specifics, but some how I doubt it.
They were broken by Snow Leopard. Took them months to fix.
My experience, purely as a sysadmin and user, is that cheap and cheerful cross platform apps seem to be much nicer when written for Adobe Air.
gcc is GPL, so they can at best make it difficult to get them free, but clang is racing ahead and it is BSD.
I just hope that my faith in Apple that they won't do something ugly like giving free dev tools when they needed developers and switch to charging for them when they got the app market they wanted.
I think there is now room in the market for a company with good design sense to make Ubuntu machines!
BUT you could argue that the announced OSX features are more or less Ubuntu Software Center + some bits of Gnome Shell.
The status quo is powerful. There was no status quo on phones, that’s why Apple could just come up with one. It would not be in Apple’s best interest to change the rules so radically on the Mac.
It don’t know what Apple will do in a decade but I’m fairly confident that there will be no rapid change in what Apple allows you to install on your Mac. Steve Jobs already said that you will be able to install whatever you want on OS X Lion which keeps OS X safe at least until about summer 2013. I think it’s a bit premature to complain now.
Steve Jobs did not outlaw manual installs of any software on desktop Macs..he just made the MacApp store feel Boutique or exclusive to consumers..
Hey, you've got 90 days to ship a competing app store for the Mac. Valve has already done so with Steam on Windows and Macs, it isn't insurmountable. What's going to make your one better than theirs?
I'm confused by people being upset with the mac app store when FOSS has been doing the same thing for years with package management software. Heck, Cydia is even based off of a *nix package manager.
I don't want to call it fanboyism because I know you have other reasons for disliking their new app store but after seeing how well it works in Ubuntu, why could this possibly be a bad idea?
Not shipping Flash on the MacBook Air was pretty understandable given the noise Adobe made about the OS X 10.6 release version of Flash. The whole build & release cycle seems to take longer than it takes Adobe to patch Flash. So, it is probably a good thing to train users to go to Adobe's site and get the newest Flash.
Dropping an Apple version of Java will probably be a good decision and actually help Java developers. If Oracle is actually taking over then OS X will most probably (given Oracle's catalog of OS X software) be at the same version as all the other platforms instead of the current delay.
Every time I reinstall an OS, Mac or otherwise, I find myself having to update Flash. If I've got to do that, I may as well install from scratch.
Not only they're about to move desktops/laptops into the App Store's walled garden, they are showing they can drop support for major technologies like Java or Flash if they feel like it. This is not good news for anyone but Apple, certainly not anyone calling themselves "Hacker".
The problem is that you're jumping to some serious conclusions. Nothing about the mac app store demo showed banning of applications from a different source. You're assuming that's their plan, but I don't think it is. The app store makes perfect sense from an end user perspective. One of the great things about linux are the package managers. A central location with lots of software that I can install from AND get updates from.
There is no flash on the iPhone for many well document reasons, so I'll guess you're referring to no flash on the new MBA. Given that any version of flash is out of date and a huge security hole as soon as it's installed, it makes complete sense to force users to go get the latest version when they buy their machine. It wasn't long ago that the shipping version of flash on osx had a huge security hole that made Apple look bad.
What I would like to see if Apple let Adobe put their flash player into the new mac app store. This lets Adobe manage the updates like any other 3rd party developer.
As a 'hacker' I look at what is. Right now my MBP works great and has all the support I need. If Apple does end up going down the path of locking out all other software and/or the ability to hack and develop I'll switch back to linux. At this point though, it's much ado about nothing.
2. They're not dropping support for Java, they're just not making it anymore. If Oracle makes a version of Java for the Mac, then it will be supported. If not, then losing Java must not be that big a deal right?
I think if Oracle quickly steps up to the plate and promises to fill Apple's shoes, this could be a good thing. Otherwise, this could very well be another downside to Oracle gobbling up Sun.
Straight from the source means ... ta-da! "Optionally installed". Therefore, no Java-based apps in the Mac App Store.
Bad for Java app developers on the Mac - Apple's app store is likely to be a very good channel for sales - unless Oracle step up to the plate with a (cross-platform) app store. But good luck with that - it won't be so visible, cross-platform apps are generally dodgy, and it doesn't have Steve Job's magic pixie dust.
I find it hard to see the issue, if you are using Java to build an app you are developing a Java app not an OSX app. You are targeting a different run-time than a standard OSX app. To me it is no different than Apple saying you can't sell an Adobe Air app in the app store. or a C# app running on Mono. I see a very valid reason why Apple would instate such a policy. Even though in the past Apple supplied the run-time for Java it still did not make it OSX it was just a very well tailored JRE for OSX, you still write Java apps and not OSX apps if you target the JRE.
All the jars and whatnot, I don't think that's the model Apple has in mind for things distributed via the App Store.
"Apple is now the biggest client for WebObjects, relying on it to power its online Apple Store, MobileMe online services, and the iTunes Store."
>Apple Computer fournit sa propre version de Java. Utilisez la fonction de mise à jour du logiciel (disponible dans le menu Apple), afin de vérifier que vous disposez de la version la plus récente de Java pour votre Mac.
Negative: He gives absolutely no assurance or even hint that there is a plan that this will really happen, or that Apple will be helpful in facilitating it.
I always wondered why SUN wouldn't also ship an OS X version, they already had to support Windows, Linux, Solaris, with mostly native L&F for Swing.
You can't expect Oracle to spend resources and ship for OS X unless Apple gets out of the way. They are deprecating Apple's runtime here, nothing else.
Apple did their part in dropping their own Java version. Reading these comments, it seems likely Oracle would want to step in.
Where on earth did I imply that? What would be wrong with:
"We intend to offer whatever assistance we can to third party JVM providers ensure that Mac users still have an excellent Java runtime available to them"
Instead we have a bold and inflammatory headline saying "Java Deprecation" and on information about whether Java will continue to exist on Macs at all in the future.
"open-sourcing" it isn't necessary.
That will be $0.10, Sir!
Large part of the web servers and back-end apps run on Java, and no Java on Mac means no macs for many camps. As noted Apple's own web infrastructure is Java based. Facebook, built maybe the world's best performaning databae server in Java, that stores data for 200M+ daily users (500M+). Google runs large parts of their infrastructure on Java. I have seen benchmarks on number chrunching apps where Java beat C++ performance (this is due to JIT, which almost every JVM has today - some only enable in "server mode" though - means that the Java byte code runs as machine code for the exact processor being used at runtime), not true for all types of number crunching but for some.
Java is not a one size fits alls solution but there are a large number of application areas for Java and hundreds of programming languages that run on Java Virtual Machine platform.
No Java on Mac is an unlikely scenario for Apple, but time will tell...
I am a Mac user and had never even realized that Apple uses a special distro and Java.com does not offer a JRE/JDK/etc. download for OS X.
After Java is removed, how will Mac users run java apps? What will be the easiest way to get Java back on OS X?
First, with some quick Googling/Wikipedia-ing it seems that Java is released under the GPL. Wouldn't the viral nature of GPL make this code from Apple open source?
Second, if Apple cared enough to invest in building the code to make Swing seem native-OSX in the first place, one would assume they care enough to ensure that it stays available ongoing. Otherwise Java applications begin to drag down the 'desirability' of the OSX platform.
No. Apple's Java was based on code licensed from Sun long before Java was released under the GPL. Additionally, Sun's release of code owned by Sun under the GPL does not preclude Sun from licensing that same code under other terms if it so chooses. That's the basis of the dual-license model used by other projects like MySQL.
I hope that they ensure a smooth transition of the responsibility to Oracle and perhaps even hand over some of the existing work, if licensing permits it.
Apple is a big WebObjects user. And WebObjects is 100% java based. This means that developers use Eclipse/WOLips/java to develop their WebObjects applications and java on the server to deploy.
There is also OpenJDK and it looks like that will be the route that developers will use to get java for OS X. This may actually be good. You will not have to rely on OS X releases to get java. The only thing that doesn't look good is Swing unless OpenJDK implements Swing using Cocoa instead of X11. :-)
Anyway, Java developers despite of being geeks, make a good PR for Apple. Just look at laptop covers on any given Java developer conferrence.
I don't think apple and oracle had a dialog going here, because why would apple want to look like the bad guy?
So if Oracle says "we'll do this", then great. Oracle will be appreciated again.