The Source for Java Technology Collaboration
User: Password:
Register | Login help    

Search

Online Books:
java.net on MarkMail:


No Such Thing As The Future

Posted by editor on June 12, 2007 at 7:51 AM PDT

Another "end of Desktop Java" scenario

Yesterday's keynote from the Apple WWDC conference didn't have a lot of surprises, at least not good ones. There's plenty of grumbling over the fact that not only has Apple forsaken Java ME on the iPhone (meaning it can't run the MIDlets that the rest of us run), but also refused to provide any sort of SDK beyond typical web applications. Even the normally booster-ific Daring Fireball is calling B.S. on that one.

But looking at the tea leaves, Cafe Au Lait's Elliotte Rusty Harold makes an interesting hypothesis about Apple's most surprising announcement, a Windows port of their Safari web browser, and draws a dire consequence:

Based on early betas of Safari 3.0 for Windows, some people are speculating that Apple has succeeded in porting Cocoa to Windows. If that turns out to be true, that could be a real threat to Java on the desktop, but a boon for Mac developers. If they could port to Linux too (probably an easier task) Java on the desktop would be dead.

Elliotte's a great opinion writer, but this seems to stretch things. First there's the concept of whether a Windows port of Safari indicates that all of Apple's Cocoa API's are on Windows, or just enough to support Safari. Just porting AppKit and CoreFoundation would be a tall order, and then there'd be the question of what other frameworks would be needed by real-world applications: would multimedia developers expect Apple to bring CoreAudio and QTKit to Windows? The Quartz graphics API's? Disc-burning and device API's? If not, how much could you really do with Cocoa on Windows? Remember, some of these are the things that Elliotte complained that Java still can't do, and Java is seriously trying to be cross-platform (it's arguably the whole point of Java). It has yet to be proven that Apple is really intersted in cross-platform development beyond a few strategic developments, mostly in media (iTunes, QuickTime, etc.). And as for Linux, outside of the Bonjour API's, I'm not aware of Apple ever releasing a Linux app (Google gives only 500 hits for "linux" on Apple's developer site, most of them about porting).

If a cross-platform Cocoa were available, would that really mean the end of Desktop Java? This takes us to the realm of arguing hypotheticals, but the idea of masses of developers picking up a new language (Objective-C) and new API's for the sake of developing cross-platform apps -- apps which, unlike Java, presumably aren't meant to be embeddable in web pages -- seems remote. In fact, hasn't this been the challenge of luring developers from the likes of Cocoa and Visual Basic to Desktop Java in the first place? And isn't this "there's another cross-platform runtime; let's abandon Java" story the same thing we've been hearing about Abobe AIR (né Apollo)?

At the end of the day, Java, AIR, and the hypothetical cross-platform Cocoa will compete with each other and with single-platform technologies for developers' business. Whichever ones solve the right problems for people should eventually win out. It's a competition that's really been re-energized in the last few months, and let's not call it over before it's even begun.


In Java Today, JRuby 1.0 has been released. InfoQ has collected a number of perspectives on the release in JRuby 1.0 Released: Bringing Ruby Compatibility to the JVM, including comments about the milestone from committer Ola Bini, a look ahead co-lead developer Charles Nutter, and an update on NetBeans' Ruby support from Tor Norbye.

Over on JavaLobby, Michael Urban reports that NetBeans 6 Rocks! "After working with NetBeans 6 over the last week, I have to say I am very impressed. This is not simply a minor upgrade, as is so common in IDEs these days even when they are given a new major version number. Quite the contrary, NetBeans 6 is a major new release, and a major improvement over NetBeans 5.5."

The World Wide Web Consortium (W3C) has released a Web Services Description Language (WSDL) Version 2.0 Primer. "This document is a companion to the WSDL 2.0 specification (Web Services Description Language (WSDL) Version 2.0 Part 1: Core Language [WSDL 2.0 Core], Web Services Description Language (WSDL) Version 2.0 Part 2: Adjuncts [WSDL 2.0 Adjuncts]). It is intended for readers who wish to have an easier, less technical introduction to the main features of the language. This primer is only intended to be a starting point toward use of WSDL 2.0, and hence does not describe every feature of the language."


Today's Weblogs begin with Cay Horstmann taking another look at The Single Thread Rule in Swing. "I am working on the 8th edition of Core Java, and one of my thoughtful reviewers (Brian Goetz) pointed out that the single threading rule for Swing has been tightened up recently. This blog discusses how code that used to be good is now bad, and it tries to elicit some answers from the experts about that badness."

Norbert Truchsess considers strategies for Separating Markup from Component hirarchy in JSF. "The templating techniques available (or better: that I'm familiar with) that allow to define a view in JSF have one thing in common: if you intermix static-markup with components, the structure of your markup will also define the structure of the resulting component tree. Here are some thoughts on the implications and how to overcome these."

Finally, Felipe Gaucho is Introducing the Footprint Project. "Your JUG events can distribute certificates for the attendants through a new java.net project called footprint."


In today's Forums, gurupr apparently didn't do the obvious mathematical calculation of pixels-times-bit-depth before posting Tiff Image Size is huge. "I am a beginner to imaging apis in Java. I am trying to create a tiff file using

BufferedImage bi = new BufferedImage(2379, 3408, BufferedImage.TYPE_INT_RGB);
ImageIO.write(bi, "TIFF", new File("filePath"));

The resultant image is 23,757 KB. This is too huge to be true. What is the way to create tiff images using java apis. Please advice."

tarbo offers help with a problematic question in Re: Keypad does not output retrieved string value. "I'll level with you: you're making this a lot more complicated than it should be, and that is what's causing you headaches. Take your case 11 as example: Why the lcd.setText(String.valueOf(i))? This sets your LCD text to "11" (the case just confirmed that i is 11). I have the impression something different should happen here--perhaps you meant to clear the field? You're using floating points for integer instructions. If you're working with integers, stick with integers--using floating point numbers will come back to bite you in the lower back."

gmurray71 explains the implications of a relocated JAR in Re: Inserting sample Jmaki apps in my own jmaki app. "We made an architecture change between jMaki .8.x and .9 where we now include dojo as part of the /resources/dojo/resources instead of having in /resources/libs/* I think your issue is that you don't have the right dojo resources in your app. I would suggest moving your glue.js up to the top level of your web application and starting with the latest RSSData App and copy over everything in the /resources directory into your new application."


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of java.net it will be archived along with other past issues in the java.net Archive.



Another "end of Desktop Java" scenario
Comments
Comments are listed in date ascending order (oldest first)