View Poll Results: Your most used C/C++ compiler?

Voters
40. You may not vote on this poll
  • MS Visual Studio

    22 55.00%
  • Borland

    2 5.00%
  • GCC

    25 62.50%
  • Other paid (Please post)

    1 2.50%
  • Other free (Please post)

    3 7.50%
  • Other open-source (Please post)

    3 7.50%
Multiple Choice Poll.

Thread: Your most used compiler

  1. #61
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by Elysia View Post
    I seriously doubt it. They made them because they are security wizards and C's library functions are by design so unsecure.
    They did it for security, not to create intentional incompatibilities.
    Fair enough, except that I imagine what you mean by "insecure" is that they are prone to be if not used properly. So if the "security improvement" is like, commands that do not allow buffer overflows no matter how dumb the programmer, that is asking to excuse dumb programmers. It is C. It is low level. You do your own memory management. That is what it is for. Otherwise, you might as well use another language.

    So that whole spiel sounds a great cover story to me. After all, they cannot actually say, "Oh, we are doing this in the interest of intentional incompatibility on the recommendation of the business division", which is more likely.

    No. VS6 is old and lacking in the standards compliant area.
    Newer editions are standards compliant, so upgrading will break the code. That is why they don't upgrade.
    And don't blame Microsoft. The same thing would happen to any company that used GCC 1.0.
    Do you mean VS6 used GCC 1.0? I'm not sure if this is such a good comparison otherwise, since GCC 1.0 was obsoleted in like 1989.
    But it looks to me like VS6 is considerably newer than that!
    Last edited by MK27; 07-16-2009 at 08:20 AM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  2. #62
    Frequently Quite Prolix dwks's Avatar
    Join Date
    Apr 2005
    Location
    Canada
    Posts
    8,057
    I used Dev-C++ 4.0 when I was programming on Windows (not 4.9.9.whatever, 4.0, just because I never got around to getting the latest version). It was great for my purposes -- launched fast, allowed multiple instances, supported easy compilation without projects. With larger projects I would start to wish it had proper Makefiles, though. These days if I had to work on Windows I think I might use Code::Blocks, but I didn't know about it at the time.

    For anything other than C/C++ (i.e., Perl, text, etc.) I would use SciTE. An ancient version of it, I might add. It's not a bad editor. I just wanted something that launched really fast and supported syntax highlighting.

    Between developing extremely simple programs in Dev-C++ and then later on developing rather complicated SDL programs in Dev-C++, I did DOS mode 13h programming in RHIDE. Great fun, I must say, and it's a good thing I was using Windows 98 or I would have missed out on some of it.

    Then I started using Linux from LiveCDs, and eventually installed it onto my hard drive and used it from there. Sometimes I'd use gedit, though I still find it annoying. kate was my favourite editor for an extremely long time; I still use it for moderately-sized projects. When I was developing xuni, though, kate just wasn't enough for all those files. KDevelop is my editor of choice for larger projects, with easy file switching and function- and class lookup. (And, I discovered recently and couldn't do without, file history -- you can go "back" and "forwards" through files . . . .)

    Kind of amusing that I recently installed Windows 95 in qemu and am using RHIDE once more.
    dwk

    Seek and ye shall find. quaere et invenies.

    "Simplicity does not precede complexity, but follows it." -- Alan Perlis
    "Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
    "The only real mistake is the one from which we learn nothing." -- John Powell


    Other boards: DaniWeb, TPS
    Unofficial Wiki FAQ: cpwiki.sf.net

    My website: http://dwks.theprogrammingsite.com/
    Projects: codeform, xuni, atlantis, nort, etc.

  3. #63
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by MK27
    So if the "security improvement" is like, commands that do not allow buffer overflows no matter how dumb the programmer, that is asking to excuse dumb programmers.
    The funny part is that it does not prevent buffer overflows; it just makes them more obvious to detect. Actually, if they had defaulted to turning those warnings off unless enabled separately, much of the beef against that set of features would be gone, methinks.

    Quote Originally Posted by MK27
    But it looks to me like VS6 is considerably newer than that!
    It is still pre-standard since it was released before the 1998 version of the standard was finalised.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  4. #64
    and the hat of sweating
    Join Date
    Aug 2007
    Location
    Toronto, ON
    Posts
    3,545
    One other reason to start teaching C/C++ on an IDE instead of command line is that IDE's will teach the students proper code indenting right from the start. You can see how many posts we get where someone posts code with absolutely no indentation at all, and if they would have indented their code they probably would have seen the error themselves...

    Quote Originally Posted by Elysia View Post
    They made them because they are security wizards
    Microsoft = security wizards? LMAO!!
    "I am probably the laziest programmer on the planet, a fact with which anyone who has ever seen my code will agree." - esbo, 11/15/2008

    "the internet is a scary place to be thats why i dont use it much." - billet, 03/17/2010

  5. #65
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by cpjust
    One other reason to start teaching C/C++ on an IDE instead of command line is that IDE's will teach the students proper code indenting right from the start. You can see how many posts we get where someone posts code with absolutely no indentation at all, and if they would have indented their code they probably would have seen the error themselves...
    hmm... but then one could provide the students with a text editor that is able to perform proper indenting.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  6. #66
    Guest Sebastiani's Avatar
    Join Date
    Aug 2001
    Location
    Waterloo, Texas
    Posts
    5,708
    >> Why shouldn't it "know" if you use sprintf instead of sprintf_s? That makes no sense. I can understand if you are annoyed by the warning, but you can disable them.

    Who wants their compiler telling them what functions should and should not be used? That's just plain annoying. That sort of thing should either be disabled by default, or better yet, be part of the IDE or some other special tool.
    Code:
    #include <cmath>
    #include <complex>
    bool euler_flip(bool value)
    {
        return std::pow
        (
            std::complex<float>(std::exp(1.0)), 
            std::complex<float>(0, 1) 
            * std::complex<float>(std::atan(1.0)
            *(1 << (value + 2)))
        ).real() < 0;
    }

  7. #67
    Making mistakes
    Join Date
    Dec 2008
    Posts
    476
    They should put more money in extending the standards - waiting for C19 ;-p with a better-organized standard library.

  8. #68
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Quote Originally Posted by MK27 View Post
    Fair enough, except that I imagine what you mean by "insecure" is that they are prone to be if not used properly. So if the "security improvement" is like, commands that do not allow buffer overflows no matter how dumb the programmer, that is asking to excuse dumb programmers. It is C. It is low level. You do your own memory management. That is what it is for. Otherwise, you might as well use another language.

    So that whole spiel sounds a great cover story to me. After all, they cannot actually say, "Oh, we are doing this in the interest of intentional incompatibility on the recommendation of the business division", which is more likely.
    Just because it's C doesn't mean we should create programs that causes buffer overruns.
    Functions that help detect these kind of things are not bad things.
    Furthermore, just because it's C doesn't mean we have to do everything manually. That's just plain stupid.
    Do you mean VS6 used GCC 1.0? I'm not sure if this is such a good comparison otherwise, since GCC 1.0 was obsoleted in like 1989.
    But it looks to me like VS6 is considerably newer than that!
    No...
    VS6 wasn't very standards compliant (it came out before the first ISO C++ standard, after all), so upgrading to a newer version which is standards compliant will break all the code that works with VS6!
    Similarly, if you wrote some code using GCC 1.0 and upgraded to GCC 4.0 later, you would break that code that compiled on GCC 1.0.
    This is what I mean, and that's why it's not Microsoft's fault.

    Quote Originally Posted by cpjust View Post
    Microsoft = security wizards? LMAO!!
    Yes, they are very focused on security. One of the biggest actors, actually. Therefore they are security wizards. But note that security wizards doesn't mean least security issues.

    Quote Originally Posted by Sebastiani View Post
    Who wants their compiler telling them what functions should and should not be used? That's just plain annoying. That sort of thing should either be disabled by default, or better yet, be part of the IDE or some other special tool.
    Absolutely not. Security comes first.
    And I'd love to see compilers complain about the use of gets, too.

    Quote Originally Posted by Brafil View Post
    They should put more money in extending the standards - waiting for C19 ;-p with a better-organized standard library.
    Perhaps if the standards committee decided to add some C functions with higher security to the library, Microsoft would remove their own functions, if they can be bothered to spend enough money to upgrade the C compiler. But upgrading the C compiler seems unlikely. It's not really Microsoft's area, it seems.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  9. #69
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by Elysia
    And I'd love to see compilers complain about the use of gets, too.
    gcc and g++ warn about gets, at least version 4.2.4.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  10. #70
    {Jaxom,Imriel,Liam}'s Dad Kennedy's Avatar
    Join Date
    Aug 2006
    Location
    Alabama
    Posts
    1,065
    GCC (for Linux and Windoze). I too am a command line guy -- My IDE is VIM in mutiple konsole shells!!! (I don't really like VI as I like to be able to do really cool block copies, etc.

    Though, when forced to write code in Windoze I do use Code::Blocks.

    Andy

  11. #71
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Quote Originally Posted by laserlight View Post
    gcc and g++ warn about gets, at least version 4.2.4.
    Now see, those types of warning should be enabled by default, no?
    And if there was an even more secure version of fgets, say, shouldn't the compiler warn about the use of fgets, then?
    I think so, and this is exactly what the VS compiler does. The only problem is that I don't think they make it clear it's a non-standard function.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

  12. #72
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by Elysia
    And if there was an even more secure version of fgets, say, shouldn't the compiler warn about the use of fgets, then?
    No, since it may well be the case that fgets is used in a way that is secure, whereas the only use of gets that is secure is where the input is guaranteed to be correct, e.g., by the rules of a programming competition for which safe coding is not even a bonus factor.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  13. #73
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by Elysia View Post
    Now see, those types of warning should be enabled by default, no?
    I don't think any compiler should "by default" warn about any function still in the standard, altho gcc will by default tell you never to use gets().

    It doesn't matter anyway. You just need to know the appropriate switches I mentioned earlier:
    Code:
    gcc -bioniclinking -maxbugfixx -ultrafast -megaperfect
    and no matter how stupid or new you are everything will be fine.

    Plus, every one millionth program compiled with gcc produces this message:
    Great for you! Less than three errors again!
    You can now proceed to http://gnu.org/even_more to receive your free, signed "RMS" beer stein -- made of solid 'pewter!
    Last edited by MK27; 07-16-2009 at 12:26 PM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  14. #74
    Lurking whiteflags's Avatar
    Join Date
    Apr 2006
    Location
    United States
    Posts
    9,613
    Great for you! Less than three errors again!
    You can now proceed to http://gnu.org/even_more to receive your free, signed "RMS" beer stein -- made of solid 'pewter!
    Do want. Although pewter leads to lead poisoning, if memory serves.

    Also I laughed at the whole security wizards thing. Thanks Elysia! It seems a wee contradictory that a bunch of "security wizards" would have so many security problems with their products. Really I don't see how microsoft is any more focused on security than any other company. Calling them security wizards because they tacked on a few warnings in their dev software suggests a very narrow perspective on what security is on the part of the claimant.

  15. #75
    and the hat of sweating
    Join Date
    Aug 2007
    Location
    Toronto, ON
    Posts
    3,545
    Quote Originally Posted by Elysia View Post
    Yes, they are very focused on security. One of the biggest actors, actually. Therefore they are security wizards. But note that security wizards doesn't mean least security issues.
    Symantec is a 'security wizard'. Microsoft is only starting to take security seriously, and they have a long way to go.

    Quote Originally Posted by laserlight
    hmm... but then one could provide the students with a text editor that is able to perform proper indenting.
    That's one of the functions of an IDE; but a good IDE also highlights code syntax, takes you directly to the lines causing compile errors, lets you debug code, does auto-completion as you type names of functions, has integrated help about classes/functions where you can just click on the name of the class/function and press a key to learn how to use it, shows you the type of a variable when you put your mouse over the variable name... All very useful things to have when programming.
    "I am probably the laziest programmer on the planet, a fact with which anyone who has ever seen my code will agree." - esbo, 11/15/2008

    "the internet is a scary place to be thats why i dont use it much." - billet, 03/17/2010

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Compiler Paths...
    By Cobra in forum C++ Programming
    Replies: 5
    Last Post: 09-26-2006, 04:04 AM
  2. C Compiler and stuff
    By pal1ndr0me in forum C Programming
    Replies: 10
    Last Post: 07-21-2006, 11:07 AM
  3. I can't get this new compiler to work.
    By Loduwijk in forum C++ Programming
    Replies: 7
    Last Post: 03-29-2006, 06:42 AM
  4. how to call a compiler?
    By castlelight in forum C Programming
    Replies: 3
    Last Post: 11-22-2005, 11:28 AM
  5. Bad code or bad compiler?
    By musayume in forum C Programming
    Replies: 3
    Last Post: 10-22-2001, 09:08 PM

Tags for this Thread