I found this article on O'Reilly's (Microsoft-sponsored) Port 25 page fascinating. For all Microsoft's attempts to own the budding minds of students, it may well be that Microsoft has become too corporate, too sterile to be of interest to the creative mind:
Even back in my day, you could go to a "Windows lab" and work with Visual Studio or go to a "UNIX lab" and use vi and gcc. And you know what? All the fun was in the UNIX lab. And not just for me. There was just a difference in the attitudes and ethic across the two lab environments. People in the Windows lab were trying to get their project in before it was 11:59 PM, while people in the UNIX lab were goofing off, playing with code, and... trying to get their project in before it was 11:59 PM.
What is it about UNIX, vi, emacs, gcc, perl, and INSERT-HERE that makes it fun to play with, while Visual Studio just makes you want to... well, work?
In the enterprise, this alleged Microsoft attribute might be considered a Very Good Thing. But is it? Do enterprises really want automatons that punch in and code to spec? Or do they want innovation that changes the game?
I'm not a developer (IANAD) but it strikes me that Microsoft needs to loosen up a bit. It needs more geek credibility again. There was a time when Microsoft was cool. Now...? Not so much.
Microsoft has long built great tools. It's one of the factors most responsible for its rise in the enterprise, as it has turned mediocre developers into productive developers.
But for the next few decades of computing, maybe the uber-geeks - those cool kids hacking on vi - will rule the earth...and the enterprise. It all starts with school, where the widespread availability and perceived "cool factor" of open source is trumping Microsoft's stodgy corporate tools.
Can Microsoft be as cool as open source without opening up? I don't think so. It's trying to give away tools to stem the rise of open source. But maybe it's giving away the wrong tools?