January 17, 2007Apple doesn't like Java, never has, probably never will
In a recent interview, Steve Jobs mentioned that the Apple phone didn't contain any Java: Java's not worth building in. Nobody uses Java anymore. It's this big heavyweight ball and chain. I find this statement quite ironic considering that Google Maps, which Jobs proudly showed during his keynote, is a Java application on all the other platforms, but at any rate, it just confirms the fact that Apple has never liked nor embraced Java, despite statements such as:
Apple never delivered on this promise. Quite the opposite, actually: ever since this keynote, Apple has been notoriously slow at releasing JDK's, and the recent deprecation of the Java Cocoa bindings is yet another clear indication that Steve Jobs wants you to program in Objective-C, not in Java. The height of irony is the claim from the Apple web site that:
Notice the clever wording: "mass-market" (excludes Linux) and "ready-to-use" (excludes Windows). Amazingly, this claim is entirely accurate. Hats off to Apple's technical writers (and to be honest, Apple did recently release an early version of the JDK6, so it looks like the Java programmers inside Apple are finally having their way). Back to Jobs' interview, the distortion field is in full force with the following statement: You don't want your phone to be like a PC. The last thing you want is to have loaded three apps on your phone and then you go to make a call and it doesn’t work anymore. In two sentences, Jobs manages to bash the PC, justify the phone lock-in and subtly push the blame on operators if something goes wrong. I can't say I blame him for that, especially after the Cingular CEO was heard claiming that they made "Apple bend" to their will, while all the evidence seems to indicate they basically signed a blank contract with Apple, and that even the Cingular executives didn't get to see the Apple phone until the keynote. Still, I agree with Jobs about the overrated importance of being able to upload applications to phones for a mass market. If you ask random people on the street why they chose their current phone, the top two answers will be:
Meet these two criteria, and you get a chance at selling your phone to a lot of customers. Still, there is a lingering paradox in the fact that Jobs is actually aiming for 1% of this one billion strong market. Is the Apple phone designed for high-end customers or the mass market? The reality behind the Apple phone being a closed handset is actually quite simple, and it has nothing to do with the cellular network, nothing to do with Cingular, nothing to do with grand strategy or the slim chance that a third-party application might render the phone incapable of making calls : Apple wants to control everything on their phone. I actually don't see anything wrong with that, and if the iPod is any indication, it's a strategy that has been working very well for Apple. If there's something we've learned about Steve Jobs over the past twenty years, it's that he always wants to have things his way. Sometimes, it works great (iPod, Mac), and sometimes, it fails spectacularly (NeXt). Where will the Apple phone score on this scale? If Apple can drop the price significantly within the first months of launch (under $250), they might hit their ten million targets. Otherwise, it will end up in the PDA niche. Still, I can't help but wonder why Jobs is suddenly switching to this aggressive rhetoric. Bashing competitors (let alone partners) never results in anything good, and if anything, it makes you look insecure and unsure of the strengths of your own product. Let's hope Steve Jobs won't follow in the footsteps of Mc Nealy and Ellison: their attitude might have made them millionaires, but it also stained their record in computer history forever. Posted by cedric at January 17, 2007 10:19 AM Comments
Not sure where the beef is here. Random comments: * Face it, he's right: Java on the client (which is what he means) was pretty much DOA (possibly modulo J2ME). That isn't Apple's fault. * Apple's head-fake at Java support definitely was a bummer. But ObjectiveC has been the guts since NeXT. You can't really blame them for deciding that it was too much work to support two first-class programming languages. The Java/Cocoa bridge got deprecated over a year ago. * Your main gripe is that Jobs needs to speak more nicely to his competitors? Please. I think the rhetoric is too soft, if anything. MS is down and I say kick 'em hard. ;)
While I agree with you in relation to Apple's increasing disinterest in Java, I think Jobs was referring to Java on the browser, not necessarily to Java as a platform. He mentioned it along with Flash. Posted by: Aitor at January 17, 2007 12:34 PMI think you mean NeXT ... Oddly enough, when everything else was going back to Objective-C, the WebObjects application server went towards Java. Presumably they were trying to tap into the J2EE market at the time. But then they couldn't sell it any more for $50,000 so ended up giving it away free. Shame, really; the whole point of the Java/Cocoa bindings was to give ease of access across the languages. Pity that the 'osascript' executable, whilst can execute scripts in any AppleScript-compliant languages (e.g. Python, Perl etc.) never had any bindings or support to write anything in any language other than AppleScript. Makes you wonder what the point of a cross-platform scripting language is, as long as that language is AppleScript ... Posted by: Alex Blewitt at January 17, 2007 01:05 PMThere are 3 totally different notions of java in this discussion, and you're mixing them up. 1. Java on the cell phone. a.k.a. J2ME. 2. Java the write once run anywhere language used primarily server-side but there are some desktop programs, like Azureus. 3. Java, as a language platform for writing Mac Os X ONLY tools. This is what cocoa bindings are all about; windows certainly doesn't have cocoa bindings.
#2: The last developments on this front is Apple, for the first time, keeping pretty good pace with sun in releasing JVM versions. I've been on mac 1.6 for a while now. Also, the latest versions of e.g. GWT and Eclipse are very well supported on mac. This isn't something apple has control over, but its certainly a great sign for java development on mac. #3: Apple decided to drop this particular route a long time ago. I agree with the sentiment. Os X's own preferred dev environment (All those Core XYZ libraries, ObjC, XCode, etcetera) is sufficiently nice that adding java to the mix is overkill. ObjC and java are too closely related to warrant supporting the both of them. Combine the (relatively recent) availability of SWT on the mac and the recent focus on making Swing work faster and look nicer by Sun, and dropping the cocoa bindings becomes a very logical step. Possibly most important on topic #3: This is old news. over a year old. In other words, I think you're knee jerking. Apple likes java. Always has. Probably always will. Posted by: Reinier Zwitserloot at January 17, 2007 01:51 PMReinier: I'm quite certain that Cedric has a solid grasp on the distinctions between the different flavors of Java you mention. :) And I think his basic point is pretty irrefutable: Java is not a central part of Apple's strategy on *any* platform. I don't see how any of your points really argue with that. It certainly is true that 1.6 for Mac came out much more promptly than 1.5, but that was a pretty low bar to clear. ;) Moreover, I think that was only to be expected given that the 1.5 featureset dwarfed 1.6's. Apple really "doesn't like Java." It's a shame, because I would love to be able to write real Cocoa apps in a modern language.
Apple turns the entire OS X Java effort over to an open source community. Posted by: pcal at January 17, 2007 03:37 PM>> I find this statement quite ironic considering that Google Maps, which Jobs proudly showed during his keynote, is a Java application on all the other platforms. Other mobile platforms, you mean? Assuming that the iPhone Safari runs Javascript, why wouldn't you just use it in the browser, like on a desktop? Posted by: at January 17, 2007 03:53 PMOne thing that has to given some credence is that Steve Jobs is a master at saying what people want to hear. Right or wrong. Java has put a lot of sour tastes in peoples mouths. It may be a straw man argument, but applets were and are open sores and with all the blogosphere FUD surrounding J2EE to boot, I'm not suprised Jobs is backpedalling if for no other reason to sound hip. Let's not forget he's a glorified salesman, not an innovator. If Sun is going to open source(read abandon Java), why should Apple carry the torch. "Dump it on the net geeks". R&D dollars can go elsewhere than developing a platform they really don't have an interest in. Java has lost sex appeal and the Jobs only pushes that which is sexy. Posted by: Frank Bolander at January 17, 2007 05:42 PMIf Apple doesn't open the iPhone (i.e. let 3rd party apps run on it), people will open it themselves. Take Rockbox as an example. It completely replaces Apple's crappy iPod firmware.
not "NeXt" but "NeXT". Well, it depends for who. NeXT "the computer" may have failed to replace the PC or the Mac but NeXT "the concept" is pretty much the base of OS X. NeXT allowed Jobs to come back at Apple and he took his best (NeXT) engineers (these guys are 'engineers' to me, not merely 'programmers' or 'developers') to work on OS X. So you may not see many NeXT computers around (eh, the WWW was invented on a NeXT ;) but for Jobs NeXT was maybe is best move to come back at Apple. Hardly a failure for Jobs to me. Posted by: Anonymous Coward at January 18, 2007 09:15 AMSteve Jobs apparently said: > You don't want your phone to be like a PC. Yes that's a reality for many people... How many non-technical people around me are calling me for Windows-related problem? I've been working at a company doing development for cellphones. It's *ugly* and you know it. I've seen $700 Nokia regularly crashing after using application for more than 5 minutes. MacOS X has less problems than Windows, it's a fact (and, no, I don't work on MacOS X). Mobile devices do crash. Some crash quite often and quite badly. It's especially noticeable when you start installing apps on them. So imagine I'm businessman A and bussinessman B produces shit. If I state the truth: "bussinessman B produces shit", I'm insecure? Maybe I'm just lucid, no!? Posted by: Anonymous Coward at January 18, 2007 09:22 AMSpot on Cedric. Evidence speaks for itself, Apple has neglected many Lock-in is bad, even when supposedly a "good" company attempts it. Posted by: at January 18, 2007 12:34 PMSpot on Cedric. Evidence speaks for itself, Apple has neglected many Lock-in is bad, even when supposedly a "good" company attempts it. On the one hand you can't blame a company that wishes to differentiate itself, but there are ways to differentiate oneself without forcing others, i.e., by the quality of one's JVM and/or its performance characteristics. I'd venture that one of the reasons for such successful rebound of MacOS, since the days of non-preemtive, non-memory-protected MacOS 9, is the huge influx of Java developers. Do they have the right? Sure! Is it going to work well for them in the long term? Doubtful. Posted by: Anonymous at January 18, 2007 12:39 PMJava isn't central to the mac strategy anywhere. It has never been, either. At some point, a long time ago, there was an experiment, which regrettably failed. That's about it. That's not news. Which makes this article either horribly out of date or openly fear mongering perhaps. Either way, not one of Cedric's better ones. Posted by: Reinier Zwitserloot at January 19, 2007 01:39 AMCedric, I think it's one of your best articles ever! That Java isn't central to Apple's strategy is pretty clear. That Apple likes full control of their hardware too. I think they want to provide a high quality user experience. It's not fear mongering. I think this is a wake up call. Java has become too big, and we must stop denying the obvious: people are trying other stuff. Posted by: Tiago Silveira at January 19, 2007 02:31 AMWhy should Apple make Java strategic? The Cocoa Objective - C / Java Bridge, was really quite an adventure - from a software enigneering point-of-view. And what for? You still have to decide for your's os's you target, it's nowhere all Java ;-) On the other hand, there are great Java applications, which also run on Macos, Server based and Desktop applications - SWT or Swing. Tomcat, Jetty, IDE's etc. That's the point of Java, no? But i would really wish - even in the times of RIA craze - more great Java Desktop applications - not caring on which OS they are running. So i think, that's really the question the Java landscape should ask itself: Why is the Desktop so neglected by Java? Neglected may be a little bit strong, but maybe still valid, compared to the investments and efforts going into Server sided Java, and Internet Java (RIA et al). I personally believe, that there is great potential for Java Desktop applications. I imagine that there are quite a few out there, who have a demand for Desktop applications, want to avoid a Vendor hook-in, are attracted by "run everywhere" paradigm of Java and it's active and open community. But: What do we have on the Desktop side, which compares to Cocoa or .NET? Ok, we have the Eclipse ,possibly the Netbeans, RCP, both "brutally" heavy-weight. Swing is really only now with Java 5 "usable". Ok, we have SwingLabs, which are going in the "right" direction. Do they get the attention needed? The whole Swing Databinding, which yet has to be satisfactoryly "standardized". And what about "high-level" Swing Components ala Cococa and .NET? What about "RAD" like stuff a la Interface Builder in the Cocoa Realm? So the point here is not that Jobs does'nt like Java - he could'nt care less, but that "Java" does'nt like the Desktop!!! And does'nt like developers, who decide to develope for the Desktop. Just my five cents, I think Apple would be foolish to drop Java support. There are more mainstream, especially internal business applications, being developed in Java every day. Mac's are a niche machine - their installed user base is only a blip compared with Windows machines. If I am going to write an application what OS am I going to write it for? Windows. More potential users/sales. Will I as a company invest significant resources to write a OS X version for a tiny potential market? Probably not. If I write the app in Java I get both markets automatically (as long as Apple continues to keep pace on the JVM). The best thing for Apple and Java users in general would be for Apple to open-source their JVM. Sun has already done it. Apple should follow. Then you could probably get the OSX version moved in the core JDK source builds/distribution. Posted by: robert at February 1, 2007 11:07 AMI think Apple would be foolish to drop Java support. There are more mainstream, especially internal business applications, being developed in Java every day. Mac's are a niche machine - their installed user base is only a blip compared with Windows machines. If I am going to write an application what OS am I going to write it for? Windows. More potential users/sales. Will I as a company invest significant resources to write a OS X version for a tiny potential market? Probably not. If I write the app in Java I get both markets automatically (as long as Apple continues to keep pace on the JVM). The best thing for Apple and Java users in general would be for Apple to open-source their JVM. Sun has already done it. Apple should follow. Then you could probably get the OSX version moved in the core JDK source builds/distribution. Posted by: robert at February 1, 2007 11:07 AMAlso, quite interesting. Go to the Google HR site and look for Java related jobs. A LOT. Last check Google had nearly double the market cap of Apple. Maybe they know something. The only people that still cry 'Java is Slow!' are ignorant, or motivated by less scrupulous concerns. Eclipse (which is nearly 100% pure Java - save SWT) is many times faster than Visual Studio on similar hardware - and it does far more to boot. This is coming from Java developer on Mac... Short answer is: Desktop widgets + server Webservices This is what Steve Jobs is showing you and this is where I am heading... He is forcing you to embrace the new (call it sexy) thinking. Posted by: Uki D. Lucas at February 3, 2007 11:33 PMGoogle Maps uses JavaScript, not Java. Posted by: Jason at February 6, 2007 10:32 AMGoogle Maps for Mobile, which is the one being discussed here, is written in Java. Sir May name is niyas I've already given up on Apple. I like my Linux box better. The only thing I've wasted is a MacBook, a 2GB memory upgrade, and 3 year AppleCare. My wife browses the internet with it. I wanted to organize my photos with it, but I'm not risking it. Besides, I don't find iPhoto intuitive. 10 years ago java was supposed to be the revolution. It fizzled, much like Corba and all those other specifications with poor vision and leadership. Java is a horrible language, a bastardized C++. It's saving feature was supposed to be the write once run anywhere. But in reality just like Corba another POS, the runtime support is garbage. Posted by: JavaSux at December 14, 2007 11:18 PM---- UKI D. LUCAS ---- You suck. It's Java and you know that, you just want to pretend like you know something when you don't know flat crap about Java... or JavaScript for that matter. Ass. ---- UKI D. LUCAS ---- Posted by: Gage of Doom at February 12, 2008 12:58 PMHa ha, "Gage of Doom", good to meet a Java fanatic! Love, As to other Mac technologies, I think that iPhone SDK is a thing to take seriously now. It is in Objective-C, like everything else Mac (no love for Java there), but it is brilliant, I must admit. Post a comment
|