If you are a .NET developer, you've no doubt heard about the recent decision to brand WinFX as "The .NET Framework 3.0", essentially combining the WinFX libraries with the .NET 2.0 RTM release. A quick look at the comments posted on the above linked article show that the majority of the posters are not thrilled with the idea, and for good reason.
One meerly has to look at Microsoft's past versioning choices to realize that the inclusion of the WinFX libraries into the 2.0 framework will cause confusion. Let's take a look at the previous versions. Microsoft has released three versions: 1.0, 1.1, and 2.0.
Version 1.0 was the initial release and included the BCL, Windows Forms, and ASP.net among other small libraries.
Version 1.1 was released shortly afterwards (relative to the time between 1.1 and 2.0), and included many bug fixes and small improvements. As far as the developer was concerned, however, there were no real language improvements. Nothing was added to C#, VB.net, or other built in languages besides the inclusion of J#. I'd have to do some more research into this, but I believe that the compilers were relatively unchanged (besides bug-fixes), and the CLR remained the same (again, besides bug-fixes).
Version 2.0 came out of the door with a new slew of improvements. Not only were the individual frameworks (such as ASP.net, Windows Forms, etc...) updated with a huge new array of features, but the language specification was updated as well. C# and the other included languages were updated with support for generics, anonymous methods, visibility accessors on property getter and setters, and much more. It was well worth the wait. Compilers and the CLR were upgraded to support these new features.
And now we're presented with the .NET Framework 3.0. Instead of including any language improvements or bug-fixes for the 2.0 framework, it's being coupled with the WinFX libraries and being branded as an entire major version milestone. Is it just me, or does it simply seem like a marketing ploy to hype Vista up even more? "Microsoft Windows Vista! Now with the .NET Framework 3.0!" Why? Are you trying to draw consumers in? They couldn't care less about the .NET Framework. Are you trying to convince developers to program against Vista's new APIs? Any developer with any ounce of sense can see through the ploy and into the future versioning frustrations.
Most developers have accepted that it was only a matter of time before Microsoft's gigantic and clinically retarded Marketing department got hold of the .NET Framework. We were able to steer clear of Marketing hell for several years because .NET is purely a developer tool, and becuase they could have their way with Visual Studio (e.g. Team Suite). Did developers complain when Avalon and Indigo were renamed to three word mouthfulls? Not really.
So here's the problem, and the future source of headaches for all but the most up-to-date developers out there.
.NET Framework 1.0
- 1.0 compilers
- 1.0 language specifications
- 1.0 CLR
- 1.0 libraries
.NET Framework 1.1
- 1.0 compilers
- 1.0 language specifications
- 1.0 CLR
- 1.1 libraries (1.0 with added features)
.NET Framework 2.0
- 2.0 compilers
- 2.0 language specifications
- 2.0 CLR
- 2.0 libararies (1.1 with many added features)
.NET Framwork 3.0
- 2.0 compilers
- 2.0 language specifications
- 2.0 CLR
- 2.7 libararies (hey, WinFX is pretty big. I'd consider it worth about 0.7)
.NET Framework 4.0 (what else do you think it'll be named?)
- 3.0 compilers
- 3.0 language specifications
- 3.0 CLR
- 3.0 libaries (inclusion of LINQ and its derivatives).
And the confusion will contine on as subsequent versions of the .NET Framework are released. To the casual developer who many have read all about the upcoming changes in C# 3.0 (LINQ), ADO.NET 3.0, and other improvements that are targetted at Oracas, the .NET Framework 3.0 is a slap in the face. "Didn't I just read that I could do language integrated queries?" I could go on from here, but I think my point is made.
Why is Microsoft cheapening the .NET Framework package by branding it with a version number that it does not portray? Launching it with Vista is NOT going to help you sell more copies, and is NOT going to draw in more developers (in fact, I would say that it could drive developers away). Please, Microsoft, rebrand it with a 2.x version number (2.7 anyone?). All you're adding are a few libraries. It's nowhere near the leap from 1.1 to 2.0. WinFX is a fantastic set of libraries, but it's not worth an entire major version number increment.
Does anyone agree with me? Should I post a suggestion on the MSDN Product Feedback page? If I feel that I have some support from the .NET developer community, I will.