Post a Comment
* Antialiasing is now RGB instead of greyscale
* MDI Window Decorations don't theme properly
* GTK Look n' Feel is at least mildly broken for every theme except Clearlooks
* Clearlooks now renders almost perfectly in Java
* The 64-bit JVM doesn't work properly at all (crashes with sliders)
* There's still no native LNF for Qt, or for any of the various other toolkits (FLTK, FOX, etc). I would complain about a lack of a LNF for BeOS, but we'd need a BeOS JVM first for that to be an issue... Some guy named Bryan Varner appears to be working on one, but no news for a couple of years...
I think that's about it...
> we'd need a BeOS JVM first for that to be an issue... Some guy named Bryan Varner appears to be working on one, but no news for a couple of years...
You mean other than today?
http://bryan.varnernet.com/
This is a good article especially about GTK improvements.
This page
http://java.sun.com/developer/technicalArticles/J2SE/Desktop/mustan...
is giving overall changes in UI infrastructure.
Mustang related news and change logs can be found here:
https://mustang.dev.java.net/
Also Recently i saw this link, a casual performance comparison of Mustang-Java 1.5 and C. might be intresting.
http://www.javalobby.org/java/forums/t49834.html
Yes, it will be in unless Sun runs into some major problems.
Notice that even though escape analysis is already implemented in Mustang, right now (b55) the optimizations that need information from escape analysis are not yet implemented; the most important are lock elimination and stack allocation. You can check the working of escape analysis with -XX:+PrintEscapeAnalysis -XX:+DoEscapeAnalysis (I think the "print" option is exclusive to the fastdebug build). If you can read Assembly, check also -XX:+PrintOptoAssembly (this is not final ASM code but it's very close), also in fastdebug builds. Pretty hot tool to study any microbenchmark ;-)
The small difference of performance that you may see in current builds, turning escape analysis on, should be due to minor effects of this analysis in lesser optimizations that already explore it. But the big bucks have yet to come. Stack allocation not only saves GC overhead, but it also opens the door to other opportunistic optimizations, by inlining object fields as local variables (which allows register allocation of the hottest fields), and simplifying (inlined) method invocations that depend only on some fields of the inlined objects. Think for instance in Iterator objects, which are ubiquitous in modern Java code, never escape methods, and are very small (typically 2-3 fields). Escape analysis + stack allocation + field inlining and other optimizations, can produce code that's as fast as iterator-less code(*), e.g. a "for (int...)" to iterate an ArrayList.
"if you're writing on the topic of aesthetics why choose to demonstrate it with GTK apps?"
There is no QT theme support for swing. The closest at the moment is using the GTK LF in the mustang builds, then using the gtkqt theme for GTK2. Unsurprisingly, the results aren't great. Still, I'd rank the results from this method as hovering somewhere around "good". And that's far more than I would have expected from such an indirect simulation!
Oh really?
Would that be why most Linux distros use Gnome as the default desktop? Or maybe it is why Gnome is the standard Unix desktop that was chosen to replace CDE by HP, Sun, and IBM.
Gnome is quite a bit more popular than KDE. Please where you got that 70% figure. I suspect you got it from your ass.
Gnome is quite a bit more popular than KDE. Please where you got that 70% figure. I suspect you got it from your ass.
He may have gotten 70% out of his ass, but it's pretty safe to assume that KDE is in the majority. Only GTK-centric sites like OSNews ever have polls that show Gnome leading. Where is your evidence to the contrary?
Would that be why most Linux distros use Gnome as the default desktop?
I suggest you go to distrowatch and check out exactly how many distros do use Gnome as the default. I think you'll find that there aren't very many - it's just the commercial ones (and Ubuntu, but they also have Kubuntu to balance that out). Many of those companies you name are huge contributers to Gnome, so of course they're going to use what they've paid for rather than ignoring it and going with something else.
"Where is your evidence to the contrary?"
Red Hat / Fedora is the most popular Linux distribution, and it uses Gnome as the default.
"Many of those companies you name are huge contributers to Gnome, so of course they're going to use what they've paid for rather than ignoring it and going with something else."
But why did they pick Gnome instead of KDE? Because the biggest mistake KDE made was going with Qt as the toolkit. Qt licensing is not at all friendly to commercial business because of its "GPL or shell out $3000 per developer seat" license. The Gtk licensing is much more compatible with commercial interests.
His blown up shots of greyscale and subpixel antialiasing did a horrible job of showing the differences. The colored "subpixels" appeared the same size as the greyscale pixels. The whole point of the subpixels is that they are only a third as wide as full pixels, allowing for much smoother lines. His shots don't make that clear at all.
http://grc.com/ctwhat.htm gives a much better overview of subpixel rendering (though I'm ashamed to link to a Steve Gibson raving loon page)
I posted each text example in two sizes: one-on-one, just as you'd see it rendered, and enlarged by a factor of 8. I didn't attempt to explain the technique behind subpixel antialiasing, I just wanted to show Java supported this now.
By enlarging the texts you can clearly see the coloured "subpixels" surrounding the text. For real life rendering, I included some twelve full screenshots with text rendered using the various JDKs and settings.
I'm sorry that I couldn't convey my message better, but I hope it is clear now that I did not want to dissect subpixel rendering, just show that, and how, it is now supported by the Java runtime.
...that dude is talking about Mustang aesthetics yet I dont know where his sense of aesthetics comes from! Who writes an article with black font on a dark blue/indigoish background?! But yes I am looking forward to Mustang. Notably Swing improvements and performance improvements as well.
I agree.
I used to agonize over C# as Java programmer. But once you try to find, say a good, free Object Oriented Database, I can find it for Java but not for C# (the one that exists for C# is GPL so I can’t use it for commercial purposes, besides it’s a port form Java). Then I looked at the projects on SF and Freshmeat and Java is the third largest language after C and C++ (ignoring PHP, there are more PHP projects then anything else but they are mostly dead CMS projects). Even with things in C# (the language) I can’t see myself switching from Java since the preexisting projects for Java are something that C# just can’t compete with.
Currently Sun spent a lot effort and time to enhance Java2D/Swing.
The reason may be the mistake in philosophy of swing on implementation/design.
In update page of Mustang.
Clearly, Sun starts to use MS's and GTK's API for some JFC/Swing rendering.
Before, Sun emphasizes on portability and beautiful Hierarchy (Native->AWT/Java2D->Swing).
Therefore Sun loses its points by adopting native APIs in JFC/Swing for improvement of rendering.
Even though, Swing still can't have native look of Windows and GTK.
The enhancement just makes it look better and look like native.
Imitation will never be real.
Current change is just the first step.
The best way may be reimplement JFC/Swing in native Winodws/GTK APIs.
best regards..:)
Its a little bit off topic, but have also a look at the GNU Classpath screenshots:
http://gnu.wildebeest.org/diary/index.php?p=123
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24256
http://lists.gnu.org/archive/html/classpath/2005-10/msg00071.html
GNU Classpatgh trys to llok like Suns Java.
And Suns Java trys to bring its Gtk LAF to look tike Gtk.
This is progress? Java is over 10 years old now and we're just getting proper anti-aliasing? What a disgrace. It's development speeds like this that guarantee .Net will wipe itself with Java. Sun's only hope to keep up the pace is to open up the process more, perhaps even GPL one version of java and release it as unofficial to the gcj guys or classpath.
The new process Sun has is better, but not enough to keep up.
I can not and will not take C# or .NET seriously until it provides a viable cross platform GUI API. Right now you have Windows Forms, that’s NOT cross platform; there is only MS implementation and two broken open source ones. Then you have GTK#, better then Windows Forms but still way of the mark. How is either of them supposed to compare to SWING or SWT? Until there is a functional port of SWT (there are two dead ones) or C# guys build a new cross platform toolkit, there is just no way that C# competes with Java. Regardless of all the cool libs like LWJGL or ozone or whatever, if you are getting hung up on anti-aliasing I strongly suspect you never programmed in anything, especially not Java.
To my knowledge not too much has been invented in Redmond:
http://grc.com/ctwho.htm
here is the complete history...



