For starters it would give Apple a foothold in the Java community. If they become the stewards of Java fat clients they would gain some influence on the evolution of the language and the platform. They can push it in ways that's beneficial to their company and Mac OS X. As far as GUI applications go, the Java community would benefit from Apple's input. Apple would benefit by increased visibility in the community. They would make Mac OS X and OS X Server first class platforms for Java applications.
Apple investing in Java is an investment in OS X's future. Some say that processor speed is increasing, but we haven't found a use for that new processing power. We have, though it's not readily visible. We now have systems fast enough to facilitate running software on virtual machines without sacrificing the end user experience. Currently there are two competing VM platforms- .Net and Java. The Java platform is portable across a wide number of operating systems and devices, including Mac OS X. .Net runs on Microsoft platforms. While the lower level of the .Net platform has been ported to BSD and there are various open source initiatives to reimplement .Net, it is naive to assume .Net applications will run on a variety of platforms. Not only might Microsoft restrain other implementations of .Net with copyrights and lawsuits, but we should expect that the .Net APIs will become tightly coupled with the new version of Windows- Longhorn. In short, we should not expect that Microsoft will lay down its stranglehold on APIs. By making Java a viable GUI technology, Apple can ensure that the next generation of business applications and many future shrink-wrapped applications are OS X compatible.
Another boon to Apple is developer exposure. Currently a small number of developers are familiar with Cocoa. If Cocoa was ported to Java and adopted by Java developers, Apple would gain millions of developers familiar with the basics of Mac OS X development. This would have to increase interest in Apple's platform.
Lifting up Java would increase Apple's hardware sales. Apple is in the peculiar position of being a company that creates not only system software and applications, but also the hardware. In fact Apple's computer business is based on hardware sales, not software sales. This is the reason why experts have predicted Apple's eventual downfall. Apple can turn that into their saving grace.
Steve Jobs likes to say that Apple is the BMW of computer companies. It could be, but it's currently not. Take a look at BMW, Harley Davidson, Bose, or any other company that sells stylish equipment for premium prices. All things being the equal, enough people will pay a premium for the higher quality (perceived or actual) that these companies deliver. The key point here is that all things are otherwise equal. A Harley Davidson motorcycle uses the same roads as every other bike. A Bose radio plays all the same music as any other radio. If you are looking for higher quality or a status symbol, you can pay the premium for a premium brand. When it comes to computing, all things are not equal when it comes to Mac and Windows PCs. Apple has made progress by incorporating standard PC components in their computers. They've also adopted or pioneered port standards like USB and Firewire. They're even leveraging open standards and open source software that lets Macs run X Windows applications, Unix Daemons, and cohabitate with Windows PCs on networks. In spite of this, Microsoft still owns the APIs that most GUI applications depends on. Quite simply all things are not equal. There is too much software that will not run on a Mac. In the business world this is only intensified by in-house Visual Basic apps and Access databases. By making GUI Java applications widely acceptable to the most businesses, Apple removes the biggest barrier to Mac adoption. If you can run your applications anywhere, you have incredible freedom in your choice of operating systems. This changes the rules of the game and allows Apple to compete with its strengths and not its weaknesses. Apple can survive in a world of consolidation and free software by providing an intuitive and easy to use, complete system. Instead of being a niche platform, OS X will be the slickest operating system that can run the next generation of portable applications. It would be a premium platform. Freeing the industry from Microsoft dependence will allow Linux to consume business desktops on the low end and Macs to consume the high end. In short, they both win.
Finally, Apple has the potential to be the premiere Java development platform. While I'm suggesting that Apple port its Cocoa framework to Java, they don't need to port their development tools to other platforms. If Apple gives away the APIs they can still retain their tool set. The open source community already has a wealth of Java development tools (Ant, Eclipse, NetBeans, etc.) Given a better way to create responsive and robust GUI apps, they'll adopt it, but Apple can retain ownership of the best development tools.
I think this would increase Apple's market share, especially in the business sector. Apple currently bundles its developer tools with each copy of OS X, and therefore each Mac. If you could buy a Mac and it came with the best business development tools out of the box, don't you think someone would take them up on the offer? When you consider the cost of quality development tools (Microsoft and others), buying a Mac is not that great of a burden. In fact, you get actual hardware for your investment! Again, this allows Apple to compete based on their strengths. It also allows Apple to continue to develop software that might otherwise be commoditized by free solutions. After all, Apple gets its bottom line from pushing hardware not software. They can use their development tools as a way to sell computers, not software. Certainly any other vendor or open source project could create a compatible IDE or WYSIWYG designer, but Apple can bank on its software engineering and design prowess to keep them ahead of the pack.
Conclusion
The IT industry is very different then it was just a few years ago. Companies are cutting costs and the rise of open source software is forcing companies to find ways of giving away some of their product for free while still maintaining sales.
Apple already knows how to survive in tough markets; they've survived as a niche platform for over a decade. They've survived by building brand loyalty and offering high quality products. In order to survive in the future and to regain industry leadership in more than just industrial design, they need to act. If Apple can make Cocoa a reality for Java GUI applications, it will succeed not only in lifting up the entire industry, but Apple will secure its spot as one of the few tech companies that will survive the changing market.
About the Author:
I currently work as a system architect of J2EE applications implemented on and with open source technologies. I also dabble with OS X and Cocoa.
- "Port Cocoa to Java, Page 1/3"
- "Port Cocoa to Java, Page 2/3"
- "Port Cocoa to Java, Page 3/3"



