A brief tip of the hat, read a post in Eric Gunnerson’s about a post in Jeroen’s saying that Microsoft Visual Studio should be a part of Windows.
While I wouldn’t really care about this either way, the first comment said that the reason for this being a NGH (Not Gonna Happen) is, among else, “Antitrust cases in the EU”. To this answered the writer “Antitrust cases? Windows is practically the only OS that *doesn’t* come with developer tools out-of-the-box. It’s not like I’m proposing they integrate it in Windows like they did with IE, just that they bundle something that’s otherwise free anyway. Won’t keep an OEM from removing it and installing something else if they see value in that.” To this I said “Ow”, as my head began to throb. It’s not every day that I find an argument as painful as that one.
Windows isn’t the “only OS that doesn’t come with developer tools out-of-the-box”. Ubuntu doesn’t include any developer tools either (although they are immediately available). The question here isn’t what the OS comes with, but what the user can do with those tools. Packaging GCC or other C compilers with your OS allows you to write C code. You can write C code for Linux, UNIX, Windows, whatever. Granted, one would want to use it mostly to write code for the OS they are working with, but still, you have the option. Packaging Microsoft Visual Studio with Windows allows you to write… Windows code. In a Windows-only technology. The application you’ll write will only use Windows GUI components (Windows Forms), will be able to only use Microsoft’s IIS as a web server, MS SQL databases… you get the drift. This is called Lock-in, one of the highest ‘evil’ practices in the world of high-technology.
If you write a GTK code in Ubuntu, you could then run it on SUSE, Red Hat, Slackware, Debian, Gentoo. You could compile Linux itself from the source code, and it would still run. You could port it to Windows, Mac OS, Solaris, you could do whatever you want with it, and it’ll still work. You won’t be able to do that with whatever you’ll write with Visual Studio .NET. And before anyone starts, I know about Mono. I’ll say this once again, Mono, from the theoretical, practical and legal perspectives, is NOT .NET. Packaging Microsoft Visual Studio with Windows is the using the same technique that got Microsoft sued for bullying the market in order to become a monopoly. It’s the same reason Sun sued Microsoft, the same reason Microsoft are forced to pay millions to the EU, and so on and so forth. I may install a Linux distro with X browser, Y media player and Z developers tools. If I want to, I can remove all of them easily, and install others. Try removing Internet Explorer and Windows Media Player from your Windows OS (Actually don’t, unless you know how to format a Hard Drive and re-install the OS, and have no problem with doing that once you finish with removing those components).
“Won’t keep an OEM from removing it and installing something else if they see value in that”.
I never liked this kind of ‘logic’, it’s flawed at the core. You can’t excuse your wrong-doings by pointing to the actions, or failure to act of others. You don’t say “I’ll drive 70 MPH in the middle of the city. It’s not like anyone will cross the road without looking”. And besides, saying that the middlemen will become a “market filtering system” is nice, but not realistic. OEM that specialise in selling computers to devleopers and software companies will probably remove it. But then again, those Dev companies will not have much use for the free “express” version of Visual Studio. They’ll either purchase some other IDE, or purchase the “professional” version of Visual Studio. The problem is with computers sold to hobbyist and other people. The OEM is more concerned about which media player, CD software etc. they bundle, not with what developer tools are installed. I doubt Microsoft used that argument when they faced Anti-Trust charges in the US and Europe.
All in all, I’m all for adding developer tools to OS. It will allow those who are interested in software development a fast access to dev tools (the most common question in any programming forum is usually “where can I get a compiler/IDE for this”). However, this should be, first and foremost, something neutral. C++, Perl, I don’t care, but not .NET, and definitely not Visual Studio.
(And as a side note, if the thought of suggesting that Visual Studio supports other programming languages in the form of J++/J#, Visual C++ and others, crossed anyone’s mind, may I remind you that I’m not only able to withstand pain, I’m also able to inflict it. Consider it your warning.)