Take the 2-minute tour ×

I want to do some coding in my spare time, but the thing is, I don't want to spend the money on this.

Would the following set of development tools be The Right Thing, or is there something I'm forgetting?

  • Eclipse for C++
  • SVN for source control
  • Qt for UI development (since it's C++, and I believe it's now opened by Nokia)
  • hudson for continuous integration

I'd like to write a little image processing application that can run on any platform, but the main platform at the moment will be Windows with a possible movement to the Mac-- hence all the cross-platform tools.

Is there anything really obvious I'm forgetting? Like something like fxcop for style checking in C++?

If I use any libraries, I'd like to avoid GPL libraries; if things go south with my current employer, I'll want to monetize this.

share|improve this question
add comment

11 Answers

up vote 8 down vote accepted

Microsoft Visual C++ Express is free and easily the best IDE for Windows. Furthermore, you can use it to work on cross-platform code - it more depends on writing standards-adhering code and using portable libraries.

If you want to write cross-platform code, I recommend a cross-platform build tool. I use CMake, which generates Visual Studio solutions on Windows, but there are others too, such as SCons.

As for libraries, it depends on what exactly you need to do. Qt is an excellent GUI library. libpng/libjpeg and others are good for loading/saving images at a low level, but there are probably other higher-level image libraries as well.

[edit] A response to the comment about MSVC and Qt: A quick search brings up Trolltech's Qt Visual Studio Integration page: Qt Visual Studio .NET Integration A comment points out that this is actually not free (a free addon is available at this link, but this runs Qt designer outside of Visual Studio. Also, the Express version of Visual Studio does not support plugins.

For coding specifically in Qt there is another new IDE created by Qt: Qt Creator. I've heard good things about it, and it is also portable across Windows, Linux, and Mac.

share|improve this answer
Will visual studio express work well with qt? I'd assume so, from the answers I'm seeing... –  mmr Apr 6 '09 at 22:27
it should - I have edited my answer to reflect some (hopefully helpful) information –  thekidder Apr 7 '09 at 0:55
Well he will have a hard time to get Microsoft Visual C++ Express to work if he really moves to a Mac ;-) Maybe Eclipse CDT would suit him better. –  lothar Apr 10 '09 at 17:16
It depends on if you want a homogeneous environment across platforms or not. Personally, I use MSVC++ on Windows and emacs on Linux. As long as you can adapt across environments, it works well. –  thekidder Apr 10 '09 at 17:49
@thekidder Qt-VS integration you showed (with Qt designer embedded in VS) is not free. There is a free Qt-VS integration (qtsoftware.com/downloads/visual-studio-add-in) but then Qt Designer is run outside of VS. Besides VC Express doesn't support plug-ins (stackoverflow.com/questions/86562/…) –  Piotr Dobrogost May 11 '09 at 21:38
show 1 more comment

I detect procrastination (something I'm often guilty of) - just write some code - you can always add tools as you go along.

share|improve this answer
not really a help. I've already started writing, so maybe I didn't make that clear; now I'm hoping to move into the arena where I can learn about new tools. –  mmr Apr 5 '09 at 23:24
add comment

The problem with questions with phrases like "what's better" is that it's really hard to determine what's right in a specific situation and maybe impossible what's "better".

Said that, I use Eclipse CDT sucessfully as an IDE on Linux. I use frameworks like ACE/TAO to create code that is highly portable.

I know that QT is a very good UI framework. KDE is built on top of KDE and if you use KDE/Linux then you may also want to look at KDevelop, a C++ IDE that has many users.

In the end I believe that you and only you can figure out whats best for you to use. Make sure you check the alternatives and then make an educated decision.

share|improve this answer
add comment

for c++ there are a few more freewares available such as codeblocks and devcpp. I find eclipse very heavy on the machine.

share|improve this answer
add comment

There are many tools that make the difference:

  • A C++ compiler ... (it wasn't in your list)
  • doxygen
  • STLfilt (which is a must have when programming in C++)
  • A UT framework (CxxTests, boost.test, Fructose, google.test, ...)
  • something to manage the compilation chain (scons, aap, (b)jam, cmake, ...) -- I've no idea what eclipse is using.
share|improve this answer
I hadn't heard about stlfilt or those testing apps, thanks for the heads up! –  mmr Apr 6 '09 at 22:26
add comment
  • Source control: git. It's not as diffucult as people make it seem. I'm an svn newbie and I still managed to learn the basics of git for use in everyday life! There are about 4 or 5 basic commands that will get you going in no time. Read the official git tutorial

  • Regarding IDE's, there are a few choices

    • Microsoft Visual C++ Express Edition (free lite version)
    • Eclipse with CDT
    • QtCreator. (Since you're using Qt for the GUI)
share|improve this answer
add comment

Personally I have used Eclipse+CDT for a number of projects. Paired with wxWidgets it has provided me with enough to keep myself pretty much crossplatform (which I think is a big plus).

Also QT has some interesting releases with an IDE now, make sure you check it out: http://www.qtsoftware.com/products/developer-tools

Like earlier suggestion, just start coding, you will eventually find out what is the appropriate mix for you. It varies greatly between individuals what is the "best" IDE or mix of command line tools, etc.

share|improve this answer
add comment

Eclipse CDT is making huge strides, and even organizations that were unx tools only are now finally joining the IDE bandwagon. Considering downloading a current milestone, not the official release.

If you're using windows, don't use Eclipse directly, find a third-party distribution that already has all the GNU tools in it (I forgot the name, I can look it up).

Once you switch to mac it's easier, but make sure to install xcode to get your GNU tools.

share|improve this answer
add comment

If you are using svn - VisualSVNServer is an excellent free GUI based way to setup and administer your SVN repository, definitely worth checking out as it means you have little/no messing about with config files etc. to change your repository.

share|improve this answer
add comment

Regarding version control - Subversion is pretty much standard and is very well supported. From what I've heard, Git is more powerful but harder to use; it's worth a look for a new one-man project, since you wouldn't have the support and retraining concerns that other projects would have.

Regarding IDE, since Visual C++ Express is currently the highest-voted answer - I've used both Eclipse and Visual C++ Express. I don't have a whole lot of experience with Visual C++ Express, so it might have features that I've overlooked, but from what I've been able to compare, Eclipse offers a lot more features. I tried to list its more impressive features in this answer; from what I've been able to see, Visual C++ Express doesn't have any of the features listed there. Eclipse is slower and more resource-intensive, but with a fast enough desktop, its extra features are more than worth it.

share|improve this answer
add comment

In terms of version control, use git and throw your project on GitHub or Gitorious. There's really no reason to use Subversion anymore, due to its painful branching and merging, and lack of a distributed model.

See this link here for why Git is better than X: http://whygitisbetterthanx.com/

There's also no point in using Sourceforge or GNU Savannah, as the Git front-end sites have much more valuable features and are easier to use.

share|improve this answer
add comment

Your Answer


