From: Jay on
I am not a programmer, but have a technical background, and studied
programming quite a few years back, including some classes in C and C+
+. I am seeking to get back up to speed in C++ on a hobby basis, so
I'm trying to figure out which compiler to get now. A search on the
web reveals lots of compilers, but it's hard to know which ones meet
my needs. Hoping someone can help. My requirements:

1. Free or cheap.

2. Compiler for Windows. Currently running XP, may upgrade to Win7
at some point.

3. Definitely want an integrated GUI development environment, not
command line.

4. Biggest problem I had back in the past was creating a GUI. I
tried to learn MFC, it was a total bear. Ideally I'd like something
that makes GUI creation with C++ as intuitive and easy as with Visual
Basic, and failing that, something like Java (which I found
challenging, but doable). I want to be able to focus on developing
the background logic (I'm planning to do some simple neural network
and other AI programming, for example), I don't want to be messing for
hours trying to create a simple dialog box or other user interface.
The development environment should make that part easy, and hide the
MFC complexities (or whatever has replaced MFC these days).

Thanks in advance for all replies.

--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]

From: Martin B. on
Jay wrote:
> I am not a programmer, but have a technical background, and studied
> programming quite a few years back, including some classes in C and C+
> +. I am seeking to get back up to speed in C++ on a hobby basis, so
> I'm trying to figure out which compiler to get now. A search on the
> web reveals lots of compilers, but it's hard to know which ones meet
> my needs. Hoping someone can help. My requirements:
>
> 1. Free or cheap.
>
> 2. Compiler for Windows. Currently running XP, may upgrade to Win7
> at some point.
>
> 3. Definitely want an integrated GUI development environment, not
> command line.
>
> 4. Biggest problem I had back in the past was creating a GUI. I
> tried to learn MFC, it was a total bear. Ideally I'd like something
> that makes GUI creation with C++ as intuitive and easy as with Visual
> Basic, and failing that, something like Java (which I found
> challenging, but doable). I want to be able to focus on developing
> the background logic (I'm planning to do some simple neural network
> and other AI programming, for example), I don't want to be messing for
> hours trying to create a simple dialog box or other user interface.
> The development environment should make that part easy, and hide the
> MFC complexities (or whatever has replaced MFC these days).
>
> Thanks in advance for all replies.
>

Personally - if you're going Windows only - I'd use Visual Studio
Express, which is free. (The express edition doesn't include MFC anyway).
The GUI stuff would be tacked on here though, but you'd be free to
choose. (GTK+, Qt, wxWidgets, ...)

In my opinion VS offers the best IDE with the best integrated debugger.

You might also consider going with Qt only. Nokia offers a pretty nice
IDE (QtCreator) and after getting used to Qt it seems to be really
simple to throw together some GUI.
The coding part is also very nice, although it shows that this is still
a 1.x product.

Then there's Eclipse + CDT which I have tried and which isn't so bad but
if you're Windows only I really can't see the point as VS seems
better/easier/more stable in most aspects.

If you want to try wxWidgets for GUI Code::Blocks might be worth a look
as it seems to be geared towards that.

br,
Martin

--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]

From: eca on
On Nov 11, 6:19 am, Jay <greengrass...(a)yahoo.com> wrote:
> [...] My requirements:
>
> 1. Free or cheap.
>
> 2. Compiler for Windows. Currently running XP, may upgrade to Win7
> at some point.
>
> 3. Definitely want an integrated GUI development environment, not
> command line.
>
> 4. Biggest problem I had back in the past was creating a GUI.

You might want to try the following:

IDEs:
a) MS Visual Studio 2005 or 2008 express edition, includes one of
the best IDE (IMHO) and MS C++ compiler.
http://www.microsoft.com/express/vc/

b) Qt SDK. Includes a nice IDE, MingW g++ and Qt libraries. IMHO,
ideal for a quick start.
http://qt.nokia.com/products

c) Netbeans with C++ plugin. This is the one I prefer for
cross-platform development
http://netbeans.org/

d) Eclipse IDE for C/C++ Developers, also cross-platform
http://www.eclipse.org/

Compilers:
Unless you choose Visual Studio express, which includes MS C++
compiler,
g++ is the one. On Windows I would suggest CygWin or MingW flavours
http://www.cygwin.com/
http://www.mingw.org/

GUI:
I would suggest Qt by Nokia (formerly, Trolltech) open source edition.
http://qt.nokia.com/

Many also like wxWidgets:
http://www.wxwidgets.org/

My 2c.
eca


--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]

From: Phil Meier on
{ Do not quote the clc++m banner. -mod }

On Nov 11, 6:19 am, Jay <greengrass...(a)yahoo.com> wrote:
> I am not a programmer, but have a technical background, and studied
> programming quite a few years back, including some classes in C and C+
> +. I am seeking to get back up to speed in C++ on a hobby basis, so
> I'm trying to figure out which compiler to get now. A search on the
> web reveals lots of compilers, but it's hard to know which ones meet
> my needs. Hoping someone can help. My requirements:
>
> 1. Free or cheap.
>
> 2. Compiler for Windows. Currently running XP, may upgrade to Win7
> at some point.
>
> 3. Definitely want an integrated GUI development environment, not
> command line.
>
> 4. Biggest problem I had back in the past was creating a GUI. I
> tried to learn MFC, it was a total bear. Ideally I'd like something
> that makes GUI creation with C++ as intuitive and easy as with Visual
> Basic, and failing that, something like Java (which I found
> challenging, but doable). I want to be able to focus on developing
> the background logic (I'm planning to do some simple neural network
> and other AI programming, for example), I don't want to be messing for
> hours trying to create a simple dialog box or other user interface.
> The development environment should make that part easy, and hide the
> MFC complexities (or whatever has replaced MFC these days).
>
> Thanks in advance for all replies.
>
> --
> [ Seehttp://www.gotw.ca/resources/clcm.htmfor info about ]
> [ comp.lang.c++.moderated. First time posters: Do this! ]

You could use Visual Studio Express - use C++ for your algorithms and
use C# for the GUI.

BR Phil


--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]

From: Michael Aaron Safyan on
On Nov 10, 11:19 pm, Jay <greengrass...(a)yahoo.com> wrote:
> I am not a programmer, but have a technical background, and studied
> programming quite a few years back, including some classes in C and C+
> +. I am seeking to get back up to speed in C++ on a hobby basis, so
> I'm trying to figure out which compiler to get now. A search on the
> web reveals lots of compilers, but it's hard to know which ones meet
> my needs. Hoping someone can help. My requirements:
>
> 1. Free or cheap.

The GNU Compiler Collection (GCC) is free and the de-facto standard
for compilers. (Alternative compilers such as LLVM and xlc++, as a
general rule, provide a compatible front-end that can accept the same
options as GCC. The Visual Studio compiler is the rare exception, not
the rule).

>
> 2. Compiler for Windows. Currently running XP, may upgrade to Win7
> at some point.
>

Cygwin is a good way of installing GCC. The Win7 version is currently
in beta. I am not sure of how stable it is.


> 3. Definitely want an integrated GUI development environment, not
> command line.

Any compiler is going to be commandline. Sorry. What you are looking
for is not a compiler, but an Integrated Development Environment (IDE)
which provides you with an editor and will invoke the (commandline)
compiler for you. Even though YOU like something visual, you should
start becoming familiar with non-visual setup/configuration, because:

1.) A visual environment is very difficult to automate, whereas
commandline invocations are easy to automate.
2.) Commandline invocations allow your program to be built quickly.
3.) Commandline invocations allow your program to be built
automatically.
4.) As a corollary to #3, commandline invocations make it simple to
perform CONTINUOUS INTEGRATION TESTING, by enabling the server on
which your source code repository is hosted to attempt to build the
project and use the results (fail or success) to determine whether it
should accept source code changes.
5.) As a corollary to #4, commandline invocations make it possible to
create automatic source code-based installers that can automatically
fetch your source code archive, compile the source code on the target
machine using the machine's compiler, and then install the resulting
binary.

I strongly recommend that you use CMake for building your project. The
CMake build system, though it requires a textual specification, allows
you to generate various different types of projects in a cross-
platform manner based on your specification. The CMake build system
can generate Makefiles (which are purely commandline) but can also
generate Visual Studio .NET "Solution" project files, which allow you
to edit the project visually.

Failing CMake (I suspect you are quite averse to the textual route,
even if it is better for you... and everyone else), I recommend that
you use the QtCreator IDE, which comes with the Qt Framework. The
QtCreator IDE is a cross-platform integrated development environment.
Not only will it allow you to edit your code visually, but it will
also allow you to drag-and-drop UI components. Along with the Qt
Framework, it provides GUI functionality. (NOTE: You can use the Qt
Framework with CMake... in fact, CMake includes several commands
specifically for the use of the Qt Framework).

>
> 4. Biggest problem I had back in the past was creating a GUI. I
> tried to learn MFC, it was a total bear. Ideally I'd like something
> that makes GUI creation with C++ as intuitive and easy as with Visual
> Basic, and failing that, something like Java (which I found
> challenging, but doable). I want to be able to focus on developing
> the background logic (I'm planning to do some simple neural network
> and other AI programming, for example), I don't want to be messing for
> hours trying to create a simple dialog box or other user interface.
> The development environment should make that part easy, and hide the
> MFC complexities (or whatever has replaced MFC these days).

This one is a no-brainer. Use the Qt Framework. It is cross-platform
(works on Windows, Mac OS X, and Linux, and it even has an embedded
version for the Nokia S60 and other devices). The Qt Framework may be
downloaded from:

http://qt.nokia.com/products


You might like to see my recommended C++ development environment setup
guide:
http://sites.google.com/site/michaelsafyan/coding/resources/how-to-guides/development-environment-setup/cpp

The setup guide above gives directions for installing GCC, Qt, Make,
CMake, Pkg-config, Log4Cxx, and UnitTest++. With these, it is possible
to use the C++ Project Template on Google Code:
http://code.google.com/p/cpp-project-template/


{ Please do not quote irrelevant material as below. -mod }

>
> Thanks in advance for all replies.
>
> --
> [ Seehttp://www.gotw.ca/resources/clcm.htmfor info about ]
> [ comp.lang.c++.moderated. First time posters: Do this! ]

--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]