Skip to content.

Manageability

Sections
Personal tools
You are here: Home » blog » archive » Why Java is Better than .NET, Reasons #75 to #80

Why Java is Better than .NET, Reasons #75 to #80

20030123073422
Here's 5 more:
76. Hard RealTime Support
A recent paper by IEEE reveals the inadequacy of the .NET Framework for realtime applications. It concludes with "...the .NET platform are not currently appropriate for hard real-time systems for several reasons. It has unbounded execution of its garbage-collected environment and lacks threading constructs to adequately support schedulability and determinism, among other things. Our experiments also showed that the thread inheritance didn?t work."
In contrast Hard RealTime support for java is well studied and standardized [http://www.rtj.org/]. Furtheremore multiple implementations are available for RTOS.
77. Multiple Complete Implementations of the Virtual Machine
With Java there are actually multiple vendor implementations of the virtual machine on the same platform. There are two reasons for this that is not present in the .NET. The first is that you can license the Java from Sun and build your own compatible implementation, IBM, Oracle and TowerJ does this. The second reason is that there's a mechanism for writing your own JIT compiler and plugging it in to a standard JVM, BEA does this. These options are clearly not present with .NET.
78. Sane Coding Conventions
.NET Coding Conventions border on the ridiculous. For example for C# Namespaces, Class, Methods, Properties, Enums, Public Fields all have the exact same convention. That is, you could write something like this A.B.C.D.E.F.G() and you couldn't tell where the namespace part begins and ends, whether its a static call, or whether a method is called somewhere in between. In Java the same statement is much clearer, it'll go like this a.b.c.D.getE().f.g() . Also the weirdest thing of all is, why do method names start with caps?
79. More Comprehensive XML Support
There are more XML libaries available for Java than .NET. For example there are more kinds of parser, that is there are Pull Parsers, Event Driven (i.e.SAX) and model based parsers. There are more XML model representations (i.e. DOM, JDOM, DOM4J, EXML, XOM) these also come with a way to create customized highly effecient in memory representations. There are more extensive schema tools like validators and converters (i.e. MSV and Jing). There are XML pipeline frameworks like Cocoon. Pure XML databases like Xindice and XIS. There are XML gui frameworks like Luxor, XWT. There are XML scripting like Jelly.
80. Dynamic Distributed Systems
Support for developing dynamic distributed systems is more comprehensive in Java. Java's RMI has no equivalent in the .NET world, RMI is able to send messages where the class itself doesn't exist in the receiving machine. In otherwords it is able to dynamically load the class as the message is sent, extemely convenient however unavailable for .NET. Java takes this even furher with JINI by introducing dynamic discovery of services, robust distributed garbage collection and transactions. Furthermore, there are other Java based dyanamic distributed systems like OpenWings, Cougaar, FIPA Agent Systems and Grid Based systems.
Created by admin
Last modified 2003-08-17 06:00 AM
 

Powered by Plone

This site conforms to the following standards: