Views
- State: published
Why Java is Better than .NET, Reasons #81 to #85
|
|
20030124071716
Aha, finally someone is bold enough to conjure up an "Anti-List". Here's my wager, he's not going to reach 101. Just to "time box" the endeavor, I bet that he's not going to be able to do it in a month's time. Andy, the clock is ticking, deadline Febuary 24th, 2003. Meanwhile, I plan on cleaning up the list after I hit 101, getting it better organized and making the arguments clearer and more air tight. Here are 5 more today:
81. More Flexible and Powerful 2D DrawingJava's 2D drawing and imaging APIs are outstandingly designed. For example, support for new Image formats can easily be added without having to modify a single class in the core API. This is not the case with .NET's System.Drawing api. The System.Drawing api is based on a thin wrapper over GDI+ and therefore not as well designed or portable as Java2D.The Java2D api aside from being more flexible is more powerful being able to easily support the rendering requirements of SVG (see Batik). One reason may be that a lot of the Java2D code was contributed by Adobe the leader in drawing and imaging products. There are of course SVG projects based on .NET, however until now, they haven't yet built one that passes all the conformance tests.[source]82. Better Designed GUI FrameworksJava's two leading GUI frameworks Swing and SWT are better designed than Windows.Forms. In fact both are designed with Java in mind and designed to be portable, unlike Windows.Forms where its a thin wrapper over a native library.Swing and SWT use the MVC pattern extensively, separating model from presentation. Windows.Form however in many cases doesn't. Controls such as TreeView, ListBox and ComboBox don't separate model from presentation, thus it encourages developers to store data in their UI controls.Also Swing is more powerful than Windows.Forms. For example, border styles can be plugged into any component using the strategy design pattern. In Windows Forms, components are responsible for supplying and drawing their own borders. [source]83. Create More Threads in WindowsJRockit is a JIT compiler that is able to create more threads than allowed by the operating system. This is important in that is allows for more scalable servers. JRockit has the concept of thin threads that allow several threads to be simulated by a single native thread, this leads to lighterweight context switching and scheduling. .NET on the otherhand is limited by the capabilities of Windows threading.84. Unambiguous DefinitionThe definition of .NET is completely ambiguous. That is, Microsoft has chosen to use the term ".NET" for almost everything it produces. I'm now eagerly waiting for Microsoft to release Mouse.NET. (more MS Dumps .NET Tag and I'm Confused... ) In practical terms, there's no easy way for a customer to determine if a product uses the CLR or not. So you just never know if you're buying more legacy versus upgrading to a new framework.Also, the search term ".NET" is an extremely poor term discriminator for search engines. Searching for ".NET" in Google shows one entry for Microsoft .NET within the top 40. The implications of this is that its just harder to find information about .NET.85. No Anti Open Source StanceThe Microsoft EULA agreement casts doubt on the legality of creating GPL software using .NET. [see see]
Last modified 2003-08-17 06:03 AM

