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."

23 of 1,055 comments (clear)

  1. Vim by Anonymous Coward · · Score: 4, Insightful

    nuf sed

  2. Emacs by onnellinen · · Score: 5, Insightful

    What else would you need?

    1. Re:Emacs by Carewolf · · Score: 4, Insightful

      vi is not an IDE or emacs competitor. Now vim on the other hand...

  3. Your VC++ irritation by BadAnalogyGuy · · Score: 5, Insightful

    Keep in mind that VC++ is not the Microsoft Platform SDK. These are two completely different, albeit related, products. The SDK had a bug in getline(), but VC can't really do anything about the quality of the installed SDK.

    The best free IDE is the one that you don't have to think about, it just gives you the tools to do your job without getting in your way.

    My in-laws have a Mercedes. On the infrequent opportunities I have to drive it, I am always amazed at how well it supports my driving. It is the little things like rotating the headlights into a turn, actually automatically switching into neutral when the car comes to a stop, and auto-dimming rear view for night driving that make driving it a pleasure.

  4. Visual Studio by Anonymous Coward · · Score: 5, Insightful

    As long as you don't piss yourself in disgust when Microsoft is mentioned (as many here do) - Visual Studio is actually very good.

  5. Re:99% of the answers are going to be Eclipse by Tyris · · Score: 5, Insightful

    If you're writing 10,000 lines in a single file regularly, then your probably need to re-evaluate your coding methods (and you're probably not writing "good stuff"). An IDE does more than just allowing you to fill a file with many lines of text, it keeps your 10,000 lines over multiple files organised... and you know... a huge number of other helpful things (code-completion/etc).

  6. Re:99% of the answers are going to be Eclipse by C3c6e6 · · Score: 5, Insightful

    I don't think the parent's point about handling 10k lines of code has to do with with ability to load these files into memory but rather about managing the complexity of such projects. When a program becomes this big, it becomes harder to keep track of all the names of variables, the argument types of subroutines etc. IDEs like Netbeans or Eclipse have autocompletion functionality that make your life as a developer at lot easier.

    It's possible of course that Emacs or vi provide similar functionality but the main point is that you need some type of IDE when managing a large, complex development project.

  7. Seconding this by Unoriginal_Nickname · · Score: 4, Insightful

    I use Visual Studio exclusively when developing in Windows. My only complaint is the lack of multi-monitor support but that's coming in 2010.

  8. Re:Eclipse and Netbeans by whm · · Score: 4, Insightful

    I am surprised to see you describe Netbeans as bloated when compared to Eclipse. I fought with Eclipse for years before trying out Netbeans, and have been nothing but pleased with it. More than anything, it is the bloat of Eclipse that drove me away! Plugins upon plugins upon plugins, all heaped together in some massive directory. Configuration panels that need a search box!

    My Netbeans experience has been a breath of fresh air.

  9. DEATH TO PROJECTS by Chris+Snook · · Score: 4, Insightful

    I've used several different IDEs, with several different languages, for many different programming tasks, over the past decade. I have encountered exactly one instance where having a "project" be anything more than a collection of files I work on at the same time was actually a good thing. Every other time it has simply been an obstacle to bottom-up design, by forcing me to make a lot of decisions about the structure of my code before most of it had actually been written.

    The one time the project-oriented IDE was a good thing, I was working on a large app with more than a dozen people who never got to all meet at once, with a central authority dictating the general structure of things to make sure we didn't duplicate effort or step on each others' toes. There was AI involved, so having an integrated debugger to figure out why the AI was making particular choices was very useful. Kdevelop served us very well.

    Of course, large development teams are inefficient and prone to communication problems that cause delays and bugs, so they should be avoided whenever possible, just like top-down design. Most of the time, I'm either working on incremental modifications to mature code, where a glorified source browser is sufficient, or writing a small utility from scratch by myself, where I really just need a text editor and a command line. I generally use kscope for the former, and kate for the latter. They get out of the way and let me code.

    Sure, I still use a debugger, but the overwhelming majority of the time it's to analyze dumps from crashes I can't reproduce easily, so integrating it with the IDE offers no benefit. A debugger is no substitute for understanding the code, and I can count on one hand the number of times there have been enough control flow-relevant variables being modified at once to make that something I couldn't work out in my head or on a whiteboard.

    --
    There's no failure quite as dissatisfying as a complete and total solution to the wrong problem.
  10. Emacs actually could qualify by Qbertino · · Score: 5, Insightful

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

    While the handling of Vi or Emacs actually *is* breathtakingly bizar and unwieldy, what you're saying is not correct. If someone actually takes the time to learn to use Emacs and the extensions it offers for developement - which can take a few years - it can be the most powerfull and fast IDE out there. And it opens files upwards of 40 MB (that's Megabyte) in half a minute and then you can navigate around them with no delay at all. That league of performance is the reason I started using it. In terms of performance Emacs is the most powerfull IDE on the planet.

    Then again, I started using Emacs 3 years ago - after briefly considering the purchase of Macsperts new darling child TextMate, basically a modern Emacs rip - and I still can't bear it for longer than 10 minutes - mostly because it so totally doesn't comply with CUAS (Common User Access Standard). Yet then again, Emacs was created when CUAS didn't even exist, so that's no fault on behalf of Emacs.

    Bottom line:
    If you are willing to invest months (!) of time actively learning an IDE, the cli version of Emacs will be with you until the day you die, as it runs well on everything that uses electricity. Up from the most powerfull supercomputer using the most bizar unix variant right down to a 10-year old handheld PC.

    --
    We suffer more in our imagination than in reality. - Seneca
  11. Re:ID what? by vux984 · · Score: 5, Insightful

    What more does anyone want?

    The efficiency that is gained by not having to move your project through 20 different tools manually?

    In other words, the INTEGRATED part of "IDE".

  12. Re:But it's not free by Xest · · Score: 4, Insightful

    Yes, that's what's generally referred to as zealotry and ignorance.

    If someone just wants to build Windows apps then Visual Studio is far and away the quickest and easiest way to do that.

    A lot of people don't care if their software was built by an angel with a halo over his head, if that software isn't very productive they'd rather take the piece written by an average day to day coder.

    Some people have better things to do than bicker about religious software vendor wars and just go for what lets them get the job done best, and sorry, but free software all too often just loses out here, until there's a realiation of that, it aint gonna change but the free software has a strong focus on getting things to work, without much effort ever being put into how it works and improving usability and productivity.

    Asking people to give up usability and productivity for some moral stance is going to be about as easy as getting blood out of stone.

    I support the idea of free software, but the free software movement has to accept these points and act on them as the ideology alone isn't enough to make people switch.

  13. Re:ID what? by peppepz · · Score: 4, Insightful

    I think you’re missing the "I" in "IDE".

  14. Re:Quite by Nutria · · Score: 4, Insightful

    Vi, gdb/dbx and strace should be all any unix/linux coder needs.

    Which means that you don't use vim, make, a sccs, a profiler, ctags, or one of a dozen other tools.

    --
    "I don't know, therefore Aliens" Wafflebox1
  15. Re:ID what? by vux984 · · Score: 4, Insightful

    What's the difference between activating "make" thru some keystrokes in the IDE, and Alt-tabbing to another window and typing "make"?

    Count the keystrokes.

    Its all of 1 keystroke in (for example) Visual Studio to build a project and start debugging it.

    Alt-Tab, make is 5x that amount. And I might do this a hundred or more times in a day.

    But that won't actually work do it, you have to save the file. So that's a couple more keystrokes per round trip to count (and a 100+ opportunities to forget to save the file(s) added to your day)

    And that's on a tiny project with apparently one editor window and one terminal window. Alt-tabbing 7 or 8 times, and saving changes in half a dozen different editor windows before going to the terminal and typing make is a more realistic scenario, and its a lot more keystrokes...

    Plus, the IDE indicated I had a syntax error as I was typing it, and the code completion prevented me from making another one; and when the class I was trying to instantiate didn't get colored as a 'type' by the syntax highlighter that I knew was correct I immediately knew I hadn't included it in this file. All that saved me a round trip or two through the build process.

    And when the app compiled there was a compiler warning; in the IDE a double click on the warning took me right to the source line in the editor, so I could fix it, and rebuild. With bash I get to read the name of the file and linenumber that had the problem, alt-tab to the right editor window, manually jump to the line number, make the fix, save it, and then switch back to the terminal window and run the build script again.

    So... no difference at all between an IDE and bash, except the IDE saves me multiple round trips through make, prevents errors, and saves thousands of keystrokes a day.

    I didn't say the IDE was more "powerful", I just said it was more efficient. And it is.

  16. Re:99% of the answers are going to be Eclipse by dzfoo · · Score: 5, Insightful

    I don't know about emacs, but in vim I can open multiple windows at a time (not to mention multiple buffers!), and switch between them rather effortlessly.

    Look, most of use defending vim and emacs are not saying that it is impossible to use an IDE to be productive; just that it isn't necessary. I certainly believe that each person should work with whatever tools they feel comfortable.

    However, the "IDE kids" keep categorically rejecting the notion that you can be productive in anything but a large, bulky (and yes, maybe even bloated) integrated system. They would do good not to be so narrow-minded.

    I've used both and, although I see value in some IDEs, I personally prefer using the leaner, smaller tools. Sometimes all those windows and automatic wizards and code injectors just get my way.

            -dZ.

    --
    Carol vs. Ghost
    ...Can you save Christmas?
  17. Re:ID what? by Anonymous Coward · · Score: 5, Insightful

    I tried using Visual Studio at work, and was frustrated with the amount of effort it took to create and configure a project

    Maybe you're incompetent.

  18. Re:Quite by Jane_Dozey · · Score: 5, Insightful

    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. I think it's important to be able to use the separate utilities to get a project done, and understand what you're doing with them, but why make life more difficult if you can get something that's integrated and does everything you need in one place?

    Try to stop being so suspicious of people who like to work differently to you. It's likely they know how to use the tools you use but prefer an integrated environment to get their work done. Not everyone using an IDE is using it because they want their hands held. Those that do won't be using their IDE properly anyway.

    --
    Silly rabbit
  19. Re:ID what? by tha_mink · · Score: 5, Insightful

    For newbies and people who cannot touch type, yes. For professional programmers, not so much.

    Spoken by someone, who very obviously, has never taken the time to learn the ins and outs of a good IDE like Eclipse or VS. There's no argument here. If all things are equal, ie you know both methods the same, and IDE is SO much faster to work with that it's not even close.

    --
    You'll have that sometimes...
  20. You keep using that word... by Anonymous Coward · · Score: 4, Insightful

    I do not think it means what you think it means.

    An IDE is an Integrated Development Environment. That means all the necessary development steps for at least coding and compiling and debugging are part of the same interface.

    That doesn't mean swap out to a different terminal session and type "make."

    I've never understood the sad devotion to vi and vim and other obfuscated tools that UNIX elitists have. Sure I can use vi, but why in god's name would anyone want to unless they're forced to work over ssh for all of their development?

    If you're comfortable with it, that's one thing. Recommending somebody else cripple themselves with obsolete technology that completely ignores how people actually work because it should be enough for anybody reeks of that famous Bill Gates quote.

  21. Re:Quite by tenco · · Score: 4, Insightful

    I coded both with Vim and IDEs like Eclipse or KDevelop, but I never found the GNU equivalents for graphical UML modelling and class/objects trees. Or easy ways to integrate gdb with vim like so many IDEs integrate their debugger. When working with gdb I always have to search the right line in the backtrace and then jump to the line in the source code manually. That's a typical repetetive task that gets strenous after a while. Or when editing LaTeX: IDEs like Kile have a list for inserting special symbols for math mode; with vim I always start to search my little LaTeX book or the web because I can't (and won't) remember all special symbols that there are.

  22. Re:ID what? by Bat+Country · · Score: 5, Insightful

    As much as I enjoy using bash for the things it's best at, you are showing the blind spot that irritates me most about open source evangelism and UNIX purism.

    That is the mistaken 100 tools that do the same thing (and more) as one single specialized program are just as good as having a single program custom tailored to your tasks. With that sort of attitude, nobody would ever have written "make" in the first place, let alone all those automated tools to write makefiles.

    For that matter, "bash" would never have been written because "sh" can already do most of the same stuff and commandline tools and cleverly written shell scripts can make up the functionality, right?

    I think by now, if you're reading this at all, you're scowling and looking for something to disagree with.

    The point is that sh and the dozens of powerful commandline GNU tools based on the great old stuff that was written for UNIX are still useful and relevant today, but they're not the only thing that is useful and relevant today. Sometimes you just want a single tool which does the job and gets out of your way with the least amount of effort. That doesn't make you stupid or lazy or childish, or everybody who's using bash right now needs to grow up.

    If you have to spend 5 minutes writing a command with 12 pipes and output redirection through 13 programs which duplicate a functionality I get from a single checkbox in, say, Visual Studio, then you're not working efficiently. And merely because I choose to skip those steps does not mean I have no idea how to do them - I'm a professional UNIX system administrator as my day job.

    The point is that although practice makes perfect, familiarity breeds contempt. When I get home to code on my own projects, I'd prefer not to have to write makefiles, build scripts, hand compile everything, edit out of a single window so I never forget to save anything, and constantly search for line numbers in a lousy no-syntax-highlighting no-code-completing circa 1980 text editor. I did that circa 1980, and I believe in progress.

    --
    The land shall stone them with the bread of his son.