I’ve spent significant chunks of time in both Microsoft(MS) and non-Microsoft development worlds. With recently moving back to the MS world, the differences seem to be highlighted to me in stark contrast. One issue I feel I’m becoming a broken record on is MS’s approach of tying code bases to the development tool(IDE), specifically their Visual Studio tool.
What I’m referring to here is MS’s solution and project files. They are part of your code base as most projects put them under source control. If you want to move to a new version of the IDE, say VS 2005, then you must migrate your existing files to a new version. At that point, developers using VS 2003 can’t open or use the projects and solution files and must upgrade. Can you run a MS project without being tied to the MS tools? Of course but it’s a lot of work and you’ll generally irritate hardcore MS guys and are left out of some major features of the toolset.
The same issue exists with the .NET framework itself. If you want to move your code base to using 2.x of the framework then you need a new IDE, VS 2005.
So what’s the big deal? To most people entrenched in MS development, nothing. To non-MS people, this can be a big issue and surprises them. They’re used to having the freedom to use any IDE they like or maybe using several depending on what they’re working on. On every non-MS project I’ve worked on, the notion of putting anything related to a development tool into the code base is considered taboo and you do your best to avoid.
Every other technology framework I’ve worked on has little to no dependency on specific development tools or IDE’s. A new version of Java is released, you get the new version of java and it’s compilers and you’re good. It’s been a while since I’ve worked on a Java project but I’ve never had to upgrade Eclipse or VI when a new version of Java is released.
You want my conspiracy theory, or maybe this is just plain obvious economics? MS makes money selling Visual Studio not the .NET framework. Having these hard connections sells IDE’s. You want to move your code base from .NET 1.x to 2.x? Go for it, it’s “free” except of course having to upgrade every developer’s IDE.
My jaded biased view is that I seriously doubt this has anything to do with technology and is all about selling upgrades. I’m not complaining, just talking out loud.