Okay, so I found the source code to a Windows program that I wanted to make some slight modifications to in order to enhance it. Not a problem, I just download Microsoft Visual C++ Express, their free "for home and educational use" C++ compiler, and compile it. Except... it wouldn't compile, because Microsoft *DOES NOT INCLUDE THE MICROSOFT FOUNDATION CLASSES IN THEIR FREE PRODUCT!*
Now I hear the majority of you sayin', "what does that mean?" Well, basically what it means is that *basically no existing Windows code on the planet can be compiled by Microsoft Visual C++ Express*. I.e., it is utterly *USELESS* if your intent is to make slight tweaks to existing Windows code as part of the process of learning how to write Windows code.
What's Microsoft's excuse? "Visual C++ Express is for people who are just learning C++, and people just learning C++ shouldn't be using MFC." Excuse me. I learned C++ years ago. I learned C++ years ago for *free* by simply installing Slackware 95 Linux and wiping out the Windows 95 on my desktop computer, which was an Intel Pentium 233 with 16 megabytes of memory and a low-end video card, this was about five months after Microsoft released Windows 95 and I wanted to learn C++ but I wasn't going to pay hundreds of dollars for a C++ compiler when Slackware was *FREE*. I don't need to learn C++, I know C++ just fine, thank you very much, I've been programming in it for over 15 years now. What I was curious about was learning Windows programming, not because I need to learn Windows programming -- I make a very, very, VERY good living writing Linux software for embedded applications, thank you very much -- but because I like learning new things. And hey, maybe I'd write a program or two to release as free software for Windows, there's a few things I'd like to see that don't exist because there's no market for them but for which existing code could be modified fairly easily -- if I had some way to compile it.
But apparently Microsoft is intent upon death. Because look. What I did 15 years ago? It's what *every* kid is doing today. *No* entry-level programmers learn how to program using Microsoft's API's. They all learn Java -- which runs everywhere without modification, without even a re-compile, on Java's own virtual machine which completely disguises the underlying operating system from view. Meaning that all the new software coming out runs on Linux and Mac as well as on Windows. And Linux is *free*.
The only way Microsoft can "win" this war is by getting people to use their API, and then they don't provide any way for people to *learn* their API, instead saying "you can't learn our API unless you pay us a buncha dollars"? What the fuck? Do they really expect the majority of people interesting in learning how to write programs that run under Windows to *pay* to learn their API?! Talk about a company with a death wish!
So anyhow, I'm back to writing Java code. Which runs just fine on my Linux box, my Windows box, and my Macs. Way to go down the road to irrelevancy, Microsoft! What next, you put a time bomb into Windows 8 that destroys everybody's data after six months? It's about the only worse thing you could do to destroy your future...
-- Badtux the Geeky Penguin