Windows 7 is roaring ahead in acceptance, but look beyond the desktop and Microsoft's platform is not in great shape.
Microsoft is losing to Apple, Google and RIM on mobile, in cloud computing Azure is only just getting started, Internet Explorer is down to a mere 61 per cent market share on browsers, and there's been a slow but steady decline in web servers for Internet Information Server (IIS) from around 20 per cent of the million busiest sites in September 2008 to 17 per cent in March 2010.
In Rich Internet Applications, the Silverlight runtime has muscled its way onto over 50 per cent of web browsers but remains well behind Adobe Systems' Flash at over 96 per cent.
Microsoft does its best work when under stress - Windows 7, for example - and to further prove this theory, Visual Studio 2010, due today, is the company's best developer release for years.
There is no shortage of new features, so much so that Microsoft itself has done a poor job of communicating the extent of the changes. The starting point is a new editor and shell built with Windows Presentation Foundation, and a new Managed Extensibility Framework to stitch together the various components that make up the Visual Studio package.
If you use multiple displays, the ability to float windows from one display to another is almost worth the upgrade in itself. Another welcome feature is standard UML diagramming, though you need the Premium or Ultimate edition for this.
Next, there is version 4.0 of the .NET Framework, a major release in itself, adding the Dynamic Language Runtime along with dynamic features in C# and Visual Basic, much improved concurrency support based on a set of extensions called the Task Parallel Library, and a revamp of Windows Workflow that makes this framework and runtime more interesting for enterprise applications. There is also a new language, Microsoft F#, which may succeed in bringing functional programming into mainstream enterprise development.
Expressions and assertions
Visual C++ 2010 has added several features from the emerging C++0x standard, including lambda expressions, compile-time assertions, the auto keyword for type inference, rvalue references, and long long for a 64-bit integer. Parts of the C++0x standard library are also included.
In addition, the new Concurrency Runtime schedules and manages parallel tasks, simplifying concurrent programming. Some will remember the eccentricities of early versions of Visual C++; today's developers are getting a much improved tool.
This is the first version of Visual Studio since the launch of Windows Azure, and comes with Azure project types, though it was disappointing to discover that even the version that's been released to manufacturing requires a separate download of the Azure SDK and tools. At the time of writing, these tools were still a pre-release version.