Allegro.cc - Online Community

Allegro.cc Forums » Off-Topic Ordeals » Mingw & Codeblocks vs. Visual C++

This thread is locked; no one can reply to it. rss feed Print
 1   2   3 
Mingw & Codeblocks vs. Visual C++
Johan Halmén
Member #1,550
September 2001

A few times during my history as a hobby programmer, I've tried to switch from GCC/Mingw/Dev-C++/Codeblocks to Visual and after crying a little bit inside I've always turned back. By GCC/Mingw/Dev-C++/Codeblocks I mean a lose family of some fine free software, that always has made me feel comfortable. Their actual relationships with each other are unclear to me (like GCC vs. Mingw) and actually I don't even care to know. By Visual I mean everything like Visual Studio or Visual C++, and although that stuff can probably be used for free, it still is Micro$oft (last time, long ago, I remember the free version didn't include some important parts that I needed).

Right now I have a setup with Mingw/Codeblocks and Allegro 5. But it's on my job laptop, and we have a process going on that every employee gets their laptop reset and installed with new software. The laptop gets totally wiped out. Win7 gets replaced with Win10 (which is the main thing with the process) and a bunch of software gets installed. Among the software is Visual C++.

When I get my laptop back, I might install Allegro 5 with Visual C++ or I might just uninstall Visual C++ and reinstall Mingw/Codeblocks and Allegro 5. I'm talking about a school here, and the employees are teachers. A very few teach programming. I teach music. So, having Visual C++ on sixty teachers' computers, while three or four teach programming seems pretty stupid, and I don't think I'd need Visual C++ at all in my job.

I guess some of you use Visual C++ and some of you use Codeblocks or Dev-Cpp together with Mingw. I'd like to hear your comments, but only if you truly have experiences with both. Not comments like "I've always sticked to Mingw and I'm happy with it".

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Years of thorough research have revealed that the red "x" that closes a window, really isn't red, but white on red background.

Years of thorough research have revealed that what people find beautiful about the Mandelbrot set is not the set itself, but all the rest.

Edgar Reynaldo
Member #8,592
May 2007
avatar

When it comes down to it, MinGW and CodeBlocks are just way more user friendly than MSVC++. Menus are easier to navigate, settings are way friendlier, there is more compatibility between the compiler and the ide, the list goes on. There isn't a single version of visual studio that I have ever liked more than CodeBlocks. CB isn't bloated like MSVC. All I have to do to install a new version of CB is download and extract three files to a new directory. Let me see MSVC do that. :P

Johan Halmén
Member #1,550
September 2001

So you do know Visual. And still prefer Codeblocks and Mingw. Well, that probably is common.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Years of thorough research have revealed that the red "x" that closes a window, really isn't red, but white on red background.

Years of thorough research have revealed that what people find beautiful about the Mandelbrot set is not the set itself, but all the rest.

LennyLen
Member #5,313
December 2004
avatar

I really liked VS 6. When I switched to MinGW as my compiler ca.2001, I used a clone called MinGW Developer Studio until C::B was released.

My reason for switching to MinGW was better cross-platform compatibility.

Neil Roy
Member #2,229
April 2002
avatar

I prefer Code::Blocks + MinGW for many reasons. Cross platform being one. The fact is, Visual is not free. It is free to use to a certain point, but when you read your agreement, it is not free if you create software that makes a lot of money. Not a problem for a lot of us, but there are strings attached and I don't like that. Another reason I stick to MinGW, and this is my MAIN one is that it supports the latest C standard. I prefer to code in C and you don't get the latest C standard with Visual Studio.

I focus on totally free software with no strings attached that are cross platform. I stick to cross platform libs and try and code with cross platform in mind. And as I said, it HAS to support the latest C standard or forget it.

I also find Code::Blocks less convoluted to use. I have been able to easily add in libraries, compile them etc... for use with Code::Blocks.

I see Microsoft is trying to get VS out on different platforms now, but that won't change my mind about it. I also don't like having to log on to my IDE and having it connect to the internet for anything but updates (and even that, I can do myself).

raynebc
Member #11,908
May 2010

Codeblocks is pretty intuitive, I was able to pick things up easily. I installed Visual Studio so I could poke around with the Xenia emulator source code and VS indeed seems extremely complicated by comparison.

Polybios
Member #12,293
October 2010

IDE-wise, I've personally found both Visual Studio and CodeBlocks (last Visual C++ version I've tested was something like 2008, though) lacking in comparison with QtCreator which is what I mostly use as an IDE today. That usually means I use CMake as a build system, too.
Compiler-wise, I have to admit I haven't really used MS C++ since C++ 11 came out, so I don't know anything about that apart from remembering that it had some weird non-standard behavior. I mostly do C++ stuff on Linux anyway. There, I've come to like clang as a compiler because its warning and error messages tend to be more readable and/or helpful.

Neil Roy
Member #2,229
April 2002
avatar

raynebc said:

Codeblocks is pretty intuitive, I was able to pick things up easily. I installed Visual Studio so I could poke around with the Xenia emulator source code and VS indeed seems extremely complicated by comparison.

Definitely! I recently compiled my own DLL for a library that only had a VS version of it using Code::Blocks. I had never actually done that before, but I figured, what the hell, it wouldn't hurt to try. And I was surprised at how easy it was. With very little effort I got it compiled and had my DLL ready to go the first time I tried to do it. That really impressed me.

To be fair to Visual Studio, I did like their debugging tools. If Code::Blocks ever got something like that, it would kill everything else out there I think. But I honestly, rarely need debugging, and when I do, it's usually minor and easily done on Code::Blocks. I also liked the dark colour scheme on Visual Studio and would love to see something similar for Code::Blocks.

LennyLen
Member #5,313
December 2004
avatar

Neil Roy said:

I also liked the dark colour scheme on Visual Studio and would love to see something similar for Code::Blocks.

Well, it is open source. ;)

relpatseht
Member #5,034
September 2004
avatar

Code::Blocks supports color schemes, best I recall. I used a dark scheme once. I even fixed the source to properly show text when using a dark scheme (some was hard-coded black). But, I've lost all those changes to HD failures. I really should have submitted them to the repo for review.

I can tell you it didn't take very long to do.

I pretty much exclusively use VS now though. The debugging tools are too valuable (although they've gotten worse since 2010).

Specter Phoenix
Member #1,425
July 2001
avatar

Okay I have to do it:

Blasphemy! No one shall denounce a tool offered to us from the MS gods! To do so is to throw away your life!

Joking aside, I have...[checking]...VS2k12, 2k13, and 2k15, but never touched them after installing them. Instead if I'm working on a purely C++ project where I'm just trying to get an understanding of a C++ feature I use Geany, if I am coding with SFML I used Code::Blocks. Not tried to build Allegro lately so I haven't used C::B with it recently.

"Can't a man even talk to himself without being interrupted?" -Krull(1983)
"Through vengence I was born. Through war I was trained. Through love I was found. Through death I was released. Through release I was given a purpose." -- Specter Phoenix
"Programming == AWESOME the rest is just tools to accomplish it."
END OF LINE

Edgar Reynaldo
Member #8,592
May 2007
avatar

Not tried to build Allegro lately so I haven't used C::B with it recently.

CodeBlocks is an IDE. MinGW is the compiler. Please stop leading noobs astray.

By the way there are binaries for vanilla MinGW 5.3.0.3 and Allegro 5.2.2, so you really have no excuses not to use Allegro.

bjorn54
Member #16,673
May 2017

I tend to dual-build in both Visual Studio and also MingW/Codeblocks.

Of the two, I prefer Codeblocks IDE and MingW. I basically love the Codeblocks/MingW combination because they are natural together and I find Codeblocks to be a more comfortable IDE and I feel way more creative when I use it compared to VS.

A lot of programmers from my last library (HGE) were very pro-MSVC and sort of anti-mingW, that was part of how I got better at MSVC/VS. Still, I was able to build my mingW version of the DX9 update of the library with some modifications to the code.

Now for memory leak detection: I never did try to build Valgrind on Windows that I can remember, or if I did I was of course unsuccessful. On the other hand, I like the Visual Leak Detector for Visual Studio.

In terms of debugging, the version of MingW I was using had a bad debugger so I would just head over to VS to take care of SegFaults/Access to 0 addresses.

As for warnings, the warnings are different for both compilers, so that can help to tighten up the code in different ways too. Of course with MingW you can have the Scott Meyers warnings if you want.

In conclusion, I guess I prefer dual-build, but do like to spend most of my time in Codeblocks when I'm coding.

Specter Phoenix
Member #1,425
July 2001
avatar

CodeBlocks is an IDE. MinGW is the compiler. Please stop leading noobs astray.

Yes, I know. Yet I seldom see people differentiate the VS IDE and the compiler that it includes.

"Can't a man even talk to himself without being interrupted?" -Krull(1983)
"Through vengence I was born. Through war I was trained. Through love I was found. Through death I was released. Through release I was given a purpose." -- Specter Phoenix
"Programming == AWESOME the rest is just tools to accomplish it."
END OF LINE

LennyLen
Member #5,313
December 2004
avatar

Yet I seldom see people differentiate the VS IDE and the compiler that it includes.

They are designed specifically to work with one another. C::B will recognize gcc, but gcc doesn't give a damn about C::B.

Specter Phoenix
Member #1,425
July 2001
avatar

LennyLen said:

They are designed specifically to work with one another. C::B will recognize gcc, but gcc doesn't give a damn about C::B.

One forcing you to use their compiler with their IDE and the other one allowing you to change what compiler you use magically removes the former from the IDE/Compiler argument?

"Can't a man even talk to himself without being interrupted?" -Krull(1983)
"Through vengence I was born. Through war I was trained. Through love I was found. Through death I was released. Through release I was given a purpose." -- Specter Phoenix
"Programming == AWESOME the rest is just tools to accomplish it."
END OF LINE

LennyLen
Member #5,313
December 2004
avatar

One forcing you to use their compiler with their IDE and the other one allowing you to change what compiler you use magically removes the former from the IDE/Compiler argument?

I don't know what argument you are referring to, so I will not venture to answer the question.

I was merely stating WHY people don't bother to differentiate Microsoft's compiler from their IDE.

Neil Roy
Member #2,229
April 2002
avatar

I COMPILE with Code::Blocks, why? Because I don't boot up my command line and use GCC. Code::Blocks does it. And I used Code::Blocks, hence, I compile with Code::Blocks, and it calls whatever in hell I configure it for. :)

There is no way I am getting into specifics or I will have to name the linker, resource compiler etc. ;)

I didn't tell MinGW to compile my projects, I told Code::Blocks to. :)

Edgar Reynaldo
Member #8,592
May 2007
avatar

Specter Phoenix
Member #1,425
July 2001
avatar

There is what I mean. Why get anal about C::B being an IDE, but not VS being an IDE? Just because VS forces you to use CL?

"Can't a man even talk to himself without being interrupted?" -Krull(1983)
"Through vengence I was born. Through war I was trained. Through love I was found. Through death I was released. Through release I was given a purpose." -- Specter Phoenix
"Programming == AWESOME the rest is just tools to accomplish it."
END OF LINE

Edgar Reynaldo
Member #8,592
May 2007
avatar

There is what I mean. Why get anal about C::B being an IDE, but not VS being an IDE? Just because VS forces you to use CL?

Yes, that's kind of the whole point of the conversation. Yes, MSVS is an IDE, I know that. That's what I'm telling you. It's an important distinction. It also is not a compiler, cl is. Want me to blow your mind? Android Studio is an IDE. It uses a compiler named Gradle. Eclipse is an IDE. It can use many compilers. C::B is an IDE, and it too can use multiple compilers and configurations, unlike MSVS which is an exceptional design feature failing on Microsoft's part.

if (semantically_equal(compiler.meaning() , ide.meaning())) {abort();}

These distinctions are IMPORTANT. It's like saying a banana is an orange. It makes no fucking sense. >:(

Chris Katko
Member #1,881
January 2002
avatar

If I'm using a full IDE / environment, it's gonna be Visual Studio. There's really no comparison. (Except it's a fat piece of crap that binds every possible keyboard press to something esoteric.) If something goes wrong, there's thousands of Google results for (almost) any potential problem.

Personally, when not doing GUI work (hobby work), I prefer to just use GCC/Clang with a simple bash script makefile called "go".

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs

Neil Roy
Member #2,229
April 2002
avatar

Are you a compiler?

Yes, yes I am! :P

I was mostly kidding, I totally understand what an IDE is. Hence all my ;) in that post. How many times have you seen people saying they compile with Visual Studio? You better get anal about that too, as it does not compile, it is an IDE, so I'll be watching your posts from now on! ;)

But I do use Code::Blocks to compile. That is an accurate statement. I use it to compile, tell it what to compile and how I want it compiled, it then calls the compiler to do the work. :)

To me, Code::Blocks is the whole package of IDE, compiler, linker etc. It's rather useless by itself after all. ;)

Polybios
Member #12,293
October 2010

a compiler named Gradle

Not convinced. :P

Edgar Reynaldo
Member #8,592
May 2007
avatar

 1   2   3 


Go to: