Reverse WinFX

  • Author:
  • Send To:
  • Sponsored By:
  • More Info at:
Dear Jason Zander and whom ever it may concern,

WinFX was renamed to .NET 3.0. This decision was made without any community feedback, which is uncharacteristic of Microsofts recent openness to community input.

Not only is .NET 3.0 a misnomer, it throws a wrench in the .NET Framework, likely jamming future versions. It is also a severe inconvenience to developers, especially newcomers.

We ask that this short-sighted decision be turned around before the first release of the framework for its own sake as well as the sake of developers.

I state eight reasons to revert to the old name of WinFX. The terminology used here assumes that youve read Jasons blog entry here:

1. Future versions .NET has defined a very solid convention for version numbers: Major version increments indicate structural changes; minor version changes indicate breaking changes. .NET 3.0 is neither a major or minor version change its not even the same product. Future CLR improvements and API improvements will have the same interlocking naming. Worse, at this rate, the more significant CLR updates will be given the ".5"s while the "additive" (non-breaking) changes will have whole major versions.

2. Bootstraps .NET 3.0 does not have a bootstrap. It offers libraries that provide functionality as needed (just as its always been for .NET applications), but the bootstrap is in fact the .NET 2.0 CLR; .NET 3.0 applications merely make use of its libraries. Not only is this misleading, it impairs the modular paradigm of the .NET Framework. In terms of kernels and bootstraps as in the Channel9 video, the microkernel structure of the .NET Framework has been traded for a monolithic kernel.

3. WinFX is an API, not a platform Admit it. There are very good reasons that this distinction is made, namely that they are developed on separate schedules and are different things altogether. Though you express concern that without the version number increment it seems as though the platform has not improved, this is an invalid concern because a) .NET 2.0 is less than a year old; b) it is a lie to say that the platform itself has advanced.

4. WinFX is a better name The name WinFX is more indicative of advancement and innovation than .NET 3.0. Furthermore, even though .NET 3.5 is where the real meat of changes to the framework stands, due to the previous major version number change, 3.5 is now a minor version change. This does not reflect the major additions that .NET 3.5 makes. Future versions will suffer in impact due to this change as well.

5. Non-Win32 (Microsoft and non-Microsoft) implementations Other implementations of the .NET Framework, such as the Compact Framework, SPOT OS, Singularity and Mono will suffer from naming confusions. The CLR team took very, very careful steps to make sure the .NET Framework works on other platforms as well. Mangling the .NET framework with Win32 specific API breaks that, isolating the entire framework to Windows.

6. Where's the "3"? The current versions of all implementations will be stuck at .NET 2.0; the next version will be forced to be called .NET 3.5 even though the 3 portion is absent on non-Win32 implementations.

7. Explanatory confusion on learning to program in C#, with the older naming, one can learn C# (2.0), and learn WinFX for Windows programming. Now, with .NET 3.0, one will have a hard time understanding why he needs to buy a C# 2.0 book that teaches .NET 3.0. In otherwords, it forces all .NET books to be updated and reprinted needlessly. Also, how are companies to "decide" what to use?

8. Merit You justify the move chiefly by explaining the installation process. However, this does not add any value to the installation process. WinFX, ultimately being a library of .NET classes that can be installed to the GAC just like any other, is best installed by a normal installer like DirectX.

Please, for the frameworks sake and for our sake, reverse this decision. It may be good now, but some years down the road it will be regretted.