The recent email to MVPs seemed to be saying that XNA was to be phased out and, more surprisingly, so was DirectX. Now Microsoft has attempted to clarify the position.
The key word here is "attempted" because there is still a lot that is unclear about the situation - partly because of a Non Disclosure Agreement (NDA) being enforced on the MVPs who have received the new email.
According to Promit Roy, a technical lead at Action Equals Reaction Labs, who made the first email public (Microsoft Phases Out XNA and DirectX?) part of the second email was intended for public consumption:
“DirectX is no longer evolving as a technology.” That is definitely not true in any way, shape or form. Microsoft is actively investing in DirectX as the unified graphics foundation for our key platforms, including Xbox 360, Windows Phone and Windows. DirectX is evolving and will continue to evolve. For instance, right now we’re investing in some very cool graphics code authorizing [sic] technology in Visual Studio. We have absolutely no intention of stopping innovation with DirectX, and you can quote me on that.
So while DirectX may seem safe the real question is what does "DirectX" mean. The idea that DirectX used in this context just means the main graphics components of the suite of technologies seems fairly clear - i.e. in this context DirectX is Direct2D/3D. This leaves a lot of technologies that were under the DirectX umbrella out in the cold.
Microsoft seems to have the very sensible intention of making Direct2D/3D a more central technology to Windows and to make the tools to support it. This is a relief, but if you are using any of the other DirectX technologies it is no help at all. It is still difficult to say authoritatively which technologies are dead and which might be OK to use.
Even the status of XNA Studio isn't 100% clear in that another Microsoft source has been reported as saying that it is still a supported toolset but that no further versions will be produced So on the basis of this would you use XNA for a new project? This is another managed code technology that is being discarded by Microsoft without a thought for the time and effort programmers have put into learning it and working with it.
Microsoft has a serious communication problem. As Promit Roy puts it:
As developers, we need Microsoft to communicate clearly with us, in public. As MVPs we were asked to act as community representatives, to guide everyone interested in the tech and have an open line on future development. Apparently that means we get half-hearted vague emails from time to time that dodges our serious questions and casts further doubts about the status of the technology and teams, all covered by an NDA agreement. And then, shockingly enough, people get the wrong idea. We’re sitting on the outside, trying to play this stupid guessing game of “which Microsoft technology is alive?” XNA doesn’t support DirectX 10+ or Windows 8, but it’s still a “supported product”, as if that means anything in the real world. Windows XP is still a “supported product” too.
This problem is getting worse not better. Programmers are becoming increasingly cautious about committing to any new Microsoft technology simply because of the way Microsoft is using "death by rumor" to kill off technologies it really isn't brave enough to come clean about.
As Roy says:
"It shouldn’t take a leaked email to force a straight answer."
but the fact is that the answer that has been produced so far is far from straight.
Adopting any technology that has a single source is now seen to be risky in the long to medium term, even when that source is Microsoft with a large share of the OS user base.