Visual Studio 2008 and .NET 3.5 were released yesterday. As far as Microsoft development tool releases go, this one is particularly important, as it is the first version of Visual Studio that includes integrated support for .NET 3.0 technologies such as WPF (Windows Presentation Framework) and WF (Workflow Foundation). Though it was possible to add wysiwyg editors to Visual Studio 2005 using a set of CTP extensions (and it was always possible to write directly to the classes), these extensions had their flaws, and more to the point, most developers wouldn't have bothered.
Microsoft tends to drive adoption of its technologies through strong tools support. Visual Studio 2008 combined with other recent additions to the Microsoft design family (the Expression Designer family of producs) will drive adoption of .NET 3.0 throughout the Windows development ecosystem.
I am starting to feel like I am getting a bit behind the technology curve. The last time I felt this way, I took a several month sabbatical to pursue other interests, one of which was to learn all about Microsoft's new .NET Framework. .NET 3.0 represents a shift in the way applications are developed in Windows, and though I know a fair bit of it (I've used WCF, and I'm deep into WPF), there is so much to learn in .NET 3.0 that, with the addition of .NET 3.5 and some of the new AJAX-oriented ASP.NET technology (which I also intend to learn soon), I am starting to feel like I've been blithely constructing sandcastles as a tidal wave bears down on the shore.
Some might call this process the Microsoft "upgrade treadmill," but I think that misses a lot. .NET 3.0 isn't an example of forcing developers to move forward in order to stand still. It represents a real improvement in the way applications get developed.
Microsoft is, at heart, a platforms company, and as I've noted in the past, the list of recognizable programmer names at Microsoft is incredibly long. That shouldn't be surprising, as Microsoft from its earliest days has been a builder of development frameworks. From the BASIC compiler developed by Bill Gates in the company's early days (and used in early Apple computers) to the data access innovations included in .NET 3.5 with its new LINQ technology, Microsoft's motivating principle, as it were, has been to make it easier to write software.
That's a pretty important orientation, and clearly a marked difference from companies like Apple (who as I've noted, is moving in more platform directions these days). Technologies that kept you "closer to the metal," as it were, were manageable in the past. My mother was a programmer, and she tells stories of writing assembly language reports for Burroughs mainframes that, due to memory constraints, had to leave empty spaces in memory where the results of calculation were inserted.
Clearly, we had to move beyond such technologies, as if we didn't, the interactive digital medium that made the Internet possible and drove computing beyond its business beginnings into the hands of ordinary consumers would not have occurred. That's a principle that applies to assembly language as much as C++. Programming would simply be too complicated for human beings to do in the absence of modern development frameworks.
Development simplification made possible by managed runtimes is essential as the computer systems landscape increases in variety. Computing has moved far beyond centralized business systems, integrating with devices that run our cars, manage critical elements of a city's infrastructure, and fit into our pockets. That trend shows little sign of slowing down. The job of a platforms company is to find ways to unify that computing sprawl into a cohesive software whole, and that is the niche that Microsoft has historically placed itself. Even when they make end-user products, they design them with an eye towards programmability and extensibility.
Yanking self back to the original point: Visual Studio 2008 is a particularly important release for Windows developers. It will start the ball rolling towards widespread use of some of the newer technologies inaugurated with .NET 3.0, which means people who work in that ecosystem will need to spend a few more nights cracking the books.
I'm unlikely to write anything until next week on account of the Thanksgiving Holidays. So, in case my prediction holds true, have a Happy Thanksgiving.