Below is a copy of a rant I posted
to LJ a while back. In short, Microsoft does not, in any meaningful sense, make it easy to get started hacking on their systems.
Those of you who know me in even the most casual way may be shocked to hear me say: I want to do some programming in Windows.
One would think that one would simply go out and download a compiler and an SDK (a bit fat wad of compiler headers, link libraries, and documentation) -- or perhaps buy a CD-ROM containing same -- and you'd be completely set to develop any kind of Windows application.
You'd be wrong.
What's available is a hopelessly confusing mashup of tools to develop native applications, VisualBASIC applications, .NET virtual machine applications, Web applications (for IIS only, natch), database-driven applications and, if you're very nice and pay lots of money, Microsoft Office plugins. And, just to make it hard, all these tools are hidden underneath a cutesy Integrated Development Environment which passively-aggressively makes it as cumbersome as possible to figure out what's actually going on under the hood -- you know, the sorts of things a professional programmer would want to know.
Okay, fine, just give me the tools and docs to develop native C/C++ apps. "Oh, no no no," says Microsoft, twirling its moustache, "You have to pick one of our product packages." Packages? "Oh, yes, there's Visual Studio Express, Visual Studio Standard, Visual Studio Professional, Visual Studio Team System, and Visual Studio Grand Marquess with Truffles and Cherries."
After looking at the six-dimensional bullet chart of features, I think that Visual Studio Express may get the job done, since it comes with a C/C++ compiler and will compile native apps. "Quite so," says Microsoft whilst placing a postage stamp on a foreclosure notice, "provided you're only writing console apps -- you know, programs that run in a command window. If you want to develop full Windows GUI apps, then you'll need additional libraries which aren't necessarily included with Visual Studio Express."
Ah, so VS Express will only let me develop "toy" applications and, if I want to do anything more advanced, I should download and install the complete Windows SDK which, amazingly, is free. "Well, you could do that," says Microsoft after tying Nell to the sawmill. "But the SDK doesn't really integrate very well with the IDE. And there's still some link libraries which only ship with Visual Studio Standard or better."
Fine. I'll look at buying Visual Studio Standard. And then maybe I can get to improving this device driver. "Device driver!?" says Microsoft, blotting the blood spatters off its hat. "Heavens, no, that's not included with anything. You need to download and install the Driver Development Kit for that. And you may or may not need the DDK for each version of Windows you intend to support. Not to worry, however; they're all free downloads..."
*fume* And people wonder why I've avoided this clusterfuck for the last 25 years. Ever since the Visual Studio 6 days, I've been smacked in the face with this braindamage every time I've tried doing the slightest exploration of Windows development.
So: Can anyone with modest Windows development experience tell me what Visual Studio flavor to get and which addons to download if I want to:
- Write native Windows applications and device drivers in C/C++,
- Debug said applications and device drivers,
- Not give a damn about "wizards" trying to write my code for me,
- Not give a damn about database, Web, VisualBASIC, or .NET development.