|
Before I start my conspiracy-theory induced rant, I want to say this first:
The ability that I will have to debug code within Visual Studio 2008 will be unprecedented. Why? Because now instead of having to use third party tools to dissasemble Microsoft libraries so that I can get a deep stack trace and figure out exactly where something blew up so I can find out what information I passed incorrectly, or what edge case I didn't know about - now that source code will appear automatically within Visual Studio 2008, on-demand, when the error occurs. This is fantastic, and has long been one of my pet peeves of writing code on the .NET Framework.
Now for the rant:
Anybody who thinks that Microsoft is doing this out of the goodness of their heart is delusional. Microsoft may be responsible for some of the coolest development stuff to ever surface on this planet (.NET included, especially some of the new data stuff like Astoria/EDM), but that doesn't mean their motives are pure of heart. They don't have to be. The game is all about making money, and destroying the competition any way possible.
Let's take a look at some interesting facts that might tilt you toward my cynical way of thinking:
Now, if you are a die-hard cynic like myself, you're thinking that this is a brilliant strategic maneuver by Microsoft. At first, Microsoft is going to shut up a lot of whining Open Source people who claim that MS is just a big closed system. At First. If you ask me, the real reason for them releasing this source code is to make it more difficult for the mono project to create replicas of WPF, WinForms, and ASP.NET. With the source code available for all to see, it is far easier for Microsoft lawyers who might potentially engage in law suits in the future to claim that the people working on the Mono project stole their WPF code or their WinForms or ASP.NET code from the public BCL instead of building it on their own.
If you asked me what's the #1 reason why I insist on running all my back-end production code on Windows Server 2003, the answer is simple: .NET. I can run my ASP.NET code on it, I can run all my other .NET code on it. Period. What if, let's just say, Mono suddenly became as feature-complete as the regular .NET Framework. You think Microsoft wants to start losing server business (where it makes all of its real money...) because a bunch of .NET developers decided to run Linux .NET instead of Windows .NET?
You might be thinking I'm on crack, but I'm on crack like a fox. Trust me, this public BCL stuff is a strategic chess move by Microsoft and nothing more.
The microsoft reference license (the license under which the BCL is being
released):
I'm happy, yet cynical as well. However I disagree that this is a
challenge to the Mono project. A future implementation of WPF or the
existing implementations of WinForms and ASP.NET are built on completely
different technologies (i.e. GTK+ vs. the Win32 API) and the resulting code
is necessarily different enough from Microsoft's implementation as to not
be a problem.
I was under the impression that Microsoft actually helped with the
development of moon light in partnership with Novell
Given that is so easy to see the psuedo-source using Reflector I can't
imagine having the real source out there gives Microsoft any better legal
defence for claims of plagiarism.
This will allow the mono folks to more easily reverse-engineer .NET
libraries. Having the source code will allow them to make Mono more
compatible faster. It will greatly benefit MS developers as Darwin benefits
mac developers and probably lead to greater adoption of .NET.
James..if a mono programmer accepts the license by looking at the code,
Microsoft can claim that the mono project has been stealing IP. Folks on
the mono project can reverse engineer the code quite easily now using
Reflector. If anybody on the mono project signs the license (they must
agree to it in order to see the source code to .NET) then Microsoft can
attempt to claim that the mono project stole code from them and tangle them
up in legal battles.
surely there are ways for a saavy person to work around that.
No doubt there are ways for savvy programmers to work around it, and anyone
with a decent knowledge of licensing schemes will be able to find ways
around it as well. I don't think MS intends to actually sue anyone, I think
MS intends to impede competition through the threat/fear of legal action.
.NET was a dumb move by MS overall. MS depends heavily on customer lock-in.
They should have never set the system up so that it would be relatively
easy to clone it on other platforms.
Holy crap you come up with some doozies. There are many ways in which mono
is a benefit to MS. Do you *really* think MS want stamp out mono?
Seriously .. it makes no sense. The damage to their reputation amongst the
community would not be small (developers, developers). They are pobably
the most watched company in the world over anti-competitive practices, as a
result in many cases they are now one of the most open IT companies.
There's little to no blog cencorship and they've gone a long way
standardising their technology and playing fair with third party software.