Why not the latest version? By the time your done learning C++, you'll be on VS 2016 anyway.

By the way, Visual Studio is free - you don't have to get it from Dream Spark. The "Express" edition of Visual Studio is fully-featured and completely unhindered, even for commercial software.

The limitations of Visual C++ Express 2012 are: (from wikipedia)

No resource editor.

No built-in MFC support.

No built-in ATL support.

No profiling support.

No support for OpenMP.

No support for add-ins or IDE macros.

No option for crash dump generation (Debug->Save Dump As).

6 out of 7 you probably won't use for the first two years of your programming anyway. 5 out of 7 you might not use for the first five years of programming. Some you might never use. The Express version is perfectly fine for most needs.

Why not the latest version? By the time your done learning C++, you'll be on VS 2016 anyway.

By the way, Visual Studio is free - you don't have to get it from Dream Spark. The "Express" edition of Visual Studio is fully-featured and completely unhindered, even for commercial software.

The limitations of Visual C++ Express 2012 are: (from wikipedia)

No resource editor.

No built-in MFC support.

No built-in ATL support.

No profiling support.

No support for OpenMP.

No support for add-ins or IDE macros.

No option for crash dump generation (Debug->Save Dump As).

6 out of 7 you probably won't use for the first two years of your programming anyway. 5 out of 7 you might not use for the first five years of programming. Some you might never use. The Express version is perfectly fine for most needs.

Yeah but there is no reason to pick the express edition when you have access to a free full edition, either through dreamspark, MSDN aa or your own license. Getting a plugin like Visual Assist X is useful as well.

I worked at a place that gave out Visual Assist X licenses like candy. Perhaps this is my lack of experience with large C++ project--we were using it with a gigantic C# project--but I didn't really see the point. All it seemed to do was bog my system down for tools that we wouldn't have needed if the chucklehead architect on the project hadn't tried to reimplement half of the Ruby on Rails stack in ASP.NET WebForms.

I worked at a place that gave out Visual Assist X licenses like candy. Perhaps this is my lack of experience with large C++ project--we were using it with a gigantic C# project--but I didn't really see the point. All it seemed to do was bog my system down for tools that we wouldn't have needed if the chucklehead architect on the project hadn't tried to reimplement half of the Ruby on Rails stack in ASP.NET WebForms.

Well in a major C++ codebase it is actually quite useful as VS doesn't come with any refactor tools built into the IDE for C++. I mostly use the Open file dialog they added and the "move implementation to header/cpp file" functions.

You can compile for anything you want with makefile projects, or you could actually write MSBuild projects which route through a different compiler. Obviously you can't run it since you are on Windows, and you would need to deal with an external debugger (in this case one for Windows which can debug on a remote Linux machine). But if you really wanted you could write some plug-ins that would launch that debugger from within Visual Studio and sync breakpoints.

It's all possible. It's not really any different than targeting consoles.

Visual Assist X is insanely useful just for the navigation, commenting etc. functionality. If the Express version of VS can't use plugins, that is a major ding against it, and the Express version is nowhere near as good as the non-Express version. Lack of profiling is bad too.

I'm taking my first steps in learning Qt so I've just started using QtCreator. My first reaction is that it feels pretty nice, not clunky like Eclipse. Have not yet used it for C++, but I have a feeling it might end up being nicer to work in than VS Express. Especially so if the vi editing mode works nicely, but I haven't tried it yet. Qt itself is very good for getting something useful done in C++ and that would be a point in favor of using QtCreator.

That said: I would generally recommend someone getting into C or C++ to start with no IDE, and initially just use an editor, GCC and make so they get a concrete understanding of how the C and C++ compilation and linking process goes.