October 31, 2007The war between Apple and developers
Java developers are up in arms because Leopard doesn't include Java. Is anyone surprised? Seriously? For all the good qualities that Apple and the Mac have to offer, Steve Jobs is still missing out on an essential part of a strategy meant to get mindshare: developers. Sure, we are all still laughing at Steve Ballmer chanting "Developers, developers, developers" on that fatal day where he made a fool of himself in front of hundreds of thousands of viewers. But there is a much bigger picture here: Microsoft has it right. They know that if you want to make your platform a success, you need to make the developers not just happy: they have to enjoy working on your platform. It has to feel comfortable and empowering at the same time. It needs to look good and to make it easy to create a "Hello world" application just as much as presenting complex blends of HTML, CSS and Javascript while talking to a database back-end. By continuing to spurn Java developers and focusing on obscure API's and languages that are known by less than 5% (more like 1% I'd say, but let's be nice) of developers, Apple is guaranteeing that the number of programs that run on Mac OS will always be dwarfed by those running on Windows. It's not about percentage, it's about sheer numbers. No matter the platform or the operating system, you can be sure that 95% of the software running on it is average, 5% is terrible and 5% is very good. When you apply these percentages to millions like they do on Windows, they start to matter. On Mac OS, they yield ridiculous results. There is no question that Apple's market share has been steadily growing for several years now, but not only is the number of users and developers in the entire world growing as well, Apple's mindshare is growing in a much smaller pond which is bound to plateau very soon, because the choices that Steve Jobs made for his platform are restricting it to a very small minority of uber geeks with an attitude problem. Now, I'm not saying that Java will save Apple. What is needed in Cupertino is a radical change in attitude. Dropping the elitist behavior is a mandatory path to success for Apple, and listening to hordes of developers banging at your door is a good first step. Apple doesn't need to implement Java, but they could show a little bit more willingness to work with whoever is interested in helping take their platform to the next level. Dumping Objective C is probably not an option, but making other languages first-class citizens on a top-notch IDE would undoubtedly go to great lengths toward making this goal a reality (ask Microsoft how Visual Basic and Visual Studio worked out for them). I'd start with C++, maybe C and even some sort of Basic. Hell, just swallow your pride and create a Visual Basic clone for Mac OS. It's no secret that most people who try a Mac for the first time usually end up liking the experience. It looks good, it feels good, it has a reasonable UI (still lagging behind Vista in a few areas, but these are of no consequence to my point). A lot of newcomers to the Mac OS world want to be able to write applications for it. Is it surprising that as soon as they find out they need to write in Objective C to get any result, they just bail? Come on, Apple: start listening to developers, or suffer the consequences of becoming a Firefox in an Internet Explorer world. Comments
Did you mean to say .."because Leopard doesn't include Java 1.6"? 1.5 is there, with its mac-only "improvements". It seems like some folks are even impressed with what Apple has done with the GUI stuff in Java. (http://weblogs.java.net/blog/javaben/archive/2007/10/more_on_leopard.html) It looks like the release notes are not published yet (http://lists.apple.com/archives/Java-dev/2007/Oct//msg00376.html) but hopefully we'll get to see something substantive soon. I do agree and wish that Java were a "first class citizen" in the Apple world though. Judging by the changes Apple has made to Java, they seem to be focused (unsurprisingly) on the UI components. Remember when the mac desktop background could only be changed to a dozen or so apple-"approved" colours? I'd bet that once the UI pieces of Java are Steve approved, we'll see more Java "blessed" from infinity lane. Posted by: brian doll at October 31, 2007 09:54 AMerr, loop ;) Posted by: brian doll at October 31, 2007 09:55 AMI blogged this morning on some thoughts about the future of Java on Mac: It's pretty clear to me that Java is not part of Apple's primary developer strategy. Honestly, they seem to be doing fine without it. If I were Steve Jobs, I'd be looking around at all those Java apps people want to run on Macs...wait there aren't any a *consumer* wants to run. Sure, as developers we have lots of Java apps lying around. The Apple belief system is one that cherishes control over appearance and integration because they believe that allows them to provide a better more seamless experience for users. For desktop apps, they can either choose Java (almost no control over API or developers, lots and lots of crappy looking apps, difficult to integrate) or their own Objective-C/Cocoa/Carbon/Aqua stuff. Java is not going to win that fight in the context of that belief system. Don't get me wrong, I want Java on the Mac. I can just see how it's rational for Apple to make it a second-class citizen. Posted by: Alex Miller at October 31, 2007 10:46 AMI blogged this morning on some thoughts about the future of Java on Mac: It's pretty clear to me that Java is not part of Apple's primary developer strategy. Honestly, they seem to be doing fine without it. If I were Steve Jobs, I'd be looking around at all those Java apps people want to run on Macs...wait there aren't any a *consumer* wants to run. Sure, as developers we have lots of Java apps lying around. The Apple belief system is one that cherishes control over appearance and integration because they believe that allows them to provide a better more seamless experience for users. For desktop apps, they can either choose Java (almost no control over API or developers, lots and lots of crappy looking apps, difficult to integrate) or their own Objective-C/Cocoa/Carbon/Aqua stuff. Java is not going to win that fight in the context of that belief system. Don't get me wrong, I want Java on the Mac. I can just see how it's rational for Apple to make it a second-class citizen. Posted by: Alex Miller at October 31, 2007 10:47 AMFair points, Alex. To be honest, I also don't think that making Java a first-class citizen on Mac OS will help increase mindshare. My point was a bit more general than this, though. I can understand ignoring Java, I just don't understand Apple's obsession at making Objective C the only viable language on Mac in 2007...
Like everyone else, I'd love to have more love from Apple on Java. But, unfortunately, I think Apple's strategy is pretty rational. Most of the Java geeks (me included) who complain about not having 1.6 are using Macs as development boxes. They are a tiny slice of Apple's market. Moreover, those developers are writing apps that are more likely to be deployed on Linux or Windows. It must be hard for Apple to see much of a win with them. "I just don't understand Apple's obsession at making Objective C the only viable language on Mac in 2007..." I dunno, I think it's pretty simple: ObjC is the foundation for Carbon and Cocoa; anything else will always be second class. Don't forget that Apple did make a pretty heroic effort to mitigate this a few years back in developing the Cocoa-Java bridge. I think they just ultimately determined that the problem was too much pain for too little reward. That doesn't make me happy, but I can certainly understand it. The one thing that really does bum me out is how little Apple tells us about what is going on. Bad news would be better than no news.
What a hilarious overreaction. "Leopard doesn't include Java" indeed! In fact it contains a great implementation of Java 5, including lots of effort from Apple engineers to make Swing look decent and somewhat native-like on the Mac. True it does not contain Java 6, but given the vanishingly small set of new features to be found in Java 6 and the even tinier number of applications that depend on Java 6, it was perfectly sensible for Apple to de-prioritize it when shipping Leopard. It will likely be made available as a separate download soon, just as Java 5 was made available shortly after the release of Mac OS Tiger. Incidentally your comparison with "a Firefox in an Internet Explorer world" is extremely apt! Think about which of these browsers is more popular with developers and is growing in market share :-) For the record, I am a professional Java developer working with Java every day, and yes, I do it on my Mac. Posted by: Neil Bartlett at October 31, 2007 01:06 PMOne more thing... "Apple's obsession at making Objective C the only viable language on Mac" is also nonsense. This is like claiming that Linus is obsessed with making C the only viable language on Linux. Cocoa has to have *some* language as its "native" one, just like Swing has Java as its "native" language and Win32 has C++, etc. However, Leopard ships with many other languages, including a Ruby runtime and bindings from Ruby to Cocoa. Apple used to supply a binding for Java to Cocoa but they stopped supporting it simply because Java programmers ignored it... we were more interested in Swing. Posted by: Neil Bartlett at October 31, 2007 01:12 PMThis whole post is a subtle parody, right? The "Firefox in an Internet Explorer world" line is a bit of a giveaway. Posted by: Charles Miller at October 31, 2007 02:06 PM"My point was a bit more general than this, though. I can understand ignoring Java, I just don't understand Apple's obsession at making Objective C the only viable language on Mac in 2007..." I'm certainly biased on the issue, but this just seems like a lack of perspective on your part. Far from abandoning everything but objective C, they've put significant efforts into their ruby and python environments, shipping several popular libraries. I don't think it's reasonable to conclude that by abandoning their already deprecated java apis, that they're digging themselves some kind of proprietary hole. How many desktop java applications require java 6? What percentage of JavaEE deployments require java 6? The "Firefox in an Internet Explorer world" kinda cost the post the credibility it had up until then. ANyway the Java desktop is dead, has been for many years since Sun abandoned it (along with applets) to throw themselves over EE stuff. The net result, 80% of Java today is server based. I'm sorry, but Sun had it coming. Posted by: at October 31, 2007 06:50 PMI don't really care about macs as I only use one when I absolutely must test safari support for things, but the objective c thing does sound kind of weird... I mean, we used to have that guy working with us at a company and he was very nice and all. He drew a pretty time line on the white board showing c progressing to his objective c creation (there may have been a pre-objective c failure in there ) which eventually gave way to c++ > blah -> poo > java -> etc.. ... I have no idea how the linker / compiler work with it but can imagine it's a real pita to maintain an OS if all of those typically easy to get at c++ ala gcc compiled "things"(shared objects) aren't as easy to get at anymore... ..which probably does explain a lot about why it's so f-ing hard to write a developer API for their strongarm linux port (err...maybe they ported "osx" ? wtf....) iphone thing - or easily keep their jvm up to date with all of the latest goodies....OMG don't even talk about java 7 betas you groveling java scum. Be happy we ported our old fat objective c butts over for 5 at all. but really....I'm sure it's a very nice language, even in its now ancient / closed (or might as well be) platform / not benefiting from gcc enhancements - form. Hooray. so.....Cedric may still right about the cause of the problem even if the actual problem doesn't sound so bad in isolation. Posted by: Jesse Kuhnert at October 31, 2007 10:05 PMJesse: * The iPhone runs OS X, not Linux Charles: Thanks for clearing up my FUD. I'm all out of ideas as to why it's like this then...I don't really care but do have friends that are quietly grumbling about it because their shiny new macbook boxes don't have all the same good stuff the rest of us benefit from. I'm sure the devs are already over-worked / under-appreciated and doing all they can but it must feel a little crappy to go look at those jdk6/jdk7 download pages and see your OS always conspicuously missing from the list of known operating systems. If I had paid for mine and used it as a dev machine I'd be justifiably pissed about missing jre 6 - which for me on the other OS's does represent a giant leap forward in performance. (or maybe I'm just convincing myself it's much faster) Posted by: Jesse Kuhnert at November 1, 2007 06:14 AMCedric, I have to take issue with the claim that "Microsoft has it right" claim. Microsoft wants to kill Java. We have solid JDKs on Microsoft platforms because of Sun, clearly NOT because of Microsoft. Apple provides vastly superior Java support compared to Microsoft. It's just that Sun does a better job supporting Java on Microsoft platforms than Apple does supporting Java on Apple platforms. Posted by: Eric Burke at November 1, 2007 08:25 AMSeems like an opportunity for the openjdk community and / or SUNW to step in, right? - Dn Posted by: Donald Smith at November 1, 2007 12:18 PM"By continuing to spurn Java developers and focusing on obscure API's and languages that are known by less than 5% (more like 1% I'd say, but let's be nice) of developers, Apple is guaranteeing that the number of programs that run on Mac OS will always be dwarfed by those running on Windows." Java matters on the desktop? Who knew? Posted by: Bill de hOra at November 1, 2007 03:56 PMYou have to remember how Apple makes money. They assemble together hardware, like Dell. Only they charge way more than Dell does. Not as many people buy it, but enough do and their margins are very nice. Hence they make pretty good money from selling computers. So why do people pay more for Macs than Dells? Because of the software. Apple makes money off hardware, but is really a software company (when it comes to computers, not iPod, etc.) People don't just buy Apple because of OSX, they buy it because of iPhoto, Mail, Safari, iChat, etc. Apple is a software company, but they make much more than just an OS. Don't forget that Apple also makes a lot of money off of iLife, iWork, and all those "pro" apps like Final Cut, Logic, Aperture, etc. If you compare them to Microsoft, they are much diversified in terms of software they sell. Microsoft has the dominant OS, Office, and Visual Studio -- a tool for developing Windows apps. They also have a lot of enterprise stuff as well, but in the consumer space that's mostly it. So when Apple creates developer tools (and they create pretty good ones actually, and they are free) they are giving people tools to compete with them. This is not as true for Microsoft. Look at Adobe for example. They make many products that compete directly against Apple products. Posted by: Michael at November 1, 2007 04:55 PMCedric, full ACK! Are Ruby and Ruby on Rails (not to mention Python, Perl, all languages that work out of the box on OS X) developers part of that 1% that you speak of? Talk about grabbing mindshare, virtually all of the Ruby on Rails core developers use Macs. Arguing that RoR is not relevant is kind of hard when many notable Java web programmers are defecting to the Ruby on Rails platform. As far as dropping Objective-C, that's absurd. One of the main reasons Mac apps like Safari, iTunes, Aperture, Final Cut Pro, etc. not only look great and but are extremely robust is because of Cocoa/ObjC. Not to mention the fact that ObjC allows developers to interface with the C/BSD Unix layer of OS X in a way that other languages are unable to. Apple is offering developers, experienced and novice, a ton of choices in terms of dynamic scripting languages, Java, Cocoa, all those available through X11. And you view Visual Basic as the answer for Apple (maybe I'm an elitist uber geek but pa-lease). I think they are doing more than fine, with or without Java 6 (and Visual Basic), which in a matter of months Apple will release anyway. Posted by: Markus at November 18, 2007 05:11 PMPost a comment
|