Originally posted by ktlx
Objective C is not just an extension to C that Apple made. In fact, neither part of the statement is correct. It is neither just an extension nor was it made by Apple. Objective C adds significant syntax changes to C and is not simply an extension. Cocoa requires the use of these additional language constructs and so you cannot just leave them out. Please look at some of the information on Apple's developer website instead of making uninformed claims.
First, correct, Objective C is an open standard, not just used by Apple. On the other hand, the only major usage of Objective C I've ever seen is the Cocoa/Aqua frameworks. But, yes, Objective C will compile with gcc on most platforms I'm aware of.
However, Objective C
IS just an addition to C, and talks quite adeptly with unmodified standard ANSI C, even in the same source module (.m file). In fact, the first implementations of Objective C were as nothing more than a pre-processor for C files.
As an example, the project I am working on uses a solid C++ cross-platform basis plus a C API (it's easier to link Objective C to plain C than to C++) and a Cocoa front end. It works incredibly smoothly, and uses the best of both worlds (Objective C is nice for the Cocoa frameworks and UI widgets, but I wouldn't want its "type-looseness" anywhere in the chunk of our application that actually does work!).
As for StarOffice, I believe it is in C currently, not Java. The Java "port" will give Sun a common UI face to the underlying C code (which reduces development time significantly in a cross-platform project). The Java port
could use Cocoa frameworks to do its thing, but doing so directly would completely defeat the purpose of a Java port in the first place (the Cocoa frameworks are non-portable). Note that the use of Java in Cocoa apps is supported, but not advised, by the Apple team.
Also, of course, note that in order to plug a Java UI onto the C code base Sun/OpenOffice will have to consolidate their apps' C API's and create a JNI Java-to-C translation layer. Once you have such a consolidated C API, slapping a Cocoa UI onto it is literally child's play (no harder than a Java UI, although again you have to do the Objective C/Cocoa API only for the Mac whereas the Java API work could be repurposed for the various other platforms).
Cost/benefit: Cocoa in my experience is much faster than Java/Swing for most UI elements, especially in startup time. The Objective-C to C translation is compile-time intensive and nearly completely transparent at runtime (assuming the compiler generates efficient code, which gcc tends to do). The Java-to-C translation is runtime-intensive and reflective (because Java is a late-binding language), and as a result is nowhere near transparent. Possibly outweighing this, though, Java/Swing runs pretty much the same on most platforms (there may be per-platform modifications, but they are minimal compared to the bulk of the UI code), AND, of course, Sun owns Java and would love to see it used in OpenOffice.
My guess: Sun will transition its version of the suite to Java UI. Apple and/or OpenOffice.org will tackle a pure Objective C/Cocoa UI implementation using the API developed for the Java UI.