Are you confused yet?
In just about two weeks, Microsoft will launch Visual Studio 2005, SQL Server 2005, and BizTalk 2006. Consider a question about this launch. When will these products be released?
Here is a hint that may help confuse you: The launch date is November 7th.
Did you answer November 7th for the release date of the three products? If so, you score a 67% on accuracy. Although Visual Studio and SQL Server's new editions are expected to be released on the same date as the launch, BizTalk 2006 is not expected until a few months later. It is only being launched, not released. Yes, launching is not the same as releasing. That is a bit confusing, isn't it!
I had a discussion with a .NET trainer in Indianapolis, Indiana last night about the launch of .NET 2.0. He commented about going to the launch event in Chicago on November 10th. It was interesting to note that this was an official launch event, but that it was three days after the official launch. It was even more interesting to see his reaction when I told him that Indianapolis was having a launch event that would cover the same sessions as the Chicago event, but that it was on December 15th. It raised the question of how long can a company have events and continue to call them launch events! At what point does the product sail and it becomes simply standard training? A launch that spans weeks: That's a bit confusing, isn't it!
Let me ask another question. We've been talking about Visual Studio 2005 ("Whidbey") features publicly for about two years. The product hasn't even released yet, but Microsoft is already talking about the new features that could be in the following version. They've even released code to show how these even newer features should work.
Consider the following list of items related to C#:
[ ] Anonymous Methods
[ ] Anonymous Types
[ ] Expression Trees
[ ] Extension Methods
[ ] Generics
[ ] Iterators
[ ] Lambda Expressions
[ ] LINQ (Using C# code to access a database directly)
[ ] Nullable Types
[ ] Object and Collection Initializers
[ ] Partial Declarations
[ ] Pragma Directives
[ ] Static Classes
All of these topics have been discussed in the past several months on CodeGuru and similar sites. Additionally, Microsoft has associated all of these topics to C#. Most were in demonstrations at the last Professional Developers Conference (PDC) and/or Tech Ed Conference put on by Microsoft.
Which of these technologies are currently parts of a released product?
Which are parts of the Visual Studio 2005 release coming in about two weeks?
Which are most likely not going to be available for another year?
All are being discussed. All are a part of existing articles and blogs on the Web. Some of these features are, however, off limits for production software because they aren't released yet, and won't be released as final products within Visual Studio 2005. In other words, even though you can read an article today on LINQ with C#, don't expect to find that as a part of the released Visual C# 2005 product. It is actually slated to release after that. That's a bit confusing, isn't it!
Language Versus Implementation Versus IDE
One topic I've written about before relates to version numbers on programming languages. What version is C++? C++ has been around a long time, so it is a tough question. C# is a newer language: What version is C#?
Did you say 2?
The current ECMA standard (Ecma-334) contains the standardized definition of the language. This standard is dated June 2005 and is considered a third edition. Visual C# 2005, however, is the second implimentation of the C# language by Microsoft. As such, they refer to their implimentation as a 2.0 version. Although they used to refer to their implementation as Visual C# .NET, they now simply refer to it as C# 2.0. The standard is a third edition, but C# 2.0 is what you see the implimentations called. That is a bit confusing, isn't it!
With the ease of releasing information and communicating, more information is being released and communicated. The end result is that information overload and information confusion is becoming a reality. No longer can you simply read an article on C# or a technology and assume it is a live, real, usable product. Rather, you need to evaluate what is being said and to what software it applies.
For the average developer, this issue has always existed; however, the level of detail at which information is being provided and the amount of information has grown. Additionally, information is being provided much earlier.
As developers, it is good for us to know what is coming, but it is also good to keep that information separated from what you are doing today. If you don't, you're liable to quickly become a bit confused! Getting information early can be a good thing. It can help you plan for the future.
One prime example is knowing what is coming in with Visual Studio 2005, and what is not. In the list above, all the items listed were from either the 2005 release or are items indicated for the "Orcas" release. Do you know which go with each version? The answer is provided on page two of this article!
Until you see the answer, hopefully you won't be too confused!