As dedicated developers, end-users, and champions of Microsoft’s .NET Framework, we’re making a final plea to Microsoft and the .NET Framework team to save .NET and make it a real multi-platform framework. Please!
Sun could (and did) do it with Java, so why can’t Microsoft just swallow the pill already and provide real support for the .NET Framework on all operating systems? Yes, that includes Linux and Mac too. It’s ironic, because the .NET Framework has so much potential as a platform with its unique multi-language structure, nifty features, excellent libraries, (relatively) well-performing output, and darn-good innovative technologies like LINQ coming-up and XAML already here. Yet Microsoft just doesn’t realize that if they truly want .NET to succeed, they’ll have to bite the bullet and stop pretending that only officially supporting Windows won’t make users leave Linux/Mac/BSD/Whatever and buy licenses for Windows instead.
Now, that said and done, it’s interesting to note that in past Microsoft has been much more kind to Mac OS and its users with regards to Office, MSN Messenger, even to some extent the .NET Framework, Silverlight, and just about everything else than they have been to Linux and the rest of the world – despite Mac OS’ relatively low market-share.
Obviously Microsoft doesn’t view OS X as a threat (whether they’re right or not isn’t the question) and therefore feel comfortable enough to release several otherwise Windows-only applications, platforms, suites, etc. to the Macintosh domain. Be it Office or Internet Explorer (yes, the failure), Microsoft has always pretended Linux and its share of the OS Market simply doesn’t exist. Technically, that’s not wrong: Microsoft has its own OS to push, and if it sees Linux as a serious competitor and tries to force users looking to take advantage of other non-OS Microsoft solutions to use Windows, that’s their right and their call to make.
But with .NET, what Microsoft just doesn’t seem to realize is, they gave up the privilege of releasing Windows-only binaries when they declared .NET a cross-platform development package. While it may be unfair to compare Sun’s Java along with their own OS (Solaris) to Microsoft’s .NET and Windows because Solaris was almost never targeted as a home operating system (until Jonathan Schwartz came up with that wonderful idea), it does beg the question: why is Microsoft so unwilling to support Linux, OS X, and BSD in their quest for cross-platform programming?
Look at it this way: how much time, money, and resources (programmers and otherwise) would it take from Microsoft to port a fully working and 100% compatible version of Visual Studio .NET, the Windows Controls, and C#/VB 2005 to OS X and Linux? The answer: not much… relatively speaking of course.
People won’t switch to Microsoft Windows just because of the .NET Framework. Sure, people already using Windows may not be comfortable leaving Windows because their .NET programs won’t comfortably run on any other operating system, and Windows developers may feel a little bit locked-in if that’s all they know (to put it mildly!), but that’s about it. Let’s face it: Microsoft is only hurting .NET developers and end-users alike by locking them into the Windows platform. While this may seem like something that Microsoft excels at doing and has tons of experience with, in this case it’s just absolutely illogical and insensible seeing as it’s not winning them any Windows licenses nor doing them any favors with the developer crowd (yet Ballmer’s “Developers, Developers, DEVELOPERS!” comes to mind…).
To be brutally honest, Mono and MonoDevelop (the .NET Framework and Visual Studio IDE equivalents for Linux, respectively) are complete crap – compared to the Windows versions that is. While Microsoft may “endorse” Novell’s project, that’s nothing more than a political statement, a strategic business move, and a (quite pitiful) attempt at making the .NET Framework look more cross-platform than it really is(n’t). Sure, Mono is (kinda) great, but it’s absolutely no substitute for a full 100% compatible port of Visual Studio and the .NET 3.0 platform to Linux, created and maintained by none other than Microsoft.
Microsoft needs to wake up and realize that they’re not gaining themselves any favours by ignoring the fact that there is a sizeable amount of the Linux userbase willing to adopt Microsoft solutions so long as they actually work. If Microsoft can’t release a Linux-compatible version of Silverlight, how the hell can they label it as a “Flash killer?” What about Windows Media Player 11 and the WMP codecs? Since WMP 11 shipped, Firefox and Opera plugins to add WMP functionality to their browsers was broken. Microsoft may have solved it for Firefox, but what about everyone else?
The bottom line is, Microsoft doesn’t understand the definition of the word “standard.” While that’s fine (for them) when they’re ignoring standards set by others, it’s not OK if they want standards they define to be adopted unanimously by the rest of the computer industry as well. That’s just not what a “standard” is. In order for something to be a standard, it has to just work… Everywhere. Yes, Linux too. We want to be able to just drag and drop an application compiled on Windows (no, not a console application, a real application) to Linux, OS X, BSD, or Solaris and just have it work.
A year ago, we published a 5-page article commending Microsoft for the .NET Framework’s ease-of-use, power, and aesthetics; while concluding that all it needs to become the only programming language desktop-developers would ever need was improved multi-platform support. Unfortunately, that hasn’t happened, and judging by Microsoft’s release of Silverlight earlier this week, it’s not going to happen for a long, long time. So please Microsoft, can you do something about it?