Cheap Compiler?

Hi guys, noobie programmer here. I just started learning C++ on my own and was using a trial version of Visual studio for the past month however the trial is about to run out and from what I can tell the cheapest version of visual studio is over $400.

Can anyone recommend a significantly cheaper but still good compiler for a beginner?

Thanks.
Code::Blocks and MinGW are very good for both professionals and beginners.

Visual C++ IS NOT C++. it is C++/CLI, which is a different language.

http://www.codeblocks.org/
@IWishIKnew,

Visual C++ is actually just Microsoft's IDE for use of C, C++ and C++/CLI. So what OP is learning is very much so C++. C++/CLI is C++/CLI.
Most IDEs and Compilers are free. Even with Visual Studio you can get Visual C++ Express from Microsoft for free and this will be fine.

Alternatively you can use:
EclipseCDT, Code::Blocks, NetBeans, (plus many more)
ResidentBiscuit:
Visual C++ is actually just Microsoft's IDE for use of C, C++ and C++/CLI. So what OP is learning is very much so C++. C++/CLI is C++/CLI.


I never said he wasn't, or that C++/CLI was not C++/CLI.

Microsoft's VC++ is extremely complicated to install, and use. It also takes up a lot of disk space as opposed to Code::Blocks/MinGW.

He's only a beginner, so I do not recommend VC++ for those reasons, and based on my own personal experience as a newbie 2 years ago trying to install the infernal thing. I also understand it is a trial version...

Code::Blocks/MinGW was pretty easy to install, and the use of it is fairly straight forward. It also is not very heavy on diskspace compared to VC++.
Last edited on
I'd also recommend Code::Blocks, and I do have one of the paid for and expensive versions of Visual Studio. I much prefer using CodeBlocks.
I've never had issues installing VC++ and have done at least three times now. And you did actually say that it's not C++. Was just clarifying so OP didn't think he was learning the wrong thing.
I never said he wasn't, or that C++/CLI was not C++/CLI.

What you said was:

Visual C++ IS NOT C++. it is C++/CLI, which is a different language.
And the only thing true about that is that C++/CLI is not C++.


Microsoft's VC++ is extremely complicated to install, and use.

It's extremely simple to install and use.


I also understand it is a trial version...

Yes. It's a trial version until you register it for free. Then it becomes a free version.

As far as disk space.. are you kidding me - who makes a decision based on that? =P

My advice to the OP: register your VSExpress for free and just keep on using it.
Last edited on
@cire
It's extremely simple to install and use.


No it is not. Mabey it is to you, but to somone who is trying to learn what in hell a compiler is, why there is no 'compile' button (which he would later learn is 'build', not 'compile'), and doesn't understand how to create/manage/write C++ as projects, VC++ is REALLY , really compilicated. Not to mention, as a beginner, I did not know that VC++ actually emplemented C++/CLI, so I was totally 'wtf' with the whole deal until I just completely uninstalled it and got Code::Blocks.

As far as disk space.. are you kidding me - who makes a decision based on that?


Somone who cares about their HDD.... I (and many many people, especially those of us who program regularly) am very concerned with how much free HDD space I have. I have a fraking text file on my desktop with the amount of HDD space that was free after weekly maintanence so that I can see if my HDD gets eaten, or if somthing starts to happen to it. Also, some of us do play videogames that take up GB worth of HDD space, and don't want to waste the 20-30 GB (I believe, it was a long time ago) VC++, VC++ special package (sothing or other... wasn't a compileror the program, but appeared with post-installation), and the VC++ compiler.

VC++ is very complicated, in that it was made for those who already know the basics. I recommend Code::Blocks because it's really simple, and you'll be able to set it up, and write all your beginner tutorial programs without a sweat. VC++ will try to open (when you click on C++) some sort of C++/CLI bs on you. I could never get the thing to make a decent console program. It's almost like the difference between Windows 8 and Windows 7, W7 works, while W8 forces you to to spend weeks learning the hidden bs behind it just to do somthing simple like read a PDF not in fullscreen.

@Jkaplan

You have 2 options:

Code::Blocks-

You'll be able to intall it and get to work right away. It's not HDD space heavy, and i believe they even have a portable version.

VC++:

A bit more heavy, a lot more power, assuming you can learn it all. You'll have to take tutorials to use the infernal thing before you're able to even write "Helo World!" on it...

*********************************

I went with Code::Blocks after tinkering for hours upon hours (no breaks...) tinkering with the VC++ IDE. I suggest you skip my experience, and get Code::Blocks. Mabey once you know the basics of C++, and know how to write Header/.cpp files, and you know pre-processor directives etc..., you can switch to VC++ and go from there. But, as a beginner, I highly recommend you do not get VC++.
Last edited on
No it is not. Mabey it is to you, but to somone who is trying to learn what in hell a compiler is, why there is no 'compile' button (which he would later learn is 'build', not 'compile'), and doesn't understand how to create/manage/write C++ as projects, VC++ is REALLY , really compilicated.


It's very, very simple, because it's very, very automated. There is a 'compile' button, on the build menu, and you can place a 'build' button on the toolbar by simply left-clicking and choosing the appropriate button. It doesn't get much simpler. Oddly, you learn about "building" right away since it's the only top level menu option that makes sense.

I can understand how it would be difficult to manage projects. I mean, you have to be able to left-click in the solution explorer and read the context menu. Sooner or later you figure out that "Add" is what you use to add a file to a project, which is pretty much all a beginner needs to know about creating/managing/writing projects.

Having installed several compilers and IDEs over the course of several years, I have to say they all work pretty much the same.

VC++ happens to have a little more polish than Code::Blocks, and a very significant advantage debugging-wise in terms of ease of use, which I expect a newbie might appreciate.

I went with Code::Blocks after tinkering for hours upon hours (no breaks...) tinkering with the VC++ IDE.

So the VS IDE prepared you for Code::Blocks. They work basically the same. You add files to projects and choose the correct menu options to build.


C++ will try to open (when you click on C++) some sort of C++/CLI bs on you. I could never get the thing to make a decent console program.

It is pretty rough to figure out that choose the type of Visual C++ -> Windows Console Application or Visual C++ -> Empty Project when creating a project will do that for you. By contrast, to make a C++/CLI project you must delve further into the options: Visual C++ -> CLR -> CLR Console Application

Yep. Very confusing.


Somone who cares about their HDD.... I (and many many people, especially those of us who program regularly) am very concerned with how much free HDD space I have.


I suspect if we took a poll of technically literate people who program regularly we would find that drive space is cheap, and not much of a concern to most of them, but that's just a guess on my part.


I highly recommend you do not get VC++.

Did you notice the part where he already had it?
Last edited on
The "what development environment should I use?" question is always widely debated, because people will always tell you what they like to use best. However when it comes down to it, when learning a language it's important to use an environment that is very easy to use, yet has support for more complicated features.

In my humble opinion, you should get code::blocks for learning. It's a very forgiving environment for beginners, and is very efficient in providing you debug details on your mistakes so you can learn the most from your mistakes.

I personally use visual studio 2012 express but I learned on code::blocks and I have to say that if I started learning programming, let alone a complicated language like c++, in an environment like visual studio, I'd either have given up on learning programming or be bald (well more bald) from stress.

TL;DR Go with code::blocks. Great learning environment.
Most IDEs do a comparable job of building / project organization / syntax highlighting.

Intellisense/autocomplete are nice features that many IDEs offer. Some better than others.

But the real kicker and one of the biggest parts of an IDE is the debugger.


Now for all of those points, C::B does very well.... but Visual C++'s debugger blows it out of the water, which is why I recommend it. C::B is a nice alternative and is good for compiling with gcc (always good to test your code against multiple compilers) -- but for actual development and debugging... Visual Studio is a whole lot stronger.

Seriously. A debugger is like 90% of an IDE. You want a good one.
I've worked on quite a few IDEs now. I have to say that Visual 2010 is my favourite (haven't tried Visual 2012). I use VS at work, and Code::Blocks and Qt Creator at home.

Regarding the difficulty to install: It wasn't any harder than any other software and I find C::B's ability to use different compilers makes that installation slightly more difficult.

Regarding disk space, I couldn't care less.

Regarding C++ versus C++/CLI, the C++ that we care about as programmers is the front-end. That is, the syntax and semantics of the language itself. The back-end (the generated machine-code) is transparent to us. It only matters if you are planning on installing this software on another platform which is not something I expect a beginner to do. So really, it IS C++ and we don't care about the back-end.

Regarding the ease of use, "Build Solution" is pretty much as simple as it gets. So there isn't a "gear" icon, big deal. When creating a solution, you are given similar options to C::B or Qt Creator (Console app, windowed app, plugin, ARM, and probably a few others).

Regarding features, I love the syntax highlighting of Qt Creator. It's the only reason why I really like this IDE (well, that and its integration with Qt forms). I like the fonts and intellisense of VS. I don't really like to look of C::B, it just gives me the impression of inefficient use of space.

For debugging, I can't stand C::B. VS is certainly the way to go here.

Choose what you like (VS Express is free), but I completely disagree with IWishIKnew when he tells you to avoid VS at all costs.
Regarding features, I love the syntax highlighting of Qt Creator. It's the only reason why I really like this IDE (well, that and its integration with Qt forms). I like the fonts and intellisense of VS.


I always use syntax highlighting and auto-completion features especially for inherited classes members in VS provided by VisualAssistX plugin, I thgink is the best of all, but unfortunately it is not free and also requires a paid version of VS to install.
Jkaplan - My experiences is that if you are working on Windows and you are beginner then get yourself the visual studio c++ express 2010. You don't need to pay a dime, just register it when the time expires. But what about portability? No problem ..., get into using the Boost library. Installing Boost into visual studio express is very simple and your code will be mostly portable (with a few exceptions and of course if you decide to use any Windows api directly).

Many will recommend codeblocks or a gcc-like (open source) alternative, but I found gcc (mingw, etc.) to present more headaches then what it's worth as with gnu libraries you often need to compile them on your own it most likely you will find yourself in 'dependency hell'.

I don't understand why anyone here mentions CLI /CLR (Visual Studio) as that is another beast (.NET). As a beginner you need to know nothing about CLI, in fact stay away from it as it's much more complicated than non-CLI C++.

Lastly anyone that says VS should be avoided b/c it's complicated are very wrong and I have no idea where they are coming up such nonsense. Visual Studio was specifically designed with newbie programmers in mind. Microsoft specializes in making things easier for the average user. Once you get skilled you can switch to more Linux-like solutions.
I've got the full version of Microsoft's visual studio express, it's free, all you have to do is register it online with your details (name, occupation, contact, etc) and they'll send you an activation key.

If you can't find where to get it, or can't be bothered with the hassle there's also "Code::Blocks" and "Dev-C++" which are both free.
Personally I think Microsoft's the best, followed by DevC, then CodeBlocks.
SatsumaBenji wrote:
I've got the full version of Microsoft's visual studio express.

Seems Legit. :D
i've had the express version off vc++ for ages and it's never warned me about expiration!

and to OP, i'd stick with vs. very user friendly unlike some open source travesties.
- For a beginner, i would recommend cod::blocks.

- I mostly use visual studio for WinAPI and not much else.
It doesn't expire, but it cannot be the full MSVS if it's express.
Topic archived. No new replies allowed.