views:

661

answers:

11

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.

+7  A: 

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

anon
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
+1  A: 

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.

Subtwo
A: 

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.

Uri
+2  A: 

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.

lothar
+7  A: 

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.

thekidder
Will visual studio express work well with qt? I'd assume so, from the answers I'm seeing...
mmr
it should - I have edited my answer to reflect some (hopefully helpful) information
thekidder
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
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
Well if the question is taken literally the MSVCE is disqualified, as it's not open source ;-)
lothar
@thekidder Qt-VS integration you showed (with Qt designer embedded in VS) is not free. There is a free Qt-VS integration (http://www.qtsoftware.com/downloads/visual-studio-add-in) but then Qt Designer is run outside of VS. Besides VC Express doesn't support plug-ins (http://stackoverflow.com/questions/86562/what-is-missing-in-the-visual-studio-express-editions)
Piotr Dobrogost
+2  A: 

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

Shree
+2  A: 
  • 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)
hasen j
+2  A: 

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.
Luc Hermitte
I hadn't heard about stlfilt or those testing apps, thanks for the heads up!
mmr
A: 

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.

NotJarvis
A: 

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.

Josh Kelley
A: 

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.

Neil