With .NET, all the choices are provided by Microsoft

With .NET, all the choices are provided by Microsoft

Excuse the headline. I got a comment in a previous blog post, along those lines, and I had to respond.

No matter how many times that statement is made, it still isn't true.

Just to consider a couple areas:

On IDEs, Visual Studio is the "choice" provided by Microsoft, but have you considered: SharpDevelop - Not provided by Microsoft. Borland C# Builder?

On open source frameworks and projects. A while back I listed about 10 projects just in the area of source code control and project tools. Number of those provided by Microsoft? zero.

On databases, just look at the history of this blog and you will see entries about Oracle, DB2, Sybase, Firebird, MySQL, and other open source DBs too.

I will not claim that .NET gives you more choices in the underlying OS as compared to Java. Multi-OS is a core Java goal. .NET is a part of Windows. By definition, Java has "more choices". If you think multi-OS trumps every other dimension, then you're right, Java provides more choices.

I am also not going to claim that .NET has as many, or more, open-source projects as compared to Java. I don't know where I saw it, but somewhere I saw a stat that said, Java has now reached parity with C++ in the number of sourceforge projects. Java is 10+ years old, and has a lead here.

Ok, so what are you saying?

What I am saying is, the blanket statement that ".NET means elimination of choice", or ".NET means all the choices are provided by Microsoft," is wrong.

In general, multi OS does not trump every other issue. Most people, most companies, do not want "multi OS". They want a system that works. They have an operating system, or maybe they don't. But #1, they want an app that does the job, whatever it might be. The core goal is not "get an app that does the job on 10 operating systems". It is "get an app that does the job. (and I don't really care about the OS)"

In some cases, multi-OS may be of value. But in many, it is not. More often than not, these days the requirement is "I need to connect to X, Y, and Z", not "I need this app to run on operating system A, B, and C". In other words, Interop is the key demand, not multi-OS portability.


Comments (5)

  1. Dino,

    i do agree with what you say – but you _are_ aware that borland is no longer in the game, are you?


  2. Don’t be silly – .NET works just fine on Linux and OSX and many other OSes.


    ALSO not provided by Microsoft. Heck, Microsoft barely admits it exists.

    Which is, to reiterate, silly, because there *are* environments where multi-OS is a major selling point, and Microsoft could compete for the Windows share of those environments by promoting Mono for the rest…

  3. Jeff Parker says:

    Well, yeah all that but you forget one important thing. .net is just plain cool. I have done Java Development, I have done VB development, heck I have done basic assimbly and even Ada. .net just is an awsome platform to build on. Add in VS and it is pretty much a developers dream. I still do not like all the stuff VS tries to help me do. I am old school though and much prefer to type a lot by hand. But I do admit that the class designer and GUI designers and stuff are pretty awsome.

  4. cheeso says:

    Thomas, yes I saw the news that Borland would sell off its dev tools to a separate company.

    I don’t have news on C# Builder or the impact this move will have on Borland’s .NET tooling business in general. Anyway, for now there is still another choice.


  5. Tanveer Badar says:

    But .net framework runs on more the x86. To name desktop/server architectures, there’s x86, x64 and ia64.

    Then, there’s .net compact framework which brings mobiles into the mix for what its worth. Symbian may be lingua franca when it comes to mobile market and Windows CE and .net CF are there as a non-deniable truth.

    Still more, there’s .net microframework and Windows Embedded. And I won’t even list mono as its a no-brainer. Add all platforms a typical mono drop would run on to the concoction.

Skip to main content