Originally posted by iJed
I would just like to say that it is a common mistake to think that Java is only for web based apps. There are plenty of console progs written in Java and many apps that do many things. Take JBuilder for example...
In general, Java as a client application foundation is nowhere near as successful as Java as a server back-end application foundation. Swing (Java 1.1+ UI toolkit) is nice and much faster than AWT ever was, but still just can't compare to "native" UI widgets for either functionality or performance.
Personally, I currently am involved in about 90% C++ and 10% Java, but have been involved with Java since the 1.0e (I believe) release in 1997. Aside from one ill-fated project and a smattering of developer-only utilities (as often as not with no "real" UI, just console output), I've rarely encountered a client-side Java project.
On the other hand, Cocoa in Java is definitely not the advised route. Cocoa in Java would give a more useable (albeit non-portable) UI than bare Java/Swing, but the Objective C API is the "primary" API for Cocoa and I see no signs of that changing. I believe this was stated quite directly at last year's WWDC.
Personally, I don't use the 1.4 features yet. For me, 1.2 is the watershed Java version (and I'm too used to the various containers to easily support 1.0 or 1.1 these days). But if you are using 1.4's features, obviously Apple supporting 1.3 up to now just doesn't quite cut it ...