Wednesday, April 19, 2006

Why you shouldn't believe everything you read on the Internet

This is a great reason to not believe everything you read on the Internet. I don't know anything much Java, but I do know a thing or two about .NET and most of the items on that list are plain wrong.

Here are a few of the more defamatory ones (with my comments):

"An Abundance of Experienced practioners. Nobody seems to know how to write .NET programs well and that's giving .NET a bad name"

I know a fair few .NET developers - C#, VB, Delphi and even COBOL. I can assure you they know what they're doing.

"Industrial Strength Collection Classes - The .Net libraries look like they were designed by high-school students, First year CompSci? students at best."

The writer obviously hasn't heard of Anders Hejlsberg who would be in my all time top 10 Software Architects.

"More Languages - The JVM is more "common" than the CLR."

This to me seems to be two seperate points, but I'll take the "More Languages" argument. Here's a list of .NET languages off the top of my head: C++, C#, VB, COBOL, Object Pascal (Delphi), Python, J#

"Sane Coding Conventions - I don't know what's worse Hungarian notation or .NET coding conventions."

Surely sanity is in the eye of the beholder. I like the .NET conventions, plus Intellisense and sensible names in the class library mean I know the the difference between a namespace, class or method name.

"EmbeddedDevices - Java inside small packages."

If you don't count PocketPC's or SmartPhones as Embedded Devices.

"Comprehensive RDMS Driver Support - Can you find a ADO.NET driver for an open source database?"

MySQL
PostgreSql
Firebird

"Leads In Software Process Best Practices. Most best practices in software development are done in Java shops."

This is clearly wrong. I myself and most of the .NET developers I know use some or all of Patterns, n-tier design, Unit Testing. I don't think SoftDev best practice is limited to Java.

"Affordable Industrial Grade IDEs"

SharpDevelop, WebMatrix, Visual Studio Express are all free. Borland Developer Studio professional is about $300US.

I could go on but I won't. There is a challenge out by the original author to make an anti-list of why .NET is better than Java. I would love to but don't know enough about Java.
Besides, I would rather spend my time programming in .NET - its much more rewarding...

3 comments:

Anonymous said...

"I would love to but don't know enough about Java."

That didn't stop the original author writing about .Net!

Anonymous said...

I'm gonna flame you now :) It pays to know both sides of an argument, and to research why someone said something in the first place.

First thing.... the page you are referencing is from 2004.

"An Abundance of Experienced practioners. Nobody seems to know how to write .NET programs well and that's giving .NET a bad name".

This was a problem.

"Industrial Strength Collection Classes - The .Net libraries look like they were designed by high-school students, First year CompSci? students at best." This was a problem, people in MS knew this was a problem, they were badly written (remember, 2004). Just because they have some great brains working for them dosnt mean all the developers at MS will stop hurling out various crap.




""EmbeddedDevices - Java inside small packages."

If you don't count PocketPC's or SmartPhones as Embedded Devices. "

They are not really embedded devices in terms of what people normally talk about as an embedded device....you can't buy a micro with a clr built in, you can buy a micro with java built in. Meaning you can't create your own embedded device based around the clr. But you can with java, in fact java orginated as a soloution for embedded devices.

""Leads In Software Process Best Practices. Most best practices in software development are done in Java shops."

This is clearly wrong. I myself and most of the .NET developers I know use some or all of Patterns, n-tier design, Unit Testing. I don't think SoftDev best practice is limited to Java."

read the statement, Java leads in best practices. This is generally true. The java world popularised things like jUnit, refactoring, lots of patterns, good soloutions for enterprise things, and lots of cool tool which have since been ported to .NET (though not all this orginated in java, but the people who made them popular did it in java). Java was/is often used as the language of choice to demonstrate software development ideas.

Not that this makes any difference to the usefulness of .NET, most of the points no one really cares about as they tend to fit into the "brownie points" category. .NET 2 is a fantastic jump ahead of java, and the next generation of C# is going to be even better. Might even start giving Ruby a run for its money :)

James said...

Yeah I knew it was from 2004. Maybe the author should update it. It's out there in the public domain still so I think it gives me the right to comment?

I could rebutt your rebuttal of my rebuttal but where would it end.