3 ms·
Why Java Sucks
- minalecs 16y agoterribly written article and over 2 years old.
- drivebyacct2 16y agoNo idea why you're being downmodded. This is a barely, if at all coherent rant that is a month away from being 6 years old. Most all of it boils down to "there are too many choices" or "eww xml", etc.
- jbail 16y agoThe "too many choices" point gave me a good laugh.
- mcantor 16y agoNo, it doesn't. Next! ts;dr: This title is such flagrant linkbait that I can't bring myself to click on it, even though I'm a hippy rubyist and bash on java all the time.
- quanticle 16y ago>Purity Basically the only proper way to write your software in Java is system independent; you’re stuck with the common denominator. On the server side this usually isn’t the biggest problem, but when you do client stuff, you might want to use the system tray in Windows. No! Thou shallt write pure code! Oh sorry, I bought this really cool OS that has all those cool features, but now I can’t use them because that’d affect my purity. Get the f@#$)(#@$*@#! First, this limitation is true of any "cross-platform" language. If you're writing "pure" Python, you don't get to use the system tray either. Of course, both Java and Python have native interfaces (via JNI and C extensions, respectively), so you do get to use the system tray if you choose to do so. You'll just need to leave the world of the least common denominator and write an interface to the native OS. >In Java not everything is an object (or can be treated that way): there’s also primitives. Primitives (int, float, char, double, byte, …) are radically different than objects. The only reason they’re here is for speed’s sake, and to complicate things more. This sucks. I do agree with this point. In retrospect, something like C#'s autoboxing would go a long way towards smoothing over the distinction between objects and primitive types. I haven't programmed Java in years, though. Does it have autoboxing yet?
- mhd 16y agoI have used Swing a bit more than the author of the article did, and it really took Sun way to long to improve upon it. Before Java 6 it had some noticeable gaps and the performance was rather bad. But since then it's not that bad in that regard, you'll even get your System Tray icons (Sun used to be _very_ conservative about that. If it's not available everywhere, no soup for you.) And any GUI toolkit is complex. Often this is hidden behind IDE boilerplate code or GUI builders, but it's there. Once you get the hang of Swing, you're able to adapt it to your liking a lot (event handling, custom UI elements etc.). I still remember early X11 toolkits that appeared to be easy, but once you went beyond their boundaries, it was "drop down to Xlib" time. Regarding the look and feel: Strangely enough the one platform that cares the least about that is Windows. Yes, the old Metal L&F sticks out, but once you stick to the system colors, any differences vanish. The typical user probably already uses lots of so-called native apps that look differently, as every Office release has new kinds of toolbar buttons etc, there's still apps out with huge check marks and crosses on their OK/Cancel buttons etc. The main issue I had with Swing here was getting the "feel" okay, i.e. drag-and-drop, shortcuts, the behavior of tree elements... Of course, on Mac, everything that isn't done in Cocoa looks and feels alien. It's possible to get rather close with Swing and Qt, but it takes a lot of effort.
- openfly 16y agoAbsolutely.