I've been getting mixed feedback about my blogging about the VSTS pricing, and I think that I should outline my motivations.
For the last several years, Microsoft has been making a shift from being the "easy to use" company to being the "security" company. They've been doing everything they can to ensure that code that is released is of high quality.
Because of their efforts, we now have canaries on the stack, we have the .NET Framework which does its best to eliminate the need for the writing of native code by the majority of developers, we have DEP and support for the NX bit...we've got a lot. However, the biggest security issue is that code is still running on people's machines. That will never change. The next focus should be to ensure that people's code is as bug-free and stable as possible.
So what does Microsoft do? The same thing that got them into this mess in the first place. They release powerful development tools priced to the masses with absolutely abysmal debugging support. If you want your code bug-free, you are expected to either struggle with the Express toolset for hours on end to get it done, or spend the $800 for Professional and get the tools you need. Want code coverage? That'll cost you an arm and a leg more.
What kind of message is that? "Sure, you can write software for our platform...but if you want to write *good* software, well, you're gonna have to pay for it."
In previous versions of Visual Studio, it was the code generation that was held back. Lesser versions of Visual Studio didn't get the optimizing C++ compiler or all of the code wizards, but the debugging tools were there for people to use. If someone had a lesser version, they'd just have to write more code because the IDE wouldn't make the code for them. If you wanted to use some advanced platform features, you'd have to buy the higher versions because the lower versions didn't come with redist rights for the DLL's.
Now, the lesser versions are being stripped of enough debugging tools that instead of motivating new developers, they're going to get frustrated. They won't have the tools they need to find their bugs quickly and easily. As a developer, how many bugs have you found just by stepping through your code with the Watch window open and seeing the values appear in red to indicate the change?
I'm all for bringing in more developers with simpler tools, but by limiting their ability to debug their code, you're fostering a community where bugs are acceptable simply because the pain threshhold to find and fix the bugs is too high.
And fostering a community of developers who won't fix bugs is too high a risk for me to ignore.