For all its faults, Java does deliver something that resembles the "write once, run anywhere" dream.
Any idea for a high-performance, cross-platform, native UI development stack? Is C++/Objective-C still the best option?
For all its faults, Java does deliver something that resembles the "write once, run anywhere" dream.
Any idea for a high-performance, cross-platform, native UI development stack? Is C++/Objective-C still the best option?
I'm more worried about development of server stuff becoming more painful, particularly as Clojure, my favourite language, is (currently) JVM-based. There's obviously plenty of other JVM-based server development going on, and it'll be a pain if that stops working properly.
As for Cocoa bindings in higher-level languages on Mac, there are MacRuby, Nu and Mono. I haven't tried any of them, but this will be relevant for me in the near future so I'd be interested in any war stories from anyone deviating from the Objective-C path.
I generally wouldn't recommend cross-platform GUI development, it just ends up producing mediocre software; obviously, try and pick a common language/runtime if you're going to have different frontends.
That is what the clojure guys get for investing in a dead platform. Java as a language was dying. The sun-oracle deal means that the Java platform is also dead for open source.
Is there an implementation of GTK that doesn't run via X11 on the mac? Gimp/Inkscape are lovely software on Linux, but using them on the Mac drives me insane. They're "meh" on Windows.
I concluded a while back that the only decent way to do GUI programming properly was to develop multiple native frontends for the platforms you want to support. Everything else seems to produce crap.
I haven't found the ideal runtime/language for this yet, though. The C family is an obvious candidate but is a little more low level than necessary for desktop apps. .NET/Mono seems promising, though I do worry about having to distribute the Mono runtime with apps. Plus, people seem to have an irrational fear of it (though probably not end-users).
This +100. Qt is OK-ish if dev resources are a bigger concern than platform integration, Gtk is not even remotely integrated with the platforma (well except in a Gnome desktop where it basically is the platform), and all the other attempts like wxWidgets, Tcl/Tk and the hundreds of smaller projects/products don't even come close.
Anyone developing desktop software who want to make his application feel 'native' to each platform has to make various frontends, with each platform's native UI toolkit. It takes some careful design but it's not all that painful, really.
GTK-OSX is supposed to do this, but I haven't been able to get it working.
In Windows the guideline is to use Ok & Cancel buttons while most of the GTK apps I've seen use just a Close button. GIMP is a mixed experience: most dialogs have both buttons while others just the close button.