What Sun did was not actually that remarkable; Borland Delphi had similarly always shipped with the source code to its VCL – visual control library – available. Delphi compiled its programs to native Win16/Win32 code and did not implement a runtime, but the key to its magic was again a very rich suite of library tools and gadgets and functions and controls. These were collectively known as the VCL.
Just as above, Delphi programmers could read through the VCL code and learn how classes had been implemented. They could eke more performance from their code by understanding the libraries better; they could improve their own programming. And when debugging, it was effortless to single-step between your own code and the VCL code and back again.
Yet, despite precedent, Microsoft did not release the .NET framework source code when it released the first Visual Studio.NET at the start of this decade. And, might I add, despite the fact that the very same talented individual who created Delphi was poached to Microsoft and produced the .NET framework and the C# language. That’s right; there’s a direct evolution of thought between Borland’s Delphi and Microsoft’s .NET in the form of Anders Hejlsberg who authored both.
Whether Hejlsberg did or did not want to release the .NET framework source code as he had done for Delphi previously is moot; Microsoft did not do so – until now. Windows’ developers worldwide are applauding the recent announcement that much of the framework source code has now been made public.
However, what are the ramifications? Does this mean Microsoft are adopting open source? Can you submit your own bug fixes back to Microsoft? Can you compile your own .NET libraries from the source code? Can this boost the work of the Mono project, and bring .NET to the world of Linux and other non-Windows operating systems?
The short answer to all the above is a resounding no. The license is not what we might consider a free software license but instead places a number of important restrictions on the end user.
The first restriction is that the source code is read-only. It cannot be compiled. It cannot be modified. No person outside Microsoft has any authority to modify it, correct it, enhance it or alter it in any way.
This restriction is made somewhat more capricious by the fact the source code is only viewable within Visual Studio 2008. You can’t even download it as a series of program code files and inspect it within any old text editor. You can’t check it out using the free, “express” versions of Visual Studio, let alone any other development environment, including previous versions of Visual Studio itself.
So, legally you may only read the source code, and practically you may only read it using the commercial editions of Visual Studio 2008.
Still, what’s it mean for Linux? Read on!