To read all comments associated with this story, please click here.
It's less problematic for Linux than it is for Microsoft. It's not like there are that many desktop apps being written in .NET anyway. But when it comes to Web application development in the enterprise (which is where most enterprise software development takes place these days), it's more problematic for Microsoft than for Linux.
Java is winning the Enterprise Web app war over .NET by quite a wide margin specifically because it doesn't lock users into Windows. As a Web application developer for the vertical market, if there is any chance that any of my customers might want to run their own instance of the app on their own servers in their own rack, rather than let us host it for them, I'm always going to use Java instead of .NET. Why? Simple. I'm not going to risk losing a million dollar contract because the customer's infrastructure is Linux based, and so they have to choose a competitor's product just because my .NET product won't work on their Linux servers.
Never underestimate the value of being able to tell a potential customer "Yes, it works, and is supported on your existing server infrastructure. And that is true whether your infrastructure is based on Windows Server, Linux, Solaris, AIX, HP-UX, or even Mac OS X Server."
If Microsoft wants .NET to effectively compete with Java in the enterprise space, .NET has to have very good, and supported cross platform implementations that are 100% compatible with .NET running on Windows. It really is that simple.
In some ways, .NET is nicer than Java. ASP.NET web forms are really slick for example. But I still won't use it for most of my products because it locks my customers into Windows Server, and doesn't give them the freedom of running the app on whatever Server OS they use in their organization.
Edited 2011-05-05 16:20 UTC
The same argument applies on the desktop itself as well as on the server. If one writes a desktop client application in a cross-platform framework, such as Qt/Java or Qt/Python for example, then it can easily be made so that it runs on Windows, Linux or Mac desktops.
ASP (or the original Java JSP) is old tech. Try Google Web Toolkit (GWT) which allows use of Java both on client and server side. Lightyears ahead.
Microsoft's equivalent of GWT is called "Project Volta" but that appears to have stalled.
Don't need .NET on Linux (or any other platform). Java does the trick, is GPL Free (beer & liberty), has more jobs, more libraries, more platforms, multiple vendors, and wider reach.
If you like C# then it was derived (and enhanced) from Java (via the intermediate language "Cool"). They are pretty similar (and their very base libraries too, given their common lineage). There are plenty of folk who whinge about language constructs in C# that are missing in Java but they miss the point that Java is deliberately simple by design - so that less skilled programmers can use it as well as very skilled developers.
And why don't hire Microsoft the Mono-developer like de Icaza?
If a platformindependent OpenSource .NET is good for Microsoft, why then comes it from HelixCode/Ximian/Novell/Attachmate/SuSE and not from Microsoft itself?
Mono is OpenSource, so Microsoft can still support and improve it.
Au contraire, Qt has bindings for: C, C++, D, Python, Ruby, Java, Pascal, Perl, PHP, QML, Tcl, Haskell, Lisp, R, Ada and Lua.
http://en.wikipedia.org/wiki/Qt_%28framework%29#Bindings
Qt is cross-platform, is licesnsed under LGPL so it has a linking exception, and it has a powerful development environment.
http://en.wikipedia.org/wiki/Qt_%28framework%29#Tools
http://en.wikipedia.org/wiki/Qt_Creator
Even though it does support C#, AFAIK there are very few programs written in Qt/C#, probably because the plethora of other options are better.
If one wants to write a cross-platform application these days, using Qt is by far the best option.
Enjoy.
Using .NET will constrict your application to just the Windows market.
Edited 2011-05-05 23:15 UTC





Member since:
2008-10-30
This is problematic both for Microsoft and for the Linux desktop.
Microsoft need multi OS support for .NET (as Anders is saying "Reach is King").
For Linux development it leaves C++ as the only real development environment, and that sucks.
Linux desktop RIP.