March 27, 2006

Misadventures in Programming

Once again I have taken up the arduous task of learning C++ programming. Now, I realize that some of you out there are mathematical geniuses and for you, C++ (or any other programming language) is not so much an exercise in learning as it is an expression of common sense.

I still get 5 when I add 2+2, which is why I need a computer in the first place. For me, there is nothing simple about learning programming.

Anyway, let's get this adventure rolling. Perhaps one of these days I'll have enough entries to warrant a special programming blog, in the meantime, I'm just going to add them to this one.

My first misadventure took place in getting everything set up. I had a pretty good (near top of the line!) computer, so I started by downloading half a dozen free compilers and experimenting with them. The first and most important of these was the Bloodshed DevC++ compiler and IDE. This is without a doubt the finest OpenSource program I have ever encountered. It is a modern, full-featured IDE based on the MinGW compiler. DevC++ is pure magic, easy to install and use, and completely and totally free under the GNU license. If you absolutely refuse to pay for a compiler, and you don't need more than one language or 100% Windows compatibility past, present, and future, then DevC++ will fit the bill.

Visual C++ 2005 Express Edition is a miracle. For one year you can use, free of charge or obligation, a fully-functional, near-retail quality Microsoft IDE and compiler. It has all of the core features of the very expensive Visual Studio 2005 including one of the fastest, most efficient optimizing C++ compilers on the market today. As far as I can tell, if you are serious about learning professional quality programming but do not yet have the resources to get started, this is the very best package you could ever hope to lay hands on. It is a beautiful IDE, it is ISO-compliant, and it is simply a joy to use, even for a rank amateur like myself. If you download and add the Platform Specific Software Development Kit (PSDK), then you'll also have the next best thing to the standard MFC libraries included with the retail version. Get it, fall in love with it, and learn once and for all why OpenSource might come close to the "real thing", but will never, ever truely surpass it.

I also downloaded and installed Cygwin along with all the development packages it has available. Gcc is an excellent compiler and well worth experimenting with, especially for beginners. It's free, and because it relies on command line functionality, it forces the user to learn their way around a computer without the ease and comfort of a graphical user interface (GUI) such as WindowsXP or the up and coming Vista. Once you learn how powerful command line computing truly is, you will wonder why anyone ever wanted anything else.

Well, that's only half-true, I suppose. People use Mac and Windows because it's easy, it's fast, and it requires very little thought. A good GUI transforms the computer from a complex machine into an almost invisible background tool. I must confess, despite my occasional grumbles, I do like using WindowsXP and I am looking forward to Vista. It sure does make it easier to focus on finishing the task at hand rather than fumbling around with finding the best way to get started.

Which brings me full circle. There I was with half a dozen compilers and a dozen SDKs installed on my hard drive. I ordered some books from and got ready to get back into programming!

Then my wife decided to buy me a new computer.

Quite suddenly, with no warning, I found myself placing an order for a Dell XPS 600.

Okay, now what? I'd just spent nearly a month getting everything installed and set up, and suddenly in two weeks a new computer is arriving at my door. Once I picked my jaw up off the floor, I got busy cleaning out all the garbage I'd just finished installing so I could pass the Sony on to my son. This also forced me to face the devastating truth that what I really needed was not a free compiler at all. No, like it or not, the time had come to invest in the "real thing". Once my new computer arrived, I got my games installed, then restored my data files. After my new books arrived, I went to Akihabara and ordered an English version of Visual Studio 2005 Standard Edition. So, now I have a new computer with ONE compiler installed. I also have three books on game programming to work my way through.

It took some time, and a decade of false starts (quite literally, I installed my very first compiler way back in 1994 or so, but never really mastered it), but I am finally in position to do some serious C++ study.

Which of course means C++ is on the way out. C#, it seems, is the future of computing. And well it might be. It looks to be a step up from C++ and goodness knows, C++ is getting old and starting to show it's wrinkles in rather obvious ways. On the other hand, COBOL is just as strong as ever in some circles, and it's been around darn near forever! So who knows, maybe some things never truly die. Maybe, just maybe, there will always be a place for archaic programming languages and the people who prefer them.