3 ms·
UI on JVM suggestion? Again? There are very good reasons why this combination hasn't been particularly popular. C++ with a few libs like MFC or WTL continues t
by lhorn 18y ago
UI on JVM suggestion? Again?
There are very good reasons why this combination hasn't been particularly popular. C++ with a few libs like MFC or WTL continues to rule on Windows being slowly replaced by .NET stack, Obj-C keeps rocking on OSX and C/C++ with Qt/GTK doing their job on Linux/BSD. Why is that? I suspect because of 3 reasons: very weak JVM penetration on the desktop, JVM is too heavy for most applications and because JDK-based UI feels foreign on every platform.
Developing a desktop application on JDK means that your users will have to deal with 100MB+ downloads followed by quirky installation process that rewards the with less then stellar UI experience at the end, especially the slow startup time.
Startup time is more important than most developers think: majority of desktop apps absolutely need it: imagine 5-second delay every time you wanted to launch Apple's "Quick View" to glance at a file, or imagine 5+ JVM-based apps load&initialize after reboot. Most desktop software I worked on was small-to-medium size and we just couldn't afford to add those 5+ seconds on JVM initialization. JVM I guess will work OK for projects like Ecilpse or a big Office suite or something like Photoshop. Microsoft understands this very well, this is why C#/.NET is so carefully optimized around loading time and comes with precompilation tools that essentially turn your C# code (including .NET itself) into native Win32 modules.
One project I want to do for myself is a usable Del.icio.us client for OSX. I can't see how I can use JVM-based tools for that... I want instant start-up by a hotkey when I need to search for links or add one. Moreover, I want users to be able to download and try it under 20 seconds.
The only JDKUI apps I'v ever used were development tools for Java itself plus numerous crap for the enterprise. And, of course, every once in a while I get "Java. Please wait..." splash screen on a new cellphone, followed by a prompt "Cancel/Go Back" keypress: that pretty much sums up my JVM-based UI experience. Which is sad: Clojure is going to be locked up on the server just like Java has been for years.
- michaelneale 18y ago>Windows being slowly replaced by .NET stack Veryyy slowly... but I think its the same issue with it. >100MB+ downloads When is that ever the case? Certainly not the VM or even a "odd" toolkit like SWT. >Startup time is more important than most developers think Agree. Any app its more important them people think. The bottom line is if you want maximum responsiveness, minimum size, you have to eliminate layers, not add them. And Obj-C + cocoa is a fairly productive environment. however, it isn't necessarily small or fast to startup - have you downloaded or tried to create a cocoa app lately? 30 + meg is common for the most basic things. And they are anything but instant to start up. Sounds like you want quicksilver like performance - which means pre loading - or just use quicksilver (probably already is a del.icio.us thing in existence).
- delackner 18y agoGetting pretty off topic here, but "30+ meg... for the most basic things" is a totally unrealistic assessment of cocoa. Sizes, INSTALLED, not from the compressed DMG: An entire quicken-like 100% cocoa app: 6 megabytes, Seashore, a streamlined graphics editor based on the gimp: 8.4mb And for a "truly small" example, the "wakeup your computer and play an itunes song" alarm clock I first wrote to learn Cocoa years ago: 500k.
- michaelneale 18y agoWell the only ones I know are as a user - adium, various dinky little utils like twitteriffic. Downloads seem to be min 30 meg, and memory usage around twice that, minimum. I just have never experienced cocoa apps to be any common definition of "lightweight". Maybe they are poorly written apps, but they work fine, and I only use the common stuff. "quicken-like" - well that means nothing unless it replicates the girth of horrible accounting rules that quicken has to adhere to - if its a "quicken like" accounting app, I guess it would not, so I don't think that really is a useful measure.
- jwilliams 18y agoJava has always had challenges ont he desktop, but I don't agree with a lot of your assertions. > ..users will have to deal with 100MB+ downloads I've never seen a JRE download that big. At most it's around 25Mb, although in practice you can get it a lot smaller than that (sub 10Mb for the minimal install afaik). > ..One project I want to do for myself is a usable Del.icio.us client for OSX. Java is already shipped on every copy of OS X - so zero download in that case. The startup time seems just fine. I'm using Apache JMeter right now and the startup time seems about the same as any other app I use.
- Zak 18y agoYou're arguing that people should use Qt or GTK on *nix. The article is about using Qt with Clojure. Qt also looks and works well enough on Windows - at least, I never hear any complaints about Opera related to its UI toolkit. The startup time can be a problem, and Clojure offering only JIT compilation doesn't improve things.