Slashdot Mirror


What Free IDE Do You Use?

postermmxvicom writes "I program only occasionally and mostly for personal interest. I went to update my favorite free IDE, Dev C++, yesterday and noticed that it had not been updated since 2005! I went looking for other free IDEs and came across Code::Blocks and Visual Studio Express. I work from a Windows machine, use C++, and make mostly console apps; but have written a few Windows apps and D3D or OpenGL apps. I wanted to know what free IDEs you use and recommend. What do you like about them? What features do they lack? What about them irritate you (and what do you do to work around these annoyances)? For instance, when I used Visual C++ 6.0 in college, there was an error in getline that had to be fixed, and the code indenting in DevC++ needed to be tweaked to suit my liking."

19 of 1,055 comments (clear)

  1. Eclipse and Netbeans by Ethanol-fueled · · Score: 5, Informative

    I don't mess with C++ often but I still use Dev C++. Code::blocks wouldn't even install on my machine(or maybe it did, but never started up without a fatal error, can't remember which) and Visual Studio Express is a monstrosity which will take 45 minutes to install tons of weird crap while making your monitor flicker. Visual Studio express also allows only one programming language.

    Contrast those with Netbeans and Eclipse which are known as Java IDEs but can be configured with plugins and add-ons to do all kinds of stuff, including C/C++ development. I haven't tried either of the two for C/C++ but I believe that Eclipse would be a the good middle ground between Dev C++ and the bloated NetBeans.

    Here's[PDF warning] a good place to start. Good luck.

    1. Re:Eclipse and Netbeans by Sectrish · · Score: 4, Informative

      I also use Dev-C++ for my windows development, I find the interface to be superb in not getting in my way, while not being dog-ugly or slow.

      Conversely, I was searching for an alternative for linux (yes, I'll learn vi/vim some day, just not now), and what I found was Geany. It starts up at the flick of a finger and manages to look a lot like Dev-C++ (perhaps more polished even). The only thing I dislike about it is its (intentional) weak project support, but that could conceivably be fixed with the nice plugin system. So, Geany is very lightweight and supports quite a lot of languages, it has its default settings such that if you have the necessary compilers installed (which is basically mostly true on most linux systems, or can be done with one line at the shell), it'll work out of the box. The same for python, perl, etc.

      Then I noticed that it also has a windows port, that comes with its own GTK+ runtime (all nicely contained in Geany's folder, and nicely uninstalled if you want), I tried it and while the first startup is not as fast (due to the GTK+ libraries needing to be loaded), all the rest is just as snappy. Ofcourse the windows version needs a little more help to get started, but not _that_ much more. All you basically have to do is install MingW and set your $PATH to search MingW/bin.

      So basically the only problem with Geany that still remains (for me), is that it doesn't really support projects like Dev-C++ did, so for now you basically have to make your own makefiles. This could also be viewed in a positive light ofcourse, as learning about makefiles will prove to be a good skill if you want to do some open source contribution. But I'm sure it could get tedious as well (haven't done many large projects lately), so someone developing a plugin would be really nice, and probably not too hard as well.

      Well, I've been ranting and promoting long enough now, time for Geany to promote itself, give it a spin (it's free, the only cost is your time ;) ).

    2. Re:Eclipse and Netbeans by major_fault · · Score: 4, Informative

      I have to recommend Code::Blocks. I used Dev-Cpp for a long time before Code::Blocks and I've tried Visual Studio, but Code::Blocks wins at least for now because: 1) it starts up and is mostly faster on my machine than Visual Studio, 2) it supports more than one compiler (can compile with both gcc and cc), 3) and the best part is that you can have the project directory respond to actual directory layout when you have made the project before without an IDE. If someone gets a fatal error in case of Code::Blocks was probably because of not downloading extra package with .dll-s. Also, it's safe to use it's nightly builds.

    3. Re:Eclipse and Netbeans by Dr.+Hok · · Score: 4, Informative

      I've used eclipse since version 2. I can't comment on it, I'm still waiting for it to open.

      Huh? OK, Eclipse may start up slower than freecell, but I usually start it only once a day while I pour me a coffee. The real issue with Eclipse is that it's (almost) no use with less than 2GB memory, so it doesn't really run everywhere (yet).

      I tried it as a C++ IDE for a while and found it quite nice, only to find out that C++ sucks compared to Java (from a developer's POV). I had to look at someone else's code and it was uber-hard to locate the places where all those macros and typedefs are. I haven't found an IDE that can help you here, so I ended up grepping a lot.

      NB: As a Java developer I was mildly insulted by the fact that TFA never even bothered to mention that he's looking for an IDE for C++.

      --
      Say out loud: I'm an Aspie and I'm somewhat proud, I guess. Uh. Can I write an email in all caps instead? Hm...
  2. Eclipse by cblack · · Score: 5, Informative

    I like Eclipse as an IDE because it supports many languages/modes and is very customizable. I mostly use it for Java, Perl and HTML/XML/CSS right now. There are MANY plugins and the context-aware help/auto-complete is very well done.

    1. Re:Eclipse by El_Muerte_TDS · · Score: 5, Informative

      Also a great feature of eclipse is that you can install multiple copies of it on the same machine.
      This is specially useful because MANY plugins make eclipse slow. So for every major project environment (i.e. Java, or PHP, or PDT, ...) I have a separate eclipse install.

  3. wxDev-C++ extended that project by jfern · · Score: 5, Informative

    version 7.0 RC5 came out 2 months ago.
    Wiki page with link

  4. KDevelop 4 and Qt Creator by EsbenMoseHansen · · Score: 4, Informative

    Two options that have not come up yet. KDevelop 4 is shaping up really good, but I do not think it is actually working on win32/64 yet. The other is Qt Software's offer Qt creator which is also getting a good deal of praise. The latter is probably extra good if you use Qt... and if you don't, I would recommend at least looking at it, since it is a very nice LGPL library.

    --
    Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
  5. Visual Studio Express is quite good by daVinci1980 · · Score: 4, Informative

    You hit it in the summary. I program professionally. At work, I use gcc, xcode or msvs (depending naturally on the platform).

    At home, for personal development on Windows in C++, nothing beats Visual Studio Express. It's lightweight, meaning they've trimmed out most of the stuff that you don't care about anyways for personal projects.

    As much as it might pain the free software crowd, Microsoft has done a good job with Visual Studio Express.

    --
    I currently have no clever signature witicism to add here.
  6. eclipse by tero · · Score: 4, Informative

    I swear by Eclipse - I mostly do Java these days though, but I do have it setup for C++, Perl and PHP as well.
    Good plug-in support - easy to install and update.. what's not to like? :-)

    Integrates with most versioning tools through plug-ins (CVS, SVN etc).

    Runs on all platforms. It's great.

  7. Eclipse by ErikPeterson · · Score: 4, Informative

    I use Eclipse http://www.eclipse.org/ for all my IDE needs. I have found that it works well on any platform (and with any language) that I find myself sitting behind (or coding in). Eclipse gets my vote mainly for its very wide language AND platform support.

    --
    The world's smartest bug zapper www.zapstats.com/kickstarter
  8. What I use(d) by Lord+Lode · · Score: 4, Informative

    Years ago I worked mainly in MS Windows, and I used Dev-C++ as the free IDE, because it's fast and simple.

    Then I switched to Linux. Tried KDevelop for a few days but didn't like it. Then discovered Kate, which can work as a sort of IDE, because you can open multiple documents, and open a console window at the bottom to type compile and run commands.

    Then KDE4 was release and Kate suddenly was unusable for programming (due to ruined search function). And that's when I discovered Geany, which is really nice, it has the same functionality as Kate but is more clearly geared towards programmers.

    Geany works great in Linux, I see that it's cross platform, so I guess you can also get it to work in Windows. But note that due to Windows not having the same compiler tools as Linux available by default, it might be handier in Windows to have something that comes with its own compiler like Dev-C++ :)

  9. If you're moving towards .NET by snookums · · Score: 4, Informative

    Try SharpDevelop if you ever decide to trade in C++ for C# and the .NET framework.

    http://www.icsharpcode.net/OpenSource/SD/
    http://en.wikipedia.org/wiki/SharpDevelop

    I'm not really a Microsoft platform coder any more, but I've used this one in the past and it's not bad. Basically a free (as in speech - LGPL) clone of VisualStudio.

    --
    Be careful. People in masks cannot be trusted.
  10. NetBeans by timothyb89 · · Score: 5, Informative

    I've been using NetBeans lately for C/C++ development, and (for the most part) it has it's usual awesome editor features. Unfortunately, the C/C++ plugin only works with the Cygwin/MinGW development tools on Windows.

    I'd say that it's most useful editing feature is it's code completion- it completes quite a few of the usual syntactical characters, and it enters them for you in a way that makes sense. Compare that to Eclipse, which only fills in (as far as I know) parenthesis and some brackets. Being accustomed to the completion NetBeans offers, I found the way Eclipse completes characters to be more frustrating than helpful.

    For example, if you have this mostly-typed statement (')' autocompleted by editor):
    some_function(something()[cursor])
    ...you might think that pressing the ';' key should make the cursor jump to the end and skip over the ')'. NetBeans will do the small things like this, where I haven't seen Eclipse do it.

    I haven't used Eclipse as much as NetBeans, so I may have missed the "turn this feature on" checkbox, but I've always found NetBeans to be a more intuitive editor. I'm not an expert C/C++ programmer (Java is my main language), so I could just be making assumptions that may be true for one language but not another. Either way, its just my $0.02.

  11. Re:Either emacsclient or ed by zsitvaij · · Score: 4, Informative
    I'd rather use the built-in VCS-mode right from Emacs. :)

    "With the release of Emacs 22 on June 2nd a new set of version control (vc for short) modes was released as well. The Emacs Tour briefly touches on it, however it fails to point out the geniusness of this feature.

    As of 22.1.1 the following version control backends are supported: RCS, CVS, SVN, SCCS, Bzr, Git, Hg, Arch and MCVS. All commands work the same for all backends."

    more reading

  12. Re:99% of the answers are going to be Eclipse by jonaskoelker · · Score: 5, Informative

    If anyone says Emacs or Vi they are insane and have never done 10k lines of code in a modern environment.

    Hoping that I'm not about to start a flame war: why?

    I assume you're qualified to make that statement, which means you know both emacs and vi very well. Whenever you think there's something $EDITOR can't do, you have (1) searched the web for that functionality; (2) asked in the relevant IRC channel(s); and (3) asked on mailing lists, news groups, forums and the like.

    Let's see; they have (I'm most certain that I'm speaking about emacs, less certain about vi)

    • Syntax highlighting (i.e. colouring)
    • Good automatic indentation
    • Automatic auto-completion of names
    • Easy code navigation (ctags, etags, ecb-minor-mode)
    • Version control integration (M-x shell or vc-minor-mode, :!git-commit)
    • Debugger integration (M-x gdb, achida*)
    • Build system integration (:!make & or M-x shell make)
    • man page (vi) and browser integration (both emacs and vi) to view your documentation

    Uhmm... what more do you want? Especially for small 10k-line projects. Example: wminput, which translates wiimote events to uinput events, is 9236 lines (in wminput/**/*.[ch]; this doesn't include bluetooth or wiimote libraries).

    I think that if you think 10k lines even begins to stretch the capabilities of emacs (or vi), you don't know either editor very well. And you can probably find people who'd point at me and laugh (and suggest I don't know the editors very well) when I suggest that 10m begins to stretch their capabilities ;-)

    And I think they'd have a good case: at 10m lines, it's not a question of good editors but of good architectures. Good architectures will allow each developer to work on somewhere between 10 to 100 klocs at a time, not worrying about anything outside their slice of code (until they move on to their next project). [But this is wild conjecture, so take it with a bucketload of salt...]

    * pronounced "a(rrrrrhhhhh)ida", like how Stallman pronounces the chi in "LaTeX" and "TeXinfo" or ch in "Bach". I'm not sure about spelling. Search Google tech talks for Bram Molenaar if you really want to know (and hey, it's a nice talk in its own right).

  13. Re:99% of the answers are going to be Eclipse by AlXtreme · · Score: 5, Informative

    The person using GVIM or EMACS has 10,000 lines BECAUSE of GVIM, or EMACS... Flipping files in an IDE is trivial... In an editor like GVIM, or EMACS it is not a trivial. Ok not that hard, but I wonder if tedious as compared to an IDE.

    Bollocks: Ctrl-x b. For us emacs-users, it's second-nature.

    The reason why so many people still prefer vim or emacs is that we can do everything efficiently using the keyboard only. Coding, switching files, compiling, debugging, everything. And we can do that on our own computer, or on one on the other side of the world with merely ssh and the command-line editor of choice.

    You might think that something as simple as switching between files isn't trivial in vim/emacs, but that only shows that you haven't learned either. You can point and click all you want, but programming isn't done with a mouse.

    --
    This sig is intentionally left blank
  14. Re:Quite by ThePhilips · · Score: 5, Informative

    I thought people preferring GNU make did so due purely due to availability or having all their experience with that - but if I read you right, you say you actually have deep experience with both and still prefer the GNU variant?

    I used BSD make ~10 years ago and only very shortly. So I can't really opine on it.

    GNU make is often pain, but with careful planning it's getting the job done. But from my experience I would admit that GNU make has enormous capacity to confuse and freak out people. Lazy evaluation isn't for everybody. I probably should be considered GNU make profi, as I have read through its documentation numerous times already. That further precludes me from commenting on BSD make.

    I personally prefer (and use for all my pet projects) GNU cons. It's simple and perl based. (N.B. There is also SCons which is Python based. At times slower than cons, but has more features and more portable.) Cons is pretty much only known to me solution to retain sanity on large projects: built-in dep checker, built-in installation support, proper dependency handling for static libraries, built-in object caching, support for commands having multiple products, etc. But the main goal of cons (and what I love it for most) is to guarantee consistent builds: unlike make(s), cons uses MD5 to check whether the source have changed. (Though can be reconfigured to use timestamps). Takes time to get used to, but is really worth it.

    --
    All hope abandon ye who enter here.
  15. Re:Quite by delire · · Score: 5, Informative

    Sounds like you've never found an IDE that suits you. I've tried using the vim + gdb + strace type of development and gotten along just fine, but when you find a decent IDE with a good debugger, stack trace, good search facility, debug probe and a ton of other helpful tools it's hard to go back to messing around with lots of separate ones.

    Vim with Exuberant CTags, GNU tools and a little self-education comprises a fully featured IDE.

    The reason so many use and keep using Vim as an IDE, even for large projects is that they can roll together the toolchain - including debugger, profiler, code browser - and builders that suit them, in the way that suit them. Much of the time the people that complain that Vim cannot function as a full featured IDE seem unaware of Vim's shell interface (:!<program> <args> && <program2> <args> [..]) or its 'plugin' architecture, let alone tabs, split modes, keyword completion, folding or numerous other features typical of other IDEs.

    A single terminal hosting Vim is enough to comfortably develop large projects in almost any popular language, covering coding, compiling, debugging and execution. Having worked a lot with the awfully bloated and manifold XCode, the sprawling and mysterious Visual Studio and a little with the rather nice Code::Blocks it's clear that I have no reason to consider changing IDE, for the time being.