In an interview with Mary Jo Foley, Jim Allchin shares some of what they learned while building Vista.
The discussion centers in large part around the “componentization” of Windows and Microsoft’s realization that it’s better to innovate, then integrate. Hmmm. Over the years I’ve often thought of Microsoft as a company that understood the innovate, then integrate model extremely well. Build a new feature as an option or separate product, learn from the experience, get some user feedback, and then integrate it in to the main product or if things are really strong branch off into a new area. The downside is that for awhile you might have a more complicated code base and possibly some duplicate efforts, but overall the advantages outweigh the disadvantages.
A new version of Windows hasn’t been the only thing that’s gone through a rough spell at Microsoft over the last couple years. I’d add C++ development to the list too. (Some might add traditional VB dev too.) The migration to the .NET platform has been so strong, that to me C++ development lost out. It’s quite unfortunate. Yes, C++ can call managed code so lots of the new platform can be used in C++, but this mix of technologies is a mixed bag. I would have much more preferred Microsoft build some strong classes in C++–without the garbage collection–with improved, easier to use interfaces–with little or no COM–and then build the managed libraries on top of that. I would have picked C++ to be the foundation. Now, pretty much the managed world is–at least to us developers that consume Microsoft’s development technology.
Now I understand how all this happened. There was competition from Java of which the .NET Platform is a good response. And there are all those enterprise customers and custom app developers that can do very well with C# and VB.NET. (Although doesn’t it seem that so many of them are doing database development that the best platform for them would be one that has even better database support from the beginning? I’ll leave that for another post.) In fact, over the last couple years of attending developer conferences, I’d say questions about managed interfaces are now the first question presenters get. Few care about C++. The C++ developer ecosystem has faded away. Don’t get me wrong, it’s there. Amazing products and businesses are still built using C++, however, their workspaces are now kept in the back offices. I don’t think it’ll come back.
I’d also add Visual Studio to the list of products that lost their way over the last few years–particularly Visual Studio 2005. It’s thick. It has stuff in it that I don’t understand how it made it in there (such as the links to the partner content and sites, etc) and at the same time doesn’t push the innovation envelope enough in terms of editing advancements. There’s some refactoring support–but it’s not what I’d expect from a top-tier product. I don’t get the priorities. But I can survive. I just mention this because as a developer it’s something I’ve thought about and discuss with my developer friends. I imagine VS down the road will get back on track. In fact, I fully expect it will. Microsoft has a knack for persistence.
Personally, I can’t wait for Vista. I’ve been dreaming of a new dev machine–maybe a dual quad machine??–and I can’t wait to take the plunge when Vista comes out. I also can’t help but think about all the new apps and tools I want to build. Things are getting easier. Things are getting more powerful. I’m able to dream bigger than ever before. I’m able to achieve more than ever before. Do I want to see more? You bet. I always do. I can’t wait for tomorrow.
Visual Studio 2005 is a great improvement for managed code. The editor in C# is very well done. VB.NET… eh. C++, I wouldn’t know what to compare it to.
Josh, agreed. The editor in Visual Studio 2005 is an improvement for C# over previous versions.
There are a couple rough edges though. The windows flash many times when switching modes (in and out of debugging, for instance) and I’m not a fan of the new “Find” dialog. On the other side of the equation, I do like the direction of the Refactoring features.