Skip to main content
GameDev.net gamedev.net
🔒 Locked 🤖 Godot

Code::Blocks vs VC 2005 standard

Started by pghTech Aug 7, 2006 at 4:31 PM 20 replies 3.7k views
Original Post
pghTech
pghTech
I posted a similar topic were I was able to get some colorful adjectives for what people thought of Code::Blocks. However, I am just starting to use Code::Blocks, but have been using a couple different version of VC (6 and 2005express). So, I have been considering whether or not I should drop the $250 odd dollars for the standard or.....see howthe community of stacks it against VC 2005 before dropping that money? Thanks in advance
Mike.Popoloski
Mike.Popoloski
You can probably get the standard edition for free somewhere, I know I did. There was a Microsoft promotion awhile back, it has probably ended by now, although there may be a new one around.

Either way, nothing can ever beat Visual Studio. Sure, you might like a simpler interface, which Code::Blocks can provide you, but if you are looking for the most powerful programming IDE ever created, head over to the Microsoft website.
Mike Popoloski | Journal | SlimDX
Deyja
Deyja
What, please tell, was wrong with VC2005Express? It certainly wasn't worth it to me to drop money on a product I get all the parts I need of for free.
dave
dave
If you are a member of an academic institute then you might be able to get it through MSDNAA. It's a program separate to Microsoft that aims to distribute Microsoft software to students for free. It stands for Microsoft Developer Network Academic Alliance.

I got the full version of VS2005 Professional addition for free.

Dave
PhilMorton
PhilMorton
I have recently thrown off the shackles of the Microsoft IDE's and switched to code blocks.

The M$ IDE's are very very good peices of software, and if you're writing software specifically for windows (Say a D3D game), then by all means use their software.

I just got sick of taking the code I wrote with their software and trying to compile it on a different system and getting 800 errors - because microsoft never follows the standards for anything...

I havnt used the 2005 compilers, so i dont know if they are actually standards-compilant or not, but I'm writing cross-platform code anyway so I need a cross-platform IDE/compiler. Hence I use code::blocks and the GNU compiler.
Allways question authority......unless you're on GameDev.net, then it will hurt your rating very badly so just shut the fuck up.
deepdene
deepdene
Quote:
Original post by PhilMorton
I have recently thrown off the shackles of the Microsoft IDE's and switched to code blocks.

The M$ IDE's are very very good peices of software, and if you're writing software specifically for windows (Say a D3D game), then by all means use their software.

I just got sick of taking the code I wrote with their software and trying to compile it on a different system and getting 800 errors - because microsoft never follows the standards for anything...

I havnt used the 2005 compilers, so i dont know if they are actually standards-compilant or not, but I'm writing cross-platform code anyway so I need a cross-platform IDE/compiler. Hence I use code::blocks and the GNU compiler.


yeah VS2005 are more standard compliant then 2003, not 100% but around 98%. I work with VS2005 with projects that use both VS2003 and VS2005, and we often get compile errors with non-conforming code from programmers using VS2003. Like one common one is that Vs2005 requires a return type from functions, in VS2003 its assumed to be a int and returns a -1 by default which doesn't confirm with the standard.

deepdene
deepdene
Quote:
Original post by Anonymous Poster
Quote:
Original post by PhilMorton
I have recently thrown off the shackles of the Microsoft IDE's and switched to code blocks.

The M$ IDE's are very very good peices of software, and if you're writing software specifically for windows (Say a D3D game), then by all means use their software.

I just got sick of taking the code I wrote with their software and trying to compile it on a different system and getting 800 errors - because microsoft never follows the standards for anything...

I havnt used the 2005 compilers, so i dont know if they are actually standards-compilant or not, but I'm writing cross-platform code anyway so I need a cross-platform IDE/compiler. Hence I use code::blocks and the GNU compiler.


Wow, you obviously have no clue what you're talking about. The "M$" spelling is a tell-tale sign of kneejerk reaction, but I'll bite anyway: "M$" doesn't write your non-standards compliant code for you, that's what you do.

Microsoft never follows the standards? I guess there's no point in telling you that the "M$" C++ compiler is one of the most standards compliant C++ compilers out there? And yes, that includes the 2003 compiler, so don't bother coming back with some lame "I haven't used 2005" excuse.

Sure, Microsoft has their own (non-standard) extensions to the C++ language, but they do not force you in any way to use those extensions.

By all means, write shitty code, but don't blame it on the tools when it breaks.

Reading back this post is quite harsh, but I'm quite tired of people who bash everything "M$", without any research or even double-checking the facts, just so they can be cool like their intarweb friends.


dunno if this post is warranted, considering 90% of posts here aren't negative against Visual Studio.
JHL
JHL
Personally I refused to use previous version of msvc because of standards issues (varibles declared in the top of a for loop aren't scoped to the loop madness!) I used only Dev-c++.

But 2005 changed all that and fixed pretty much everything its worth getting and I don't say that about much software.
Zahlman
Zahlman
It might not be "warranted", but it's reasonably accurate. I don't generally like Microsoft products myself, but "don't follow standards" is not really a reasonable accusation (note that that is something quite different from "develop proprietary standards and don't document them properly").
zedzeek
zedzeek
Quote:
(varibles declared in the top of a for loop aren't scoped to the loop madness!)
thats been fixed now,
with vc2005 it does actually follow standards very well, then again not sticking to standards though is a valid accusation for heaps of ms products, infact so called 'enhancements' :) would be their standard modus operandi
Conner McCloud
Conner McCloud
Quote:
Original post by zedzeek
Quote:
(varibles declared in the top of a for loop aren't scoped to the loop madness!)
thats been fixed now,

He mentioned that in the next paragraph.

CM
jeroenb
jeroenb
I just got sick of taking the code I wrote with their software and trying to compile it on a different system and getting 800 errors - because microsoft never follows the standards for anything...[/quote]

This seems to be also a programmers problem besides being a compiler problem. For Windows I have always been using VS 7.1, and KDevelop on Linux. I'v never had any problems porting my code between the different OS's (but then again, I am only writting a simple 2D game ;-) )

But as you might have guessed already I am a huge fan of VS. It is a great (and custumizable) development environment capable of many task, including a very good debugger!
Crafter 2D: the open source 2D game framework ?Github: https://github.com/crafter2d/crafter2d
Twitter: [twitter]crafter_2d[/twitter]
Adam Hamilton
Adam Hamilton
One think that VS express does not offer is addins or macros. Seems fair enough cause your getting the product for free.

I think with CodeBlocks you can write plugins to do what you want.
Erzengeldeslichtes
Erzengeldeslichtes
I have nothing to add to the main topic as I use MSVC's IDE exclusively--I use non-Microsoft compilers extensively, but never the IDEs.

From what I can tell, MSVC2005's express edition has far less templates to work with. Professional edition (what I use) has project templates for MFC, smart devices, all forms of win32 binaries, setup wizards, and Visual Studio add-ins, amongst others, all of which are not available in the express edition. Maybe I missed something, but I thought that express edition was able to use add-ins, but not make them. Express can't make nor use IDE macros, though.
The DVD also includes all the source code for the standard C library and STL; express does not.

If any of this is worth the price, go for it. If I hadn't gotten pro from work, I probably would stick with express.

However, I have to comment on the later replies:
I like how one person bashes Microsoft and four people defend them. "Microsoft never follows the standards for anything" is a particularly amusing comment when Microsoft is on the standards committee. They help make the standards; off the top of my head I know they're on the committees for C, C++, C#, and Unicode... They weren't "standards compliant" with certain compilers because there was no such thing--the standards hadn't been finalized. Once the standards stopped fluxing, they became the most standards compliant compiler I've seen. They have plenty of extensions that even I use ("pragma region" is a godsend), but using extensions is the programmer's choice and not forbidden by the standard. In fact, the standard provides for extensions with pragma and __declspec (and "__*" reserved for compiler use), so providing such extensions is in and of itself following the standard.

The one problem mentioned was the non-standard assumed return type. MS's compiler emits a warning when this happens, and it is provided as a conviniance. You can turn it to an error with a pragma. Not paying attention to this warning is the programmer's fault, not the compiler's.
----Erzengel des Lichtes光の大天使Archangel of LightEverything has a use. You must know that use, and when to properly use the effects.♀≈♂?
Nitage
Nitage
Quote:
Original post by Conner McCloud
Quote:
Original post by zedzeek
Quote:
(varibles declared in the top of a for loop aren't scoped to the loop madness!)
thats been fixed now,

He mentioned that in the next paragraph.

CM


He mentioned that it was fixed in 2005, but it's actually fixed in 2003.

VC++2003 and 2005 are excellent compilers which correctly implement almost all the standard.

It's unfair to accuse VC6 of being non-standards compliant - it was released before ISO14482 was published - there was no standard for it to comply with. You wouldn't expect a 1980s K&R C compiler to implement C99, and you shouldn't expect a pre-1998 C++ compiler to implement ISO C++.

Quote:
I don't generally like Microsoft products myself, but "don't follow standards" is not really a reasonable accusation (note that that is something quite different from "develop proprietary standards and don't document them properly").

It's a bit odd how Visual Studio is a significantly higher quality product than any other MS software I've ever used, and (IMO) significantly better than any of it's competition.
pisrael
pisrael
Besides the discussion about microsoft. Anyone has used eclipse with CDT? I have used it in windows with a g++ compiler from mingw and I have been very satisfied. I work with VS 2003 in my compony every day, I think I know the IDE. Considering eclipse a free IDE and g++ a good compiler, it isn't a good choice?
Bregma
Bregma
Quote:
Original post by Nitage
VC++2003 and 2005 are excellent compilers which correctly implement almost all the standard.

True. No worse, and no better, than GCC.
Quote:

It's unfair to accuse VC6 of being non-standards compliant - it was released before ISO14482 was published - there was no standard for it to comply with. You wouldn't expect a 1980s K&R C compiler to implement C99, and you shouldn't expect a pre-1998 C++ compiler to implement ISO C++.

A bit of a myth. First, because the standard was published November 14, 1997 which predates the release of VC++ 6 by about 6 months. Ah, you say, but the lead time for releasing a compiler is quite long, so the poor programmers in Redmond would not have had time to conform! Sorry, the draft standard had been stable with repect to the language proper for over a year before publication, and only some fiddly bits in the library (in particular, std::auto_ptr) were still changing. Microsoft's language group had no excuse, none, zero, zip, nada, for perpetrating the inadequate implementation of the C++ language known as V6.

I have no quibble with things like the for-scope since that was for backwards-compatibility with previous code and was controllable through a compiler switch. The biggest problems were in the lack of most template features that had been a part of the draft standard for years, as well as things such as name lookup rules and that inexcusable pollution of the global namespace through the system headers (I can't tell you how many times I was hit by that nasty min/max crap). Further problems were in thye standard library implementation, but those were actually a result of lawyers getting involved rather than either Microsoft or the third party who implemented the library (and who were active committee members).

Do not listen to the apologists who try to make V6 look okay. It wasn't, and it isn't. Just avoid it and don't look back.

Do not take V6 as a reason to hate VS 2005. After realizing how bad V6 was, Microsoft went and hired as many big guns as they could (Sutter, Lippman, etc) and came out with a rock-solid product.

It's a good compiler. It's a good platform-specific IDE, if you like IDEs.

Stephen M. Webb
Professional Free Software Developer

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.