Sun Says Java Source Already Available
mjdroner writes "In an InfoWorld article, Java CTO James Gosling says that source code for Java has been available for 10 years. Gosling claims Java is close to an open source model, though discounts Sun joining the Eclipse Foundation. He goes on to say that Eclipse's endorsement of the standard widget toolkit destroyed interoperability, saying it's based on the windows API, making it problematic to run on other platforms."
Eclipse has shown that the market can indeed rally around Java optimized for Windows. Prior to SWT, remember running Together on cutting edge hardware, and the windows would still take 30 seconds to refresh? No one would tolerate the idea of running Java on Windows for Java's sake, when native apps absolutely destroyed Java apps in UI speed comparisons.
It's time for the theoretical niceties of interoperability to meet the practical demands of customer acceptance within the Windows market.
It's improved a lot in every release, SWT or not. Today it's pretty damn good on Windows. The situation is worse on Unix though, I can agree with that. On the other hand, SWT sucks on anything but Windows anyway.
You can get the native c code for the vm and such from here: http://java.sun.com/j2se/1.5.0/scsl/README-SCSL.ht ml
This is pretty childish, but here it goes. SWT is what Swing should have been, only Sun didn't invent it first. Sun went the wrong way when they chose "pluggable look and feel" over "looks native on every platform" and they still don't get it.
You might think that a pluggable look and feel (PLAF) is more general - true. But in reality, in real-life apps, you don't want to shock users with your "different but good-looking" GUI. Instead, you want to look exactly the same as all other apps on that OS. In the real world, the PLAF makes the Swing code so complex as to be almost unusable / unfixable, costs an insane amount of engineering resources which explains why it performs well only on Windows, and remains largely unused. The thing which it is used for most often, namely to look like a native GUI, it does a pretty bad job at. Each new version of the Windows GUI demands a new Java GUI to keep pace.
Had Sun spent all half the engineering time it spent on Swing on SWT instead, it would be perfect now. I just hope they include it as an official GUI framework in one of the next releases.
I've been wondering about the whole "OMG SUN MUST OPEN JAVA"-farce every fucking time it occurs on this shitfest.
It's about time someone invents a device to punch people in the face via TCP/IP and this device is made obligatory by law.
src.zip doesn't have the sources to the sun.* packages, which contain classes that are not part of the API.
As an everyday user of Swing apps (and specifically jEdit) I assure you that under Java 5 Swing apps *do* look native enough. I have to strain my eye to find very slight differences. Note that many native win32 apps alter their look and feel uch more, "to stand out", probably. Opera on win32 looks less "native" than most Java apps, and newer MSO apps always keep going for some new and rather alien (though cool) look and feel.
Computers make very fast, very accurate mistakes
So is Skerrett being disengenous when he says that and, if he is, is he just getting back at Gosling for over simplifying?
Actually, I think he was just being polite. "I don't believe James really understands how Eclipse works" is a whole lot nicer than "James is lying through his teeth," which is what I would say.
I call utter bull**** on the parent article.
The type erasure in Java 5 generics was an utterly elegant solution given the constraints involved -- and blows away C++ templates and the object code bloat that is all but intrinsic in their design.
Nothing, including Java is perfect, but Java as a language is still a lot better than C++ *or* C#. It is good balance of power, simplicity, and readability/maintainability.
Also remember things like drag&drop, integrated spell-checker, support for text-to-speech code (the "speak text" command in the Edit menu), AppleScript responsiveness... those are all part of the "feel" of Mac OS, and Java doesn't do any of them.
Comment of the year
Type erasure erases they correct type information of paramatized types and replaces it with its super. Call get class on the object it reports the wrong information. This means you can load any type with the same super or that super type into a collection or to a refrance from persistent data. No error until you try to access a method on the bad object. Type erasure produces incorrect run time information, breaks the rules of inhieretance, and destroys the type saftey of the language. The only arguments i have heard so far for it are "no language is perfect", "we need a solution that works with legacy code", and "its better than ". The first and third arguments, well... some real visionaries, huh? That second dog just don't hunt. Type erasure does not play well with legacy code. Imagine trying to find the line of code that crashed your program when your error is thrown in a completly different place. It was a bad move that cannot be taken back. I think time will show that developers will choose a more reliable and logical solution that behaves predictably.