Thursday, November 30, 2006

C++ Compiler Predicament

I mostly program in Java and Visual Basic, but for some time I've been trying to become a bit more comfortable with C++. I had been compiling most of my programs under Ubuntu on my Linux partition using gcc, the free, open-source GNU C compiler. It's been working well, but I wanted to develop under Windows as well. That left me a two options.

First, I could run a Windows port of gcc through Cygwin (note to self: blog about Cygwin soon), a linux API emulator for windows. Cygwin effectively provides a bash shell from within Windows. Unfortunately, I couldn't easily set the Windows port of gcc up to run in Cygwin, although I admit I didn't try real hard.

My other option is to use a different compiler. Oh boy, which one to use. Well, Microsoft released the Visual C++ Express development platform for free (in fact, the entire MS Visual Studio 2005 Express suite is available for free download here) , so I set up VC++ and started developing under that. I guess I should note that I had to mess with some configurations and installations to set up the Windows Platform SDK and be able to compile native 32-bit executables without depending on the .NET framework.

So having to jump through hoops to use the VC++ compiler disappointed me. And I also didn't like working in the VC++ IDE. Sure, it's nice, and does a good job for someone who wants to produce working code quickly. But remember, my first goal is to learn and become comfortable with C++. Until I can write a bit more than a simple search algorithm or "Hello World" app, I don't want an IDE helping me along and handicapping me for later. Goodbye, VC++.

That left Borland C++ Builder 5.5. Honestly, I don't know why I didn't think of it before. It has all the functionality of gcc--maybe even more, but I'm no compiler guru. And it's entirely command-line based, which I like a lot. I feel that once you get a good sense of the tools available to you with a command line, the CLI is much more powerful and efficient for getting jobs done than a GUI. I don't have to deal with a bloated, albeit powerful, IDE like VC++. And, it's a free, small download.

Now, I can finally jump into Windows development and get a stronger foundation in C++, without being handicapped by an IDE I don't want or having to emulate an operating system that isn't what I want to use. Not to mention, C++ Builder is an easy to use but effective compiler.

No comments: