Pretty much nothing is factually true in that 'research' other than that octopi live in the ocean. For example, modern octopi do NOT arrange bones into 'art' gardens as Mark McManmin asserts. Arstechica sums it up best with the article 'The giant, prehistoric squid that ate common sense' at http://arstechnica.com/science/news/2011/10/the-giant-prehistoric-squid-that-ate-common-sense.ars
The best quote from Ars is "We have a serious problem with science journalism. A big one, in fact, and today that problem takes the form of a giant, prehistoric squid with tentacles so formidable that it has sucked the brains right out of staff writers’ heads."
But I just tried the weekly build of Mustang SwingSet2 demo and it still doesn't look all that hot on an XP LCD at 1920x1200. The fonts are just too damn small compared to my system fonts. There's needs to be more hooks into the native OS in order for Swing to get hints about approximately it should use. And Swing fonts on an LCD have been a freaking nightmare for ever since there have been LCDs.
I do most of my work on a Mac (coincidently at 1920 x 1200. You running on a Dell 2405FPW?). The Java Fonts match the Native Fonts exactly. (or at least near enough that I can't tell the difference) I suspect Apple has added the hooks to the native system Fonts. I'm not surprised Sun hasn't customized Java as much for Windows since it's not a product they sell or support. Of course, I don't know if they added those hooks for Solaris or Linux either.
Why, oh why, did Sun decide they had to paint everything themselves years and years ago.
I'm not sure it was a bad idea. SWT, which as you know attempts to use native widgets, isn't that good as a cross-platform API. It's very fast on Windows, (actually about as fast as Swing is now), where it's been heavily debugged and optimized. On Linux it runs considerably slower and the Mac port has a great deal of bugs. Also, since the Mac port is based on Carbon not Cocoa, I'm not sure it will even run on the upcoming intel-based Macs.
So SWT is a pretty raw API. They put Jfaces on top and to the side the API stack, but JFaces isn't as powerful as something like Swing, so...
Well when SWT came into being Swing was pretty slow, so SWT made alot of sense. A little competition has been VERY good for Swing in general. Now that Swing's perfomance has improved I think SWT will mainly be confined to eclipse and RCP apps.
To me, the only thing that doesn't make programming in Java a complete monotonous/boilerplate-ridden pain in the ass are the IDEs
Why oh why do people feel they need to say the same things everytime a discussion about Java starts up. Slow, memory hogging, swing sucks, etc, etc. These arguments simply are not true about modern JVM's
As for Swing's problems: not truly native look & feel (doesn't behave like other Windows/Mac apps),
I love to hear this argument. OK...can you show me what a native windows app should look like? Why don't we take a look at Microsoft Office. You will note that microsoft doesn't even use a consistent L&F between different versions of office. Please repeat after me...there is no such thing as a truly native look and feel. Apple now uses 4 different L&Fs for the applications they write. What is the native L&F on Linux (Motif, KDE, Gnome, etc...what theme?). Look, here's an article that discusses it: http://www.osnews.com/story.php?news_id=10633 In Java, you can set the look and feel to be platform native. The problem is a lot of folks set there app to use the Java L&F (Metal) which does stand out and is down right butt-ugly. This is the developers choice, not a problem with Java.
terrible event model (bad queuing design - pretty much mandates a separate gui thread),
Can you explain to me what's wrong with Java's event queue? I do a great deal of swing programming and I find the event queue very simple to work with. Generally you can ignore it. If you have long running actions (such as long database transactions) you can fire them off in a seperate thread or use SwingWorker or Foxtrot http://foxtrot.sourceforge.net/docs/toc.php. If you don't understand the threading model, just say so, don't rag on it.
slow slow slow, memory hogging, even more increase in startup time.
All problems with benchmarks aside. You can't say that you're thinking about using Python or Ruby instead of Java because Java's too slow. By their nature, interpeted languages are going to be much slower than compiled (even byte-code compiled) languages.
I could go on, but for a serious GUI app (e.g. a desktop front-end to a web app) its performance is unacceptable and it is too buggy. In our testing, it was not very cross-platform either. We ended up having a fair amount of platform-specific code.
Them's fighting words!!;-) Please oh please stop spreading such lies though. Look, I just wrote a database app that's used for annotating video data in real time. Not only is it plenty fast enough but it's cross-platform. There's no platform specific code in it what-so-ever.
OK, everyone knows Java's a nonstarter these days.
Really? No one told me that. Sheesh, I guess I'd better rip out all this Java code I've got running reliably and replaced it with [insert over-hyped language here]
But Java's Swing problems, startup time, and memory requirements pretty much lock it out of all those categories except web apps.
OK, I'll bite. What are Swing's problem's? Too flexible? Too many GUI builders available ? Too cross-platform?
Also you forgot the category of delivering rich client apps over the web without requiring installation or any Web programming (Java Web Start). Swing is actually great for a lot of things.
(Yes, azureus is pretty beautiful -- but look at its startup time. No problem for an app like that, but I hate waiting for apps to start up.)
Azureus isn't Swing it's SWT. http://www.eclipse.org/swt/
Rails has been getting a lot of Buzz lately but it's not the only RAD framework out there. Personally, I'm not a fan of Ruby so I'm not so keen to jump on to the 'Ruby Rocks' bandwagon. If you're using python you may want to check out the Python equivalents of 'Ruby on Rails'. Here's a few:
Pretty much nothing is factually true in that 'research' other than that octopi live in the ocean. For example, modern octopi do NOT arrange bones into 'art' gardens as Mark McManmin asserts. Arstechica sums it up best with the article 'The giant, prehistoric squid that ate common sense' at http://arstechnica.com/science/news/2011/10/the-giant-prehistoric-squid-that-ate-common-sense.ars The best quote from Ars is "We have a serious problem with science journalism. A big one, in fact, and today that problem takes the form of a giant, prehistoric squid with tentacles so formidable that it has sucked the brains right out of staff writers’ heads."
The bottom of the ocean can be mapped. The tool of choice is the side-scan sonar [obligatory wikipedia reference: http://en.wikipedia.org/wiki/Side-scan_sonar ], either towed behind a ship or, if your research group is incredibly cool, from an autonomous underwater vehicle (AUV) See http://www.mbari.org/news/homepage/2005/mapping-auv.html
Ha Ha! Well said!
Why oh why do people feel they need to say the same things everytime a discussion about Java starts up. Slow, memory hogging, swing sucks, etc, etc. These arguments simply are not true about modern JVM's
I love to hear this argument. OK...can you show me what a native windows app should look like? Why don't we take a look at Microsoft Office. You will note that microsoft doesn't even use a consistent L&F between different versions of office. Please repeat after me...there is no such thing as a truly native look and feel. Apple now uses 4 different L&Fs for the applications they write. What is the native L&F on Linux (Motif, KDE, Gnome, etc...what theme?). Look, here's an article that discusses it: http://www.osnews.com/story.php?news_id=10633 In Java, you can set the look and feel to be platform native. The problem is a lot of folks set there app to use the Java L&F (Metal) which does stand out and is down right butt-ugly. This is the developers choice, not a problem with Java.
Can you explain to me what's wrong with Java's event queue? I do a great deal of swing programming and I find the event queue very simple to work with. Generally you can ignore it. If you have long running actions (such as long database transactions) you can fire them off in a seperate thread or use SwingWorker or Foxtrot http://foxtrot.sourceforge.net/docs/toc.php. If you don't understand the threading model, just say so, don't rag on it.
Here's a few benchmarks:
- Since we're talking about Ruby..let's compare Ruby and Java -> http://shootout.alioth.debian.org/benchmark.php?t
e st=all&lang=javaclient&lang2=ruby..whoa Ruby got smoked!
- Let's look at a few numerical benchmarks: http://www.osnews.com/story.php?news_id=5602&page
= 3. Java doesn't do to hot on the trig part here but on all other parts of the test it's comparible to C++.
All problems with benchmarks aside. You can't say that you're thinking about using Python or Ruby instead of Java because Java's too slow. By their nature, interpeted languages are going to be much slower than compiled (even byte-code compiled) languages.Them's fighting words!! ;-) Please oh please stop spreading such lies though. Look, I just wrote a database app that's used for annotating video data in real time. Not only is it plenty fast enough but it's cross-platform. There's no platform specific code in it what-so-ever.
p.s. Happy Holidays
Really? No one told me that. Sheesh, I guess I'd better rip out all this Java code I've got running reliably and replaced it with [insert over-hyped language here]
But Java's Swing problems, startup time, and memory requirements pretty much lock it out of all those categories except web apps. OK, I'll bite. What are Swing's problem's? Too flexible? Too many GUI builders available ? Too cross-platform? Also you forgot the category of delivering rich client apps over the web without requiring installation or any Web programming (Java Web Start). Swing is actually great for a lot of things. (Yes, azureus is pretty beautiful -- but look at its startup time. No problem for an app like that, but I hate waiting for apps to start up.) Azureus isn't Swing it's SWT. http://www.eclipse.org/swt/