The new forums will be named Coin Return (based on the most recent vote)! You can check on the status and timeline of the transition to the new forums here.
The Guiding Principles and New Rules document is now in effect.

Good free C++ IDEs?

Recoil42Recoil42 Registered User regular
edited January 2007 in Games and Technology
So I've known Java for a few years and done alot of code with it, learned C and Miranda (obscure functional language) recently, and simply, bleh, I love programming, I'm a computer science major in university, ffs, but it's getting frustrating working with languages that are useless in a modern windows based environment. I want to learn a language with which I can create real programs that aren't just good exercises in programming, but also useful for creating things I can actually compile into professionally looking programs and use myself, as well as give to others.

I was thinking between C#, C++, and Visual Basic, but seeing as C# afaik requires the .net framework for anyone who wants to use it's executables, and everything I've heard about VB says it's on the way out -- plus, C++ is often mentioned as the most popular language..... I figure C++ is the way to go, and I want to mess around with it a bit. But I don't have the desire, nor the cash at the moment, to throw down for a copy of Visual C++.

Are there any good C++ IDEs out there that anyone can recommend for me?

I've already used Eclipse for Java before, how is it for C++?

Recoil42 on

Posts

  • The TommyThe Tommy Registered User regular
    edited January 2007
    To be totally honest, I'm lazy as hell, and don't feel like linking, but they're easy to find on Google.

    Dev C++ - Free, open source, uses some kind of GCC-for-Windows thing I think
    Visual C++/C# Express - Free, Microsoft-made, on Microsoft.com

    There are others, but those are the main two. Depends on your liking.

    The Tommy on
    modestmousesig2ab5.png
  • Recoil42Recoil42 Registered User regular
    edited January 2007
    The Tommy wrote:
    Visual C++/C# Express - Free, Microsoft-made, on Microsoft.com

    Wait wait wait what?

    /me reads wikipedia


    So... what's it missing, then? What's the difference between this and regular Visual C++? (Which, btw, I understand is generally the 'industry' standard as far as C++ IDEs for windows go, right?)

    Recoil42 on
  • The TommyThe Tommy Registered User regular
    edited January 2007
    Honestly, no idea. I haven't really used them much yet because I suck ass at C++/C#.

    The Tommy on
    modestmousesig2ab5.png
  • MonoxideMonoxide Registered User, ClubPA regular
    edited January 2007
    Wikipedia wrote:
    The Express Edition has the following limitations:[2]

    * Limited to one CPU
    * Lack of enterprise features support
    * One GB memory limit for the buffer pool
    * Databases have a 4 GB maximum size
    * No Data mirroring and/or clustering
    * No importing or exporting of table structures or table data

    Keep in mind that, usually, programs you would create using Visual C++ are a tad different than plain C++, in that you're usually using the visual designer component as well as a few windows libraries. But you don't really have to, and you could just use it to write/compile your code if you want to get used to the toolset. Visual C# is also free, and used with XNA if you want to get into game development.

    If you just want to make simple command line or cross platform applications, use something like Eclipse, Dev C++, or Quincy, all of which (I believe) use gcc to compile. Eclipse is fine if you're already used to it with Java apps, since it's a pretty nice toolset and the only complaint anyone has is that it's a little bloated. I like it though since I can use it on whatever the hell computer or OS I feel like writing some code on, and the RadRails component is pretty neat for rails development.

    If you want to try to use C++ with it, just set up the Eclipse CDT - C++ Development Tools by using one of these howtos

    Monoxide on
  • Recoil42Recoil42 Registered User regular
    edited January 2007
    Monoxide wrote:
    Wikipedia wrote:
    The Express Edition has the following limitations:[2]

    * Limited to one CPU
    * Lack of enterprise features support
    * One GB memory limit for the buffer pool
    * Databases have a 4 GB maximum size
    * No Data mirroring and/or clustering
    * No importing or exporting of table structures or table data
    Psst... that list is for SQL Server 2005 Express, not C++. Hence all the talk about buffer pools, databases, and data mirroring :P

    As for the rest of what you said, half of the point is that I definitely want to go BEYOND simple command line programs, I want to make some creations with a nice GUI, little tools here and there.

    Like, I was thinking of making my own little alarm clock app for mine and a few of my buddies use, that would launch an MP3 and raise the volume at a specified time in the morning, just as an example.

    Eventually, of course, I want to get into DirectX too, make some games, but that's a bit farther off.

    Recoil42 on
  • KambingKambing Registered User regular
    edited January 2007
    Recoil42 wrote:
    The Tommy wrote:
    Visual C++/C# Express - Free, Microsoft-made, on Microsoft.com

    Wait wait wait what?

    /me reads wikipedia


    So... what's it missing, then? What's the difference between this and regular Visual C++? (Which, btw, I understand is generally the 'industry' standard as far as C++ IDEs for windows go, right?)

    Woo, time to shill for my product >_<

    As far as standard C++ goes, VC++ express is a complete package. You have full disposal of the C++ compiler and standard libraries so you'll have no problem creating cross-platform applications or using cross-platform libraries. Our C++/CLI implementation is also included if you want to use the .NET with C++.

    What you'll be missing are Microsoft-specific libraries, most notably MFC/ATL, although you can integrate the Windows SDK as a post-installation step so you can create Win32 apps by hand. You'll also be missing out on advanced features like profile-guided optimization and the 64-bit cross-compilers that you (hopefully) don't need with your projects.

    All in all, speaking with absolutely no bias ( :D ), I recommend trying express out to learn C++ if you're running Windows.

    Kambing on
    @TwitchTV, @Youtube: master-level zerg ladder/customs, commentary, and random miscellany.
  • Shooter McgavinShooter Mcgavin Registered User regular
    edited January 2007
    Express for sure. It just works, although the whole concept of "solutions" kind of threw me for a loop at first

    Shooter Mcgavin on
    banner.gif
  • ROFISHROFISH AnehiixiiRegistered User regular
    edited January 2007
    Xcode! :D

    ROFISH on
    sig3.png
  • Recoil42Recoil42 Registered User regular
    edited January 2007
    Kambing wrote:
    stuff

    Ahahaha, talking to an actual developer of the software. internet wins again. :D


    Thanks, Kambing. :)


    One thing:
    What you'll be missing are Microsoft-specific libraries, most notably MFC/ATL, although you can integrate the Windows SDK as a post-installation step so you can create Win32 apps by hand. You'll also be missing out on advanced features like profile-guided optimization and the 64-bit cross-compilers that you (hopefully) don't need with your projects.

    Again, having no experience with this, as the extent of my GUI coding is Java's Swing library (and it blows goats).... What would be the difference between doing my apps "by hand" with the SDK versus with the MFC?

    Recoil42 on
  • ROFISHROFISH AnehiixiiRegistered User regular
    edited January 2007
    Recoil42 wrote:
    What you'll be missing are Microsoft-specific libraries, most notably MFC/ATL, although you can integrate the Windows SDK as a post-installation step so you can create Win32 apps by hand. You'll also be missing out on advanced features like profile-guided optimization and the 64-bit cross-compilers that you (hopefully) don't need with your projects.

    Again, having no experience with this, as the extent of my GUI coding is Java's Swing library (and it blows goats).... What would be the difference between doing my apps "by hand" with the SDK versus with the MFC?
    My limited Windows experience says: you're fucked. I think you have to manually call Windows dlls to do things rather than the C++ all-in-one kit thing that MFC does.

    ROFISH on
    sig3.png
  • JaninJanin Registered User regular
    edited January 2007
    Recoil42 wrote:
    What you'll be missing are Microsoft-specific libraries, most notably MFC/ATL, although you can integrate the Windows SDK as a post-installation step so you can create Win32 apps by hand. You'll also be missing out on advanced features like profile-guided optimization and the 64-bit cross-compilers that you (hopefully) don't need with your projects.

    Again, having no experience with this, as the extent of my GUI coding is Java's Swing library (and it blows goats).... What would be the difference between doing my apps "by hand" with the SDK versus with the MFC?

    If "Windows SDK" means the Win32 C libraries, then you don't want to go down that path. The only API I've ever used that's worse is Xlib.

    You can try Qt or GTK+ which are both free. GTK+ is very easy to set up on Windows, but looks ugly. Qt is a pain in the ass to install, but has a much better Windows theme and is a bit easier to code in.

    Janin on
    [SIGPIC][/SIGPIC]
  • Bob SappBob Sapp Registered User regular
    edited January 2007
    Straight Win32 programming is for real men. With that said, if you're trying to learn C++, you probably won't need to touch it for quite awhile.

    Bob Sapp on
    fizzatar.jpg
  • dsplaisteddsplaisted Registered User regular
    edited January 2007
    As a student you may be able to get a full copy of Microsoft Visual Studio for free, or at least pretty cheaply. Microsoft generally wants students to use Visual Studio so that when they graduate they will continue to use it :) Try asking your professors, other students, and your Microsoft recruiter.

    C++/MFC and C#/.NET are both good environments for Windows applications, IMHO. The C#/.NET route is easier, and I don't think it's too much of an obstacle at your level to require the .NET framework (which is available here). On the other hand, you'll probably learn more if you tackle C++/MFC. It might look better to some employers too, as I would tend to have more respect for someone who has experience in C++ as opposed to C#.

    I'd recommend attempting C++/MFC (assuming you can get your hands on the full version of Visual Studio), and if you get too frustrated, switch to C#/.NET and come back to C++ later.

    dsplaisted on
    2850-1.png
  • HalibutHalibut Passion Fish Swimming in obscurity.Registered User regular
    edited January 2007
    Before I used Visual Studio, I used Dev C++. It worked just fine for the OpenGL stuff I was doing at the time. But if there is a free version of Visual Studio available (and it seems like there is) I won't not recommend it, as the professional version is what I use now.

    Halibut on
  • His CorkinessHis Corkiness Registered User regular
    edited January 2007
    Visual Studio is decent; it's the IDE I use at least. My one complaint is that the C++ portion lacks a lot of the refactoring and making-coding-less-of-a-headache tools that are found in, say, the C# portion. Otherwise it's a solid IDE.

    His Corkiness on
  • mausmalonemausmalone Registered User regular
    edited January 2007
    Recoil42 wrote:
    The Tommy wrote:
    Visual C++/C# Express - Free, Microsoft-made, on Microsoft.com

    Wait wait wait what?

    /me reads wikipedia


    So... what's it missing, then? What's the difference between this and regular Visual C++? (Which, btw, I understand is generally the 'industry' standard as far as C++ IDEs for windows go, right?)

    this has a few less features, but most importantly, is only ANSI/ISO C/C++ compliant. You can use it to learn to work with basic C/C++, but there is absolutely no way for you to use it to write any programs that use any part of the Windows API.

    The IDE itself, though, is every bit as good as Visual Studio standard.

    mausmalone on
    266.jpg
  • JaninJanin Registered User regular
    edited January 2007
    mausmalone wrote:
    Recoil42 wrote:
    The Tommy wrote:
    Visual C++/C# Express - Free, Microsoft-made, on Microsoft.com

    Wait wait wait what?

    /me reads wikipedia


    So... what's it missing, then? What's the difference between this and regular Visual C++? (Which, btw, I understand is generally the 'industry' standard as far as C++ IDEs for windows go, right?)

    this has a few less features, but most importantly, is only ANSI/ISO C/C++ compliant. You can use it to learn to work with basic C/C++, but there is absolutely no way for you to use it to write any programs that use any part of the Windows API.

    The IDE itself, though, is every bit as good as Visual Studio standard.

    Are we talking about the same Windows API? I have a program that uses Win32 functions for things like opening windows and grabbing input, and it compiled fine in VS express.

    Janin on
    [SIGPIC][/SIGPIC]
  • ecco the dolphinecco the dolphin Registered User regular
    edited January 2007
    I'm surprised no one's mentioned the debugger on VC++. It's one of the best and easiest to use debugging environments that I've ever worked with.

    I mean, yes, it's nice to have syntax highlighting, code refactoring, code browsing and all that, and most other IDEs/editors have all that, but it's the debugging environment that's really won me over to Visual Studio.

    ecco the dolphin on
    Penny Arcade Developers at PADev.net.
  • MasterDebaterMasterDebater Registered User regular
    edited January 2007
    The C/C++ plugin for Eclipse is decent; the only problem is it doesn't include a compiler, so you need to get one seperately (they have step-by-step instructions).

    MasterDebater on
  • bashbash Registered User regular
    edited January 2007
    Win32: General name for Windows' procedural C API. It's sometimes extremely hard to pick up for developers used to OO design processes. It's rarely recommended you actually use the Win32 API directly.

    MFC: A set of C++ classes that wrap the functions of Win32. Pretty much everything in Win32 proper is exposed in the MFC which means you can write your app entirely in C++ using good OO practices and be much happier in life. Here's a short introduction (part two)to the MFC in relation to the Win32 API.

    These are not the only two choices you've got WRT Windows development. There's the Qt framework which is fantastic to work with. It's far better designed (IMO) than MFC and much easier to work with. However it does mean you've got an added dependancy to your deliverable (the Qt library). I would definitely recommend it over MFC however, for many of the reasons documents in this article.

    Honestly look into C#/WinForms development if you have an extensive Java background. C# is the conceptual heir of J++ (not technologically but if you ever programmed in J++ you know what I mean). Not only is it far more friendly to learn coming from Java, through the Mono project you've also got the option of your work being naturally cross-platform. Barring some minor issues Qt has this same benefit as well. You're also not tied to Visual C++ as you would be with MFC (though you can use it)

    bash on
    comi-sig1.jpg
  • KambingKambing Registered User regular
    edited January 2007
    Recoil42 wrote:
    Kambing wrote:
    stuff

    Ahahaha, talking to an actual developer of the software. internet wins again. :D


    Thanks, Kambing. :)


    One thing:
    What you'll be missing are Microsoft-specific libraries, most notably MFC/ATL, although you can integrate the Windows SDK as a post-installation step so you can create Win32 apps by hand. You'll also be missing out on advanced features like profile-guided optimization and the 64-bit cross-compilers that you (hopefully) don't need with your projects.

    Again, having no experience with this, as the extent of my GUI coding is Java's Swing library (and it blows goats).... What would be the difference between doing my apps "by hand" with the SDK versus with the MFC?

    Yeah, what everyone has said is correct. With paid versions of VS2005, you can use MFC and the resource editor to make the Win32-GUI experience more pleasant. With the pure express edition, you're stuck with the Win32 API for native development which, nicely speaking, requires lots of background knowledge in order to get up and running.

    As bash points out, Qt is a good alternative. You can also use WinForms, the managed set of GUI classes, with C++/CLI, our language extensions for managed development. If you are intent on learning on C++, then there is that path that will allow you to leverge the .NET framework (which is not a bad dependency to take given that it is installed on virtually all Windows machines).

    Kambing on
    @TwitchTV, @Youtube: master-level zerg ladder/customs, commentary, and random miscellany.
  • PheezerPheezer Registered User, ClubPA regular
    edited January 2007
    Recoil42 wrote:
    Monoxide wrote:
    Wikipedia wrote:
    The Express Edition has the following limitations:[2]

    * Limited to one CPU
    * Lack of enterprise features support
    * One GB memory limit for the buffer pool
    * Databases have a 4 GB maximum size
    * No Data mirroring and/or clustering
    * No importing or exporting of table structures or table data
    Psst... that list is for SQL Server 2005 Express, not C++. Hence all the talk about buffer pools, databases, and data mirroring :P

    No kidding.

    Also, the bits about importing and exporting tables aren't necessarily true. If you're smart you can put together some SQL and leverage linked servers & ODBC to work small miracles.

    The .NET languages are nice to work with if you're in an environment where you need to turn out things that work very quickly. If you're putting together smaller applications that solve business problems, and you're in a Windows environment, it's fucking beautiful a lot of the time.

    Now, there is a project out there called Mono that allows the .NET stuff to work outside Windows, but it's less well known.


    If your interest is in moving into game programming, you're going to be developing for Windows most of the time anyhow. If you want to learn DirectX instead of OpenGL, you'll be developing for Windows all of the time. In either case, Visual C++ is a good place to get started. If you want to move away from Windows when you start getting into games, teach yourself OpenGL instead of DirectX.

    Pheezer on
    IT'S GOT ME REACHING IN MY POCKET IT'S GOT ME FORKING OVER CASH
    CUZ THERE'S SOMETHING IN THE MIDDLE AND IT'S GIVING ME A RASH
  • jman2050jman2050 Registered User regular
    edited January 2007
    eecc wrote:
    I'm surprised no one's mentioned the debugger on VC++. It's one of the best and easiest to use debugging environments that I've ever worked with.

    I mean, yes, it's nice to have syntax highlighting, code refactoring, code browsing and all that, and most other IDEs/editors have all that, but it's the debugging environment that's really won me over to Visual Studio.

    Yes yes yes. VC++'s debugger is all sorts of awesome. A very good breakpoint system, the ability edit your code and recompile it mid-debug, very good explanations when errors do happen, the ability to see the values of any variable in scope and change said values for testing purposes, all in one convinient package.

    Visual Studio in general rocks, and now that you can get the Express Edition for free, I highly recommend it.

    If you don't want it for some reason, Dev-Cpp is still a very nice alternative.

    jman2050 on
  • PaladinPaladin Registered User regular
    edited January 2007
    Just chiming in with some keywords

    If you're in a college, the free Visual Studio prof edition is provided courtesy of the Microsoft Developer Network (MSDN) Academic Alliance. However, I wouldn't count on you being able to access it yourself as it is mostly restricted to faculty and staff or public access computers.

    That being said, the easiest way to check what free software you're entitled to as a student is to utilize your school's web page search function (if it has one) or browse software related pages on your school's networking and technology page, wherever that is.

    Paladin on
    Marty: The future, it's where you're going?
    Doc: That's right, twenty five years into the future. I've always dreamed on seeing the future, looking beyond my years, seeing the progress of mankind. I'll also be able to see who wins the next twenty-five world series.
  • DigDug2000DigDug2000 Registered User regular
    edited January 2007
    Heh. I know that almost everyone in the world hates this idea, but if its just a nice GUI you want, you could write a XULRunner app. Creating a GUI in XUL is easy shit, and its not too hard to set up VC++ Express to compile XPCOM components, which you can then just call through some scripting language.

    I'm sure there's tons easier ways to do shit like that, but you can do all this in Notepad if you want, which I always think is pretty cool.

    DigDug2000 on
Sign In or Register to comment.