Why Java is Better than .NET, Reasons #51 to #60
|
|
20030118055932
It's the weekend! As promised, I'm adding 10 more reasons to the list.
51. Continuous Build FrameworksJava has several frameworks to support a countinuous build process. The frameworks manage builds, documentation, source metrics, testing, code coverage, source cross-references, email notification and more. These frameworks give teams a automated and continuously updated snapshot of the overall state of development. Examples of these frameworks are Maven, Forrest, Centipede, AntHil and Cruise Control. There are no equivalents of these frameworks in the .NET environment.52. Open Community ProcessThe Java Community Process (JCP) is gives vendors, organizations and individuals a forum to contribute to Java's future development. How does one contribute a new API to the .NET framework? Unless you're a Microsoft employee the process isn't available to you.53. Faster Virtual MachinesA recent study of "Method Devirtualization and Inlining" leads to this conclusion: "The benchmark reveals clearly that the CLR lacks any devirtualization; its performance is just a little superior to HotSpot Client 1.3.1; significantly inferior to JET, and very inferior to IBM and HotSpot."54. No Rebooting on UpgradesService Pack upgrades require reboots, adding a library that's dependent on an unmanaged DLL requires reboots. A server pack upgarde can require over 30 minutes to install. With Java an upgrade of the entire virtual machine does not require a reboot of the operating system. Furthermore, webstart has excellent facilities for managing the upgrades of the VM.55. Multiple Pluggable Cryptographic ProvidersThe Java Cryptography Extension (JCE) defines a standard way of seamlessly plugging in different cryptographic services and algorithms in Java. There are multiple vendors RSA, Baltimore, Entrust, Cryptix, Phaos, BouncyCastle, Wedgetail see http://www.itworld.com/nl/java_sec/06222001/56. Better Collection ClassesThe Java Collections Frameworks is simply better than .NET. .NET's System.Collections namespace doesn't even have a Set and its corresponding operators union, interesection and difference. Makes one wonder if the person who designed this has a degree in Computer Science.Also there are also more extensions available for the Java Collections Framework. Examples are Jakarta Collections, JGL, Trove and PCJ , many more can be found at http://www.javacollections.org.57. More High Performance Database DriversThere are more high performance database drivers that support the JDBC standard as compared to ADO.NET. In fact ADO.NET doesn't have high performance drivers for DB2/Informix or Sybase, these vendors alone corner nearly half of the database market.58. More LiteratureThere are more books published for Java than C# or other .NET languages. Furthermore, there are more books that cover advanced topics, most .NET languages books tend to be beginner books. There are many seminal books that are important to read by any learned developer, examples are "Concurrent Programming", "Refactoring", "Pattern Languages of Program Design" and "Server Component Patterns", "Agile Software Development", "Test Driven Development" and "Core J2EE Patterns", these all require an understanding of Java. (note: You can support this list by purchasing any of these books via the links above, thanks!)59. Free Tools for Checking Coding StandardsThere are many free and open source tools that check coding conventions in Java. Examples are Checkstyle, PMD , JCSC and JLint.60. Tools to Support Design By ContractDesign By Contract is a mechanism introduced by the Eiffel language to support more robust software development. There are several free tools in the Java world that support this methodology. Examples are: iContract, JMSAssert, jContractor and Jass.
Stay tuned for more next week, and don't bang on the freeroller server too much!

