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

171 of 1,055 comments (clear)

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

    nuf sed

    1. Re:Vim by 5865 · · Score: 5, Funny

      too awk ward

    2. Re:Vim by geminidomino · · Score: 5, Funny

      Strangely enough, you're not the first person I've seen who's sed that.

    3. Re:Vim by Anonymous Coward · · Score: 3, Funny

      No - Emacs!
      No - Vim!
      No - Emacs!
      No - Vim!
      No - Emacs!
      No - Vim!

      Welcome to the jihad.

      You'd mod me redundant or flame bait, wouldn't you. But ha! I posted as a coward!


      "...It's better to die on one's feet than live on one's knees," Nately retorted with triumphant and lofty conviction. "I guess you've heard that saying before." "Yes, I certainly have," mused the treacherous old man, smiling again. "But I'm afraid you have it backward. It is better to live on one's feet than die on one's knees. That is the way the saying goes." --
      Catch 22

    4. Re:Vim by bumby · · Score: 4, Funny

      I don't grep it.

      --
      Hey! That's my sig you're smoking there!
    5. Re:Vim by iron-kurton · · Score: 4, Funny

      Stop it guys. Less is more.

      --
      Change is inevitable, except from a vending machine -- Robert C. Gallagher
    6. Re:Vim by WinterSolstice · · Score: 2, Interesting

      I love Vim, and it's probably my favorite editor for anything in the small-medium size (99% of my perl programs, some C, some Java, most of my PHP stuff).

      Eclipse is also fantastic, and picks up for me where Vim leaves off. It's a little too cumbersome for very short tasks, but awesome for anything with includes or lots of subs.

      These plus XAMPP (Linux, and even Windows if you roll that way) make me quite productive on PHP/HTML/CGI stuff.

      Note: I'm biased - roughly 90% of my coding is PL/SQL, SQL, Perl, PHP, and database driven frontends. I don't do anything fun with graphics, so I'm sure that my tools aren't the best for hardcore OpenGL/GLUT type stuff :)

      --
      An operating system should be like a light switch... simple, effective, easy to use, and designed for everyone.
    7. Re:Vim by fm6 · · Score: 3, Funny

      How do I filter out all these perls of wisdom?

    8. Re:Vim by RangerElf · · Score: 2, Funny

      make it stop!

    9. Re:Vim by Karlprof · · Score: 2, Funny

      I gnu you guys would take it too far.

  2. ID what? by Anonymous Coward · · Score: 2, Funny

    I use nano, textwrangler, and jEdit depending on where I am...what's this "IDE" you speak of?!

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

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

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

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

    4. Re:ID what? by nschubach · · Score: 2, Interesting

      I can't believe I have to type this...

      About 4-5 (or more depending on how many windows are open...) keystrokes, less programs open on your task bar, and if you don't code in the same fonts/colorization as your command prompt, the shifting of your eyes to another style of window and/or color scheme. (ie: moving from white to black or vice versa)

      Doesn't sound like much, but if you can hit F9 (or whatever) and have the environment automatically create it...

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    5. 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.

    6. 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...
    7. Re:ID what? by Hucko · · Score: 3, Funny

      come on, we are talking about IDEs and you go bring in operating systems... play fair.

      --
      Semi-automatic amateur armchair Australian philosopher; conjecture ready at any moment...
    8. Re:ID what? by vux984 · · Score: 2, Insightful

      Your comparison is incorrect because that is not how shell people write software. In your example, make would be the last command in the bash history.

      You are constructing ridiculously optimal cases for your argument.

      make might be the last command, it might not be. You'll have to visually check it before you push enter after pushing the up arrow. Maybe its make, maybe it was some other tool, maybe you deleted an object file, or ran grep on some output. Your single alt-tab is also probably really multiple alt-tabs -- most of us professional programmers have more than a single shell and a single text editor window going.

      And if you've got multiple text-editors, you might have multiple ctrl-s's to save them. So sure, it might be ctrl-s, alt-tab, up, enter... or it might be ctrl-s, alt-tab, alt-tab, ctrl-s, up, up, up, enter. And because you need to actually confirm that the correct window and bash command are selected, you can't necessarily do it blind foldeded -- you need that visual feedback loop.

      Reaching all the way for F5 is faster. And hey, Visual Studio is happy to let you remap keys. You want compile to be ctrl-; go for it. It even comes with a pile of emacs short cut schemes; you just have to turn them on.

      That same code completion will also embed spelling mistakes in the API because programmers are to lazy to type out the method names and so wont notice when they contain spelling errors.

      Wow, that's digging awfully deep for an nit to pick at.

      Right, you have to double click on the warning. When I see the warning in the shell, I press alt-tab, C-x b, M-g, enter the line number and I'm right at the line that the compiler complained about

      No, I don't have to double click.

      By default I can press Alt-F6 a couple times to cycle tool windows to the error list, down-arrow to select the warning, and enter to jump to the line in the code. Less than half the keystrokes you need. (assuming 'enter the line number' is at least a 3 to 4 digit number). And if there are 10 text editors going and the one I want is actually closed, its still just 3 or 4 keystrokes, because the IDE selects the correct editor... and even opens the file if its closed.

      And again, I setup additional hotkeys. And I can make hotkeys that are more preciese... instead of 'cycle tool window' I can hotkey - 'select compiler output tool window'. I can macro the whole thing too... and we're not talking 'simple recorded keystroke sequences' we're talking full on context and state aware stuff; branching, conditionals, full on programs unto themselves.

      Really, modern IDE's approach emacs in terms of flexibility, extendability, programmability, etc.

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

      Spare me.

    9. 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.
    10. Re:ID what? by mlk · · Score: 2, Informative

      Eclipse would barely even *run* on this machine, utter rubbish

      Wow, what machine are you using?!

      I use a Netbook (Atom 1.6GHz CPU, 2GB of RAM & shitty GC) and runs Netbeans, Eclipse and Visual Studio happily. Sounds like you are blaming the IDE for a shitty machine.

      --
      Wow, I should not post when knackered.
    11. Re:ID what? by gparent · · Score: 2, Informative

      That same code completion will also embed spelling mistakes in the API because programmers are to lazy to type out the method names and so wont notice when they contain spelling errors. The background compilation process takes resources and will (in all IDE:s I have tested) increase the IDE:s latency. If you type faster than the IDE can process your input, the syntax checking soon becomes more of an annoyance than an advantage.

      That same IDE also has a "Rename" button which will automatically replace every instance of the method name by its correct name, and it will work even if it is used as a variable name in other places in the code. As for the latency, it's a non-issue. There is no latency.

      Right, you have to double click on the warning. When I see the warning in the shell, I press alt-tab, C-x b, M-g, enter the line number and I'm right at the line that the compiler complained about. And I can do that much faster than it takes you to reach the mouse, scroll the IDE:s compiler output window and double-click on the warning.

      Not only is a double-click much faster (and I type fast), but even if it wasn't, Visual Studio also has a shortcut for direct line fetch (And it's a lot shorter than that C-bufferbly instructions manual you just wrote)

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

      It has nothing to do with being a "newbie" or not, that's just emacs elitism shit. There are VS newbies just like there are emacs newbies, and while you don't seem to be an emacs one, it's obvious by your post that you ARE a Visual Studio newbie, and in that case it's no wonder you think it's so slow and clunky when it's in fact faster.

  3. 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 Anonymous Coward · · Score: 2, Informative

      Visual Studio Express only allows one language because you download the environment for the language that you want. For example, Visual C++ Express is just for C++.

      With that said, Visual Studio Express has never taken me 45 minutes to install and it (and the other express editions) install quite quickly. Check your computer for viruses... The full install of Visual Studio (not free, hence not the Express edition) is a quite different story though, and you had better have some spare time while installing it.

    2. Re:Eclipse and Netbeans by Anonymous Coward · · Score: 2, Insightful

      NetBeans is not that bloated.. it is comparable to Eclipse and in some cases better than Eclipse when it comes to Java.

    3. Re:Eclipse and Netbeans by Hognoxious · · Score: 5, Funny

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

      I'm here all week, try the tuna salad!

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    4. 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.

    5. Re:Eclipse and Netbeans by Anonymous Coward · · Score: 3, Funny

      A rotting whale on the beach.

    6. 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 ;) ).

    7. Re:Eclipse and Netbeans by QuantumG · · Score: 2, Funny

      Ya, and compared to Jack Black I'm actually kinda attractive.

      --
      How we know is more important than what we know.
    8. Re:Eclipse and Netbeans by DeathToBill · · Score: 2, Insightful

      Eclipse is brilliant for Java development - there is nothing quite like it I have found.

      When it comes to C++, things are a bit stickier. The infrastructure is there for good code complete and refactoring tools, but they are currently (last I looked, a few months ago) too slow to be really usable and just a bit erratic. Code completion that sometimes throws up the wrong answers is much more frustrating than no code completion at all, and code completion that regularly takes significantly longer than typing the expression manually is worse again.

      As seems to be the rule with all things eclipse: If it almost works in this version, it will work in the next version, and it will be fast the version after that.

      --
      Slashdot - News for Nerds, Stuff that Matters, in ISO-8859-1 Has just realised that beta makes this signature redundant
    9. 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.

    10. 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...
    11. Re:Eclipse and Netbeans by JPeMu · · Score: 2, Informative

      For full-blown development, I use Embarcadero (formerly CodeGear/Inprise/Borland) RadStudio - There's a free version "Turbo C++ Explorer" which is a full version with the caveat that you can't create/install custom components for the Visual Component Library (VCL).

      I've also extensively used Dev-C++ in the past - whilst I do like it, it often crashes, especially when performing Code Completion lookups on large projects. That said, the exception handling is fairly robust and I've never yet lost anything due to it crashing.

      The C/C++ support in NetBeans is excellent - Code Completion works well, and the environment is very comfortable to work with. It also produces Makefiles for you enabling you to build your project easily outside of the IDE. I've never tried the Eclipse plugins for C++ as I find Eclipse too cumbersome to use - it has way too many features, often presented at the "top level" of the UI where the features you actually want are buried in nested menus/dialogs as opposed to pretty much all other IDEs I've used where the features you need are found comfortably to hand. YMMV of course.

      Lately, I've taken to using Code::Blocks - It's by far my new preferred "small and simple" IDE. It's a fairly small footprint, available for both Linux and Window (possibly Mac too?), and most significantly for me doesn't require a Java install. I'm not convinced that it's easy to reliably generate Makefiles from it, but I haven't really tried all that hard. The Code Completion is good, as are the Symbol Browser (Class navigation) and GDB integration, and there's a number of plugins available to perform other tasks including profiling and suchlike.

    12. Re:Eclipse and Netbeans by Nutria · · Score: 3, Informative

      never even bothered to mention that he's looking for an IDE for C++

      Read more thoroughly.

      I work from a Windows machine, use C++, and make

      I could be snide and say that's a symptom common to most Java programmers, but it would be too easy.

      --
      "I don't know, therefore Aliens" Wafflebox1
    13. Re:Eclipse and Netbeans by martin-boundary · · Score: 5, Funny

      I work from a Windows machine, use C++, and make

      I could be snide and say that's a symptom common to most Java programmers, but it would be too easy.

      Excuse me, something's wrong with your boldfaced text. When I mouse over it, nothing happens?

    14. Re:Eclipse and Netbeans by Chief+Camel+Breeder · · Score: 2, Informative

      Loading time depends strongly on the number of NetBeans modules. With the default modules only, my current copy of NetBeans starts about as fast as my Eclipse on the same host. My old copy of NetBeans 5.5, which has loads of might-be-interesting modules, loads very slowly.

    15. Re:Eclipse and Netbeans by SQLGuru · · Score: 2, Insightful

      I think it's worth the time anyway. Look at the original request.....casual programmer. Microsoft has catered to that market for quite a while (one of the reasons that VB was thought of as a "second rate" language at times -- and most enterprise developers I know disparaged "VB coders"). As a casual programmer, who wants to deal with make files and hand coding GUI's in a text editor or any of the stuff mentioned so far? Create a Solution file, Add one or more projects, set up a small local DB if needed, drag and drop the interface, code the events, step through the code in debug, and build the final solution. To me, Visual Studio is the easiest INTEGRATED development environment. Out of the "box", I can do everything I need to build complete apps with no tweaking required. I've used others and always found them missing *something* that I have to track down some plug-in or extra utility to accomplish.

      For the original poster, I'd recommend Visual Studio Express. For anyone else that does serious programming......I still think that Visual Studio is a good development environment, but if you want to be a MS basher then get Eclipse (which I personally don't enjoy using, but it is widely supported and can eventually do everything you need after a lot of tweaking).

    16. Re:Eclipse and Netbeans by mdarksbane · · Score: 2, Insightful

      I'm getting the impression from people I talk to that until very recently, Netbeans really sucked. Since version 6.0 it has sucked significantly less. Not sure if that is enough less suck to be better than eclipse or not - my limited experience with both has indicated that they both are very usable, but have their issues.

    17. Re:Eclipse and Netbeans by Mechanik · · Score: 2, Insightful

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

      This is a common theme. People tried out version 1 or 2 of Eclipse, bitched that it was slow, and never tried it again. Version 2 was... jeeze... probably about 2001 or 2002? I know when I started working on CDT in 2004, version 3.0 had just come out.

      Eclipse has come a long way in the last 5 years, and so have the JVMs. I think you'd find that there is a world of difference now in comparison.

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

    What else would you need?

    1. Re:Emacs by Anonymous Coward · · Score: 5, Funny

      That's somewhat obvious.

    2. Re:Emacs by Bazouel · · Score: 2, Funny

      vi?

      --
      Intelligence shared is intelligence squared.
    3. Re:Emacs by syousef · · Score: 5, Funny

      What else would you need?

      Vallium, Panadol and Coke.

      --
      These posts express my own personal views, not those of my employer
    4. Re:Emacs by Carewolf · · Score: 4, Insightful

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

    5. Re:Emacs by DMUTPeregrine · · Score: 2, Interesting

      There is one, it's called Viper.

      --
      Not a sentence!
    6. Re:Emacs by DriedClexler · · Score: 3, Insightful

      Spare hot-swappable pinky fingers?

      --
      Information theory is life. The rest is just the KL divergence.
  5. 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.

    2. Re:Eclipse by buchner.johannes · · Score: 3, Informative

      Eclipse is pretty awesome for C aswell: Automatic Code formatting, resolving macros (and even respect them in auto-formatting).
      Yeah and what every other does: Ctrl-Click on functions to jump there, project tree, file outline, etc.

      But at the end of the day, you'll still have to think and write the code yourself :-)

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    3. Re:Eclipse by oldhack · · Score: 3, Informative

      Language-sensitive reference search sold me on Eclipse. No more recursive grepping through the source tree. That was years ago, and now all IDEs seem to have that and more in varying capacity.

      --
      Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
  6. 99% of the answers are going to be Eclipse by linzeal · · Score: 3, Insightful

    I like it, just wish I could get CUSP (Lisp plugin) working in Ubuntu. If anyone says Emacs or Vi they are insane and have never done 10k lines of code in a modern environment.

    1. Re:99% of the answers are going to be Eclipse by 1s44c · · Score: 2, Informative

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

      There's the thing, it's not about 'modern environment', pretty displays, or cute graphics. It's about writing good stuff and cuteness is just a distraction from that.

      Both vi and emacs can handle files with 10k lines easily. Chances are they both can handle much longer files before swapping then any IDE.

    2. 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).

    3. Re:99% of the answers are going to be Eclipse by BadAnalogyGuy · · Score: 5, Funny

      If you're writing 10,000 lines in a single file regularly, then your probably need to re-evaluate your coding methods

      Word wrap is deceiving. I only wrote 5 lines of code. They are just very long lines.

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

    5. Re:99% of the answers are going to be Eclipse by 1s44c · · Score: 2, Informative

      Seriously? Swapping because of much larger files?

      Even 50MB of pure source is inconceivable to me (someone might provide a good counterexample), and that's a tiny amount of the memory of any modern system.

      I wasn't suggesting that source code comes in files 10k lines long. linzeal was suggesting it as a reason for IDE's being better than vi or emacs. I was ( trying to ) point out it was a silly argument for exactly the reasons you have said.

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

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

      Heh. If you think that, you have never written (or perhaps grokked) a single line of Common LISP in SLIME. There is nothing quite like developing your code while it's running. And debugging and changing your code. While it's still running. And, well, never really being out of your program.

      IDEs are a quaint imitation. Source analysis? Pfft. How about "active running code analysis" that's tied into what you're currently editing. Integrated debugger? Pfft. You mean you have to stop your program to fix the function you're in the middle of?

      --

      Don't think of it as a flame---it's more like an argument that does 3d6 fire damage

    7. Re:99% of the answers are going to be Eclipse by debatem1 · · Score: 2, Interesting

      I like it, just wish I could get CUSP (Lisp plugin) working in Ubuntu. If anyone says Emacs or Vi they are insane and have never done 10k lines of code in a modern environment.

      Let me start this out by saying that I use Eclipse daily, and that I consider that a modern environment.

      Let me qualify that statement by saying that if our ultimate ancestors had known that the eventual development of Eclipse was the price of progress, they would have stayed in the trees.

      I may be insane but 10k is nothing compared to some of the projects I've worked on using vim, and while I can't claim to be 100% satisfied, at least I don't feel like it's actively fighting me.

    8. Re:99% of the answers are going to be Eclipse by Haeleth · · Score: 3, Informative

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

      I've worked on programs much larger than 10kloc in both Emacs and Netbeaans. I gave up on Netbeans and went back to Emacs because I was just so much more productive there -- even when working in (yuck) Java.

      It's pretty modern these days, too. It has intelligent autocomplete, it has a class browser, it has jump-to-definition, it will tell me the type of the variable under the cursor, it does code folding, it does source-level debugging ... in fact, pretty much the only thing present in "modern" IDEs that Emacs doesn't have is a point-and-drool GUI designer, and that's fine by me because I don't design GUIs.

      And it is far, far better at actually editing text than any IDE editor I've ever seen.

      Also, it reads mail. :p

    9. 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).

    10. Re:99% of the answers are going to be Eclipse by fractoid · · Score: 3, Funny

      Perl is not an appropriate language for monolithic applications.

      --
      Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
    11. Re:99% of the answers are going to be Eclipse by Tyris · · Score: 2, Insightful

      From what I've seen IDE's help people write code faster, but they don't help people write better code. Maybe I should try out this Eclipse thing just to see what all the fuss is about.

      Certainly true. I read the parent post as implying a project where 10,000 lines of code is likely to exist. In such a case I struggle to imagine effectively using something like vi or emacs (not that I use them actively) when compared to what is offered by a good IDE.

    12. Re:99% of the answers are going to be Eclipse by fractoid · · Score: 2, Insightful

      When a program becomes this big, it becomes harder to keep track of all the names of variables, the argument types of subroutines etc.

      If you're talking about a project, 10,000 lines is not big. A single _file_ of 10k lines is big, but why for the love of god would you do that?

      Clearly thought out code structure will keep your project pretty easy to read and work with up to maybe 20-30k lines (more if you're smarter than me, less if you're working on unfamiliar code). After that, an IDE becomes increasingly helpful because it saves you time searching for variable definitions, members of structs/classes etc. The application I'm working on (accounting software yay) at my current job has probably ~2mil lines of code, and is small in comparison with the codebase at my old job (an MMO game client).

      --
      Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
    13. Re:99% of the answers are going to be Eclipse by SerpentMage · · Score: 2, Insightful

      Let me make a bet here...

      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.

      HENCE, they have 10,000 lines in a source code file because of the environment they are using.

      --

      "You can't make a race horse of a pig"
      "No," said Samuel, "but you can make very fast pig"
    14. Re:99% of the answers are going to be Eclipse by shadowknot · · Score: 2, Insightful

      no you do not IDE to do that or to put it differently - Emacs is an IDE - it allows to edit, compile and in some cases debug code of (almost) arbitrary size and structure. One can even consider vi as a part of IDE with command line compilers and other tools. You may not consider such environment as integrated but that is your perspective - others have different one.

      Absolutely right, the notion that "integrated" means a single program or window with a lot of widgets and toolbars is a pretty narrow view of what an integrated environment is. I could make a similar argument that because I use GNOME Terminal which has multiple tabs it is an IDE (which for me it is). I accept that some people are more effective and comfortable working in an IDE such as Eclipse or Netbeans but I am more comfortable in a terminal that gives me access to text editors, compilers etc. There is no _one_ solution for all that is _better_ it is down to personal preference and working style. If you don't feel comfortable in an "IDE" or in a text editor with shell access then you are not going to be productive.

    15. 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
    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:99% of the answers are going to be Eclipse by nschubach · · Score: 2

      A single _file_ of 10k lines is big, but why for the love of god would you do that?

      Because headers go at the top of the code...not in another file that's why they call them headers! /sarcasm

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    18. Re:99% of the answers are going to be Eclipse by BerntB · · Score: 2, Insightful

      I have it easier to keep multiple code windows open in Emacs, since I don't lose lots of area to IDE buttons etc. (I generally run two A4 of Emacs and one A4 Shell window. If I do development, I'd really need another screen for browsers and other windows).

      --
      Karma: Excellent (My Karma? I wish...:-( )
    19. Re:99% of the answers are going to be Eclipse by Coryoth · · Score: 2, Insightful

      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.

      To be somewhat fair to the OP, I believe his point was more that if you try a modern IDE for a decent amount of time (say 10k worth of code) instead of just dismissing it after opening it and fiddling for a bit, you'll come to appreciate the advantages it offers. Whether that's actually the case is debatable, but the thrust of his point -- that people often dismiss an editor/IDE without actually taking the time to fully appreciate what it can do -- is, indeed, exactly the same as yours. I've used both Emacs and Eclipse extensively, and they both have their pros and cons, not all of which are obvious without actually making good use of them.

    20. Re:99% of the answers are going to be Eclipse by dzfoo · · Score: 4, Funny

      Wow! what a smart comment. I'm impressed. Did you write that yourself, or was there a wizard for it?

              -dZ.

      --
      Carol vs. Ghost
      ...Can you save Christmas?
    21. Re:99% of the answers are going to be Eclipse by BitZtream · · Score: 3, Insightful

      In modern computing, its not acceptable that you have to go out of your way to figure out how to do something that trivial.

      Its not the 60s any more, the last 50 years has been spent figuring out ways to make interfaces more user friendly. If you're 'IDE', be it vim or emacs can't be bothered to make itself a little more user friendly then why should users bother to use it?

      Not saying that you should stop using it or anything, if it works for you, more power to you. You should however stop suggesting it as though it were an acceptable solution. Its not. 20 years ago sure, today, its just not, especially to someone who is ASKING ABOUT IDEs. If they are asking about IDEs they are not experienced enough to start using user-unfriendly IDEs that require a reference manual until you memorize 7 or 8 hundred keyboard shortcuts to get the job done.

      , but programming isn't done with a mouse.

      And building a house isn't done with a screwdriver alone, but you certainly use a screwdriver when building a house, and a mouse when programming on anything that matters in a slashdot discussion.

      If you like emacs or vim, good for you, glad it works. Just stop being such a retarded short sighted, my way is the only way, douche bag and stop pushing it on the rest of the world.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    22. Re:99% of the answers are going to be Eclipse by glasserc · · Score: 2, Insightful

      In modern computing, its not acceptable that you have to go out of your way to figure out how to do something that trivial.

      Completely false. In modern computing, specialized, learner-unfriendly interfaces designed for experts to get the job done fast are completely acceptable. Whether you feel emacs is this or not is probably a matter of personal preference. But I've certainly been overwhelmed by Eclipse's dialogs-within-dialogs, so I disagree that it's as user-friendly as you say.

      Ethan

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

    1. Re:Your VC++ irritation by dominious · · Score: 2, Funny

      wait a minute! This is a car analogy! How is a bad analogy, guy??

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

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

    1. Re:wxDev-C++ extended that project by AmiMoJo · · Score: 3, Insightful

      wx is about the best free GUI toolkit available for Windows. They all suck to some degree, but wx less so than the others.

      I'm not sure why the OP is bothered by Dev-C++ not being updated. If it works, why not carry on using it?

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
  9. 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.

    1. Re:Visual Studio by dzfoo · · Score: 2, Insightful

      >> There just isn't anything as powerful in a single cohesive package.

      Wow! That's a pretty bold statement. You should go out and look around more. Seriously!

      If you want to take my words, as someone who has actually worked with various different packages (including your beloved VisualStudio), I find VisualStudio slow, unstable, and bloated, and too obtrusive for real work. Let's see, the Delphi IDE, to me at least, seems more powerful and versatile (and it even does C++ and C#, too!). And how about C++Builder from Borland? Even Eclipse seems to be at least comparable with VisualStudio (even to the slow and bloat level). And if you concede that Delphi is at least as good as VisualStudio, then you must say the same for Lazarus, which is an open source clone of it intended for FreePascal. And this is not even getting into using plain-old developer's text editors with plug-in support (such as EditPlus), which can easily integrate with external tools.

      VisualC++ is certainly not evil, but--and I say this from experience--it is not the only integrated development environment, nor even the best one, for C++ out there. It is just the only one most Windows developers know about.

      And let me just end by saying, as I always do, to each his own-- just don't go claiming that your favorite pet system is the best in breed just because you like it.

              -dZ.

      --
      Carol vs. Ghost
      ...Can you save Christmas?
  10. Re:VI by BadAnalogyGuy · · Score: 5, Funny

    I'm sure lots of people are happy with emacs.

    I'm sure lots of people are happy with American cars too, but we have objective standards for a reason.

  11. What I use by JazzXP · · Score: 3, Interesting

    For Java & PHP development, Eclipse. Does everything I need it to. For Windows C++ development, VS2008. Work in a MS shop, so not much choice here. Mac Objective-C development, Xcode. Not much choice with this due to nib's being so intergrated with the code.

  12. Turbodelphi by andersa · · Score: 2, Informative

    Free edition of Delphi.

    1. Re:Turbodelphi by acheron12 · · Score: 2, Interesting

      Don't forget the open source Lazarus

      Or actually, maybe do forget it. Object Pascal and C++ have virtually identical capabilities with slightly different syntax. But C++ is so widely used that there are always more available libraries, IDEs and sources of support. And I say this as someone who used to program in Pascal myself. If you want to go for an obscure language, at least make it something interesting like Dylan...

      --
      there is no god but truth, and reality is its prophet
  13. 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.
  14. 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.
    1. Re:Visual Studio Express is quite good by wannabgeek · · Score: 2, Informative

      a very fast find-in-files: this may seem unsexy, but it's the number one thing i use VS for. it's so much easier to search for a symbol than navigate a source hierarchy. VS must be building indexes or something, because it takes just a second or so to grep a largish codebase for a symbol while actual grep takes maybe ten or fifteen.

      ever heard of a tool called "cscope"? It integrates nicely with vim and does the same thing you're talking about. And more.

      memory breakpoints: being able to break when a particular byte of memory is changed is pretty cool. i'm not sure if VS express has it. there is a hefty performance overhead tho, so you really only want to use it when smaller guns haven't panned out, if you'll pardon the mixed metaphors.

      gdb (the one debugger I know) does it too. One of my biggest pains with using VS is the lack of power (in other words, scripting support) for the editor and the debugger. I don't think the default editor of VS supports regex substitution even today, which is one of the most basic features of an editor. Similarly, it's very easy to fire gdb up and let a program run and collect some stuff while the program runs (breakpoints, and commands). To do it in VS editor is a pain, AFAIK.
      http://tech.slashdot.org/story/09/05/26/2249208/What-Free-IDE-Do-You-Use?art_pos=1#

      --
      I'm much more funny, interesting and insightful than the moderators think
    2. Re:Visual Studio Express is quite good by XDirtypunkX · · Score: 3, Informative

      Visual Studio has supported regex substitution for quite a while, including in Express. Under the Find and Replace dialog, expand the "Find Options" and tick "Use" (with regular expressions selected in the combo box). It works in a similar way for Replace in Files.

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

  16. Xcode with Ada plug-in by iliketrash · · Score: 2, Informative

    I use Apple's Xcode with the Ada plug-in from www.macada.org

  17. 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
  18. Eclipse and Notepad++ by Jartan · · Score: 3, Informative

    Notepad++ isn't really an IDE but it's probably the best c++ editor I've found for Windows. If you want a full blown IDE then Eclipse is probably your best bet. It's written in Java but with a little fiddling it's not too ugly. As for Dev-C++ it's probably lost support because it's written in Delphi of all things.

  19. 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++ :)

  20. What about Microsoft free visual c++ express editi by zymano · · Score: 2, Informative

    Express edition. Free of charge.

  21. getline and IDE by shird · · Score: 2, Interesting

    The error with getline is a bug with the library/compiler etc. This is separate from the IDE. It's not very difficult to modify the compiler/C runtime etc VC uses - its just an editor which calls out to other executables to do compilation.

    In any case - I'm sure that problem has been fixed with Visual Studio express - Microsoft actually do IDEs and compilers very well, especially with their last few iterations. 6 is pretty old.

    Personally I use vim on unix. But when doing GUI work on windows, Visual Studio is hard to beat.

    --
    I.O.U One Sig.
  22. Lazarus by dvh.tosomja · · Score: 2, Interesting

    Thank you

  23. Either emacsclient or ed by jonaskoelker · · Score: 2, Interesting

    Say you're working with git (but it may be the same with other VCSs, not sure).

    Say you run git-commit -a (with no -m) in a M-x shell. Then git wants to spawn your $EDITOR so that you can edit your commit message (and see what you're committing).

    In that case, you'd want either emacsclient, which tells emacs to open up a new window for the to-be-edited file (and when you say you're done, emacsclient terminates).

    Or, you know that the thing that call $EDITOR from M-x shell require very light-weight editing, so you want a small editor which doesn't use curses.

    Yes, I'm seriously suggesting to learn how to use ed. If you know sed and/or vi, it's as simple as spending five minutes with the man page, plus having the man page open for reference the first few times.

    It's also a powerful tool for programmatic text manipulation, sitting in a niche where sed is not powerful enough and perl/sh/... is too general to do what you want easily. [it's kinda' like sed but with the whole file in the pattern space and with a few more powerful transformations.]

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

    2. Re:Either emacsclient or ed by jrumney · · Score: 2, Insightful

      Say you run git-commit -a (with no -m) in a M-x shell.

      Why would you do that from a shell buffer instead of using Emacs built in version control operations?

    3. Re:Either emacsclient or ed by PeterBrett · · Score: 2, Informative

      Say you're working with git (but it may be the same with other VCSs, not sure).

      Say you run git-commit -a (with no -m) in a M-x shell. Then git wants to spawn your $EDITOR so that you can edit your commit message (and see what you're committing).

      In that case, you'd want either emacsclient, which tells emacs to open up a new window for the to-be-edited file (and when you say you're done, emacsclient terminates).

      Or you could save yourself the effort and just use git.el, which integrates git into Emacs.

    4. Re:Either emacsclient or ed by geminidomino · · Score: 4, Funny

      Because I lost two of the fingers on my third hand in a freak threshing accident, you insensitive clod.

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

  25. I use a magnetized pin by floydman · · Score: 2

    and I keep them here:
    http://www.marthastewart.com/goodthings/magnetized-pin-box

    It looks cute, girls get interested in the field.

    --
    The lunatic is in my head
    1. Re:I use a magnetized pin by shockwaverider · · Score: 4, Funny

      A magnetized needle and a steady hand? Nah - Real programmers use ....

      http://imgs.xkcd.com/comics/real_programmers.png

      --
      Remember kids! Guns don't kill people - Americans kill people.
  26. 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.
  27. 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.

  28. Re:But it's not free by stevenvi · · Score: 2, Informative

    Review their web site. Microsoft Visual Studio Express is free.

  29. U++ TheIDE by luzr · · Score: 2, Informative
    http://www.ultimatepp.org/

    Well, you would probably get more than just IDE with that, as TheIDE is quite tightly coupled with the U++ library (http://www.ultimatepp.org/L$www$uppweb$idess$en-us.html_3.png, http://www.ultimatepp.org/L$www$uppweb$idess$en-us.html_4.png), anyway, ide-wise:

    - it has cool highlighting, including highlighting of C++ blocks and coloring parenthesis (see http://www.ultimatepp.org/L$www$uppweb$idess$en-us.html_2.png)

    - its C++ code-parsing abilitites (for purposes of code-navigation and 'intelisense') are at the moment said to be better than CDT's or at par with Visual Studio, although the problem is that it parses only the project files (not 'external' headers) http://www.ultimatepp.org/L$www$uppweb$idess$en-us.html_5.png.

    - if you are rebuilding large projects often, it has very fast build process. It uses two tricks, one widely known (using multiple CPU cores to launch compiler instances), one special (combining files to avoid header reparsing). In practice, on quadcore CPU, it can build up to 16 times faster than plain make.

    - works in Win32 and X11.

    But there is also a drawback for many users:

    - as it adds a strong crossplatform modularity layer, it gets a lot of suffering getting used to it. Simply do not expect your usual Visual Studio copy...

  30. Codelite by Anonymous Coward · · Score: 2, Informative

    Why is it nobody seems to know about the excellent CodeLite? Described as "a powerful open-source, cross platform IDE for the C/C++ programming languages (build and tested on Windows XP SP3, (K)Ubuntu 8.04, and Mac OSX 10.5.2)" see http://www.codelite.org/

  31. Not Free, but... CodeWarrior by MaineCoon · · Score: 4, Interesting

    Not free, and also no longer sold for Windows, but it's my favorite IDE of all time. I still use CW9 on Windows for anything that doesn't require absolute latest C++ compiler/libs (mainly, my MUD, which I do my dev on Windows, but run it on a Linux server).

    CodeWarrior has a feature no other current Windows-based IDE has - independent free floating edit windows without being locked into an MDI container with grey backdrop. I'd gladly pay a few hundred dollars for a modern, actively supported editor that had such a feature (I hear SlickEdit has been planning it, but they have yet to deliver).

    --
    Hunt your preferred prey at Aliens vs Predator MUD. Join the war at avpmud.com port 4000
    1. Re:Not Free, but... CodeWarrior by ThrowAwaySociety · · Score: 2, Insightful

      CodeWarrior has a feature no other current Windows-based IDE has - independent free floating edit windows without being locked into an MDI container with grey backdrop. I'd gladly pay a few hundred dollars for a modern, actively supported editor that had such a feature (I hear SlickEdit has been planning it, but they have yet to deliver).

      Mod parent up. Why is it that, two decades after GUIs became the norm for spreadsheets and word processors, programmers still have to make do with tabbed editors and split-screens? (This is not to say that tabs and split views aren't important.) Am I the only developer who'd like to use his second monitor for something other than Slashdot?

  32. Qt Creator all the way! (if you code in C++) by Kensai7 · · Score: 3, Interesting

    I'm essentially a beginner in C++ programming and at least for that language I found extremely easy and straightforward doing projects on Qt Software's free IDE. Even if you don't implement their toolkit in your projects, you can still have a stable and unbloated environment to do some serious coding.

    There is only one caveat, afaik, with Qt Creator. It's still in version 1.1.1... this means it probably misses some features (or has some not so obvious bugs) which shall probably be covered in later major releases. Nevertheless, if you bind Qt's capabilitities (ie, signals and slots) to your C++ projects there is no better IDE to unleash your productivity!

    You can have more information and download your free copy here.

    --
    "Sum Ergo Cogito"
  33. VI and Emacs? In this day and age? by syousef · · Score: 2, Informative

    Vi is one editor every professional should know the basics of because it's very feature complete and versatile. Emacs is more specialized but I'm not knocking it. However if you're developing today, you need to move away from modal editors that have awful help systems and no menus. They simply don't encourage learning and get in your way if you're away from the editor for too long and have to try to remember obscure commands (or look them up!). Note they are EDITORS. An IDE does much much more. You should also be using IDEs and editors that support multiple languages. Gone are the days when a computer professional could afford to know just one or two languages. Who the hell wants to learn the quirks of different editors for each one?

    --
    These posts express my own personal views, not those of my employer
    1. Re:VI and Emacs? In this day and age? by backwardMechanic · · Score: 3, Interesting

      They simply don't encourage learning and get in your way

      That's exactly why I just gave up on Eclipse, and decided to finally learn to use vi well. Modern IDE's try to do far too much. The last straw with Eclipse was when I wanted (as an inexperienced new user) to write a very short C++ file to test an idea. Eclipse forced me to jump through hoops, defining a project and suchlike. Many of my files are not a project, they're a short self-contained piece of code to do something specific. For coding, I want an editor with syntax highlighting, and a command line. I'm not averse to the right tool - I'm also a happy Qt-designer user, but I'm writing the code with vim.

    2. Re:VI and Emacs? In this day and age? by coaxial · · Score: 2, Interesting

      An IDE does much much more.

      That's why you have a second xterm open with `make |& less` constantly queued up on the command line. Seriously. There's nothing an IDE does that you can't do faster and easier. Learn to write a makefile and an editor and your skills are portable. Learn an IDE and you're screwed as soon as you change jobs and they say, "Oh. We're a foo shop."

      You should also be using IDEs and editors that support multiple languages.

      The vast majority of IDEs are stuck for exactly language, or perhaps two. You want something that handles everything. Use an editor. If you use a grownup editor like vi or emacs, you've got syntactic markup for pretty much everything, along with language specific folding. IDEs simply don't do that. Not that they can't, but they don't. It's because the IDE designers say, "Wouldn't it be cool if we built an IDE for foo?", and the IDE is biased towards that language and workflow.

      Gone are the days when a computer professional could afford to know just one or two languages. Who the hell wants to learn the quirks of different editors for each one?

      So we should learn the quirks of behemoth IDEs instead?

    3. Re:VI and Emacs? In this day and age? by Mornedhel · · Score: 2, Informative

      Vi is one editor every professional should know the basics of because it's very feature complete and versatile. Emacs is more specialized but I'm not knocking it.

      Not true. You've obviously never used Emacs. Vi(m) users usually make fun of Emacs because it does everything except coffee. Seriously, it's the standard troll vs. Emacs.

      However if you're developing today, you need to move away from modal editors that have awful help systems and no menus.

      Well it just happens that Emacs is not a modal editor. Also, it has a complete help system, and whaddayaknow, it has menus.

      They simply don't encourage learning and get in your way if you're away from the editor for too long and have to try to remember obscure commands (or look them up!).

      Now you have a (semi-) point. At least you'd have one if common commands weren't accessible through the menu.

      Note they are EDITORS. An IDE does much much more. You should also be using IDEs and editors that support multiple languages. Gone are the days when a computer professional could afford to know just one or two languages. Who the hell wants to learn the quirks of different editors for each one?

      I'm sorry, what ? Neither Emacs nor vi are single-language (I use Emacs for C++, Java, Perl and a bit of Erlang, and it has support -- syntax highlighting, compiling/debugging, indentation... -- for about every language you've heard of and many you've never encountered). Also, Emacs is not an editor. It's got every feature an IDE has, and more.

      --
      This /.-related sig is a stub. You can help Mornedhel by expanding it.
    4. Re:VI and Emacs? In this day and age? by petrus4 · · Score: 2, Informative

      If you want to be able to move around 50+ line files rapidly, Vim can be invaluable. It can also have syntax highlighting support, which can be very useful for reducing bugs.

      The only other two things that IDEs do that I can think of are template/skeleton generation and app launching. Vim is scriptable, and modes have likely already been written to launch/manipulate just about every app you can think of, from tar to cvs to even things like IRC and email. There's even a file management/ftp browsing system for Vim.

      If you need a template generator, writing one yourself shouldn't be too difficult; you can also do it in anything from Perl to PHP to shell, as well.

      Vim is one program which a lot of people tend to knock before they've tried it because, when you don't know anything about it, it can seem extremely intimidating, incomprehensible, primitive, and deeply strange. I did it myself.

      However, once you start using it, you'll discover that while it does take some getting used to, it is actually none of those things. It is the product of a very large amount of programming experience, and a maintainer and users who are programmers themselves, so they know exactly what a programmer's editor should contain.

  34. 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.
  35. I like simple. by Anonymous Coward · · Score: 2, Interesting

    Personally I am happiest when not stuck in some program pretending to do everything, even if it would succeed admirably.

    So for me, it's screen with at least one nvi session and one shell for compiling -- but usually many more, and lots of open manpages for reference. Doesn't even matter much what shell, as long as it supports arrow-up-history and tab-completion. Of course nowadays I have to have a web browser around, sadly very little way around that, so it's X and that and lots of XTerms... many of which sport screen again for various purposes, like irc.

    The point? The magic isn't in the software, though it can help a bit. If you're used to the command line then at some point you might realise that speeding up your workflow is as simple as #!/bin/sh. Or any other language you might choose for the task; awk, sed, C, C++, perl, what-have-you.

  36. 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
    1. Re:Emacs actually could qualify by hazydave · · Score: 2

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

      Anyone who thinks 10K lines is a big project hasn't the experience to judge Emacs vs. IDE. I've been using Emacs since 1979... started out on CMU's version of RMS/MIT's TECO Emacs. The thing about Emacs is that it's lead in virtually every kind of integration imaginable. Before any good thing shows up in anyone IDE, it's been proven useful in Emacs for several years already. And none of the drek survives... including the crazy notion that I could need 2GB of RAM just to run an editor and compiler.

      Hell, in '88 we were running Emacs and compilers in 1MB of RAM... and we liked it! A year later, I was editing in Emacs on SVr4.1 in 4MB of RAM... and liked that one too.

      As for large projects, back in the 90s, I was working on a several-hundred-thousand-line compiler+database project (a three year thing, all my code) that started out in an IDE (ok, they have improved some since those days), but became workable in the IDE. Fortunately, there was an Emacs available (under OS/2 at the time). And that use of Emacs is precisely why I retain fair amnounts of my sanity to this day (and the IDE issues might help explain why I went back to primarily hardware design in my next company).

      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.

      Well, there you go... you certainly can fault those weenies at IBM for ignoring the established standard (CUAS came at least 10 years after Emacs) when they set forth inflicting their inferior ideas on the world of computing as we know it. But what do you expect from the brainaics that brought us the Microchannel Bus, the "fixed" drive, the freakishly large and pointless CAPS-LOCK key (the DEC keyboard layout was far superior) and CPU buses with backwards bit order and negative addresses (A2, A1, A0, A-1, ...), etc.

      --
      -Dave Haynie
    2. Re:Emacs actually could qualify by glasserc · · Score: 2, Insightful

      Have you heard about CUA mode?

      Ethan

  37. Geany! by R3dL3d · · Score: 4, Interesting

    Geany http://www.geany.org/ is small, fast, and has the basic features I need. It has syntax highlighting for everything from Assembly to Latex, Java, C, C++, HTML, you name it. And (very important) it stays the hell out of my face and just lets me do the job. I love it.

  38. Qt Creator by Capt.+Beyond · · Score: 2, Insightful

    I use Qt Creator, xemacs and vim. On all platforms.

    --
    -- "Perceptions create reality. By changing your perceptions you change your reality."
  39. Code::Blocks by apharmdq · · Score: 3, Informative

    I used DevC++ for quite some time until I found out that it was out of date as well. Since then I've used Code::Blocks, and I find it to be quite an improvement. Since it's cross platform, working on different operating systems is pretty easy too.

    KDevelop is my alternative choice. For all intents and purposes, KDevelop is my favorite IDE, but since it's only on Linux at the moment, Code::Blocks is my best choice for now. (Still, KDevelop is quite powerful, and I'm eagerly awaiting the cross-platform release.)

    Eclipse is also a great choice, though I haven't used it nearly as much. I feel it's a little more focused on Java development, but many /.ers swear by it, so it's probably worth a try.

    And on a final note, I've been using Vim a lot more often lately, and with the IDE plugins detailed in the Ars Technica article, I may make that my IDE of choice in the near future. (For others, there's Emacs. Both are great, take your pick.)

  40. Re:KDevelop by macson_g · · Score: 2, Informative

    I find KDevelop to be excellent IDE for C/C++ development. IT has few rough edges, but tons of features makes it simply the best choice. Integrated debugger, valgrind and cachegrind support, integrated documentation viewer, doxygen generator, ctags, version control etc.

    Most professional Linux developer I know are using KDevelop. Others are using Vim and Emacs. I have Emacs guy here who - when exposed to some nasty KDevelop's feature - always claims that "Emacs supports it too, I only have to find and install proper extension". He usually fails or forgets to do so.

  41. None. by coaxial · · Score: 2, Insightful

    Seriously. Why bother? IDEs are so hard to simply so hard to setup. Whenever I try to use one, I always end up fighting with trying to add nonstandard libraries, or hooking it into the code repository. It's horrible. Seriously, a three line makefile is all you need. It is so much easier just being able to say, "You! Compile this, with this option." It's 50 thousand clicks and it still doesn't work.

    God, IDEs suck.

  42. This will probably cost me some karma... by sardaukar_siet · · Score: 3, Informative

    ... but Visual Studio Express is actually quite good. I'm a Linux guy, and I use Komodo Edit (I do mostly "dynamic language" development now) and before that I used Eclipse for C/C++ and Java, and although Eclipse gets a lot of things right, it can't beat Visual Studio's breadth of features and simplified work-flow. Of all the things MS has done over the years, VS is hands down (IMHO) the best. They don't give it away with all the features so as to not kill the 3rd party market, but it's clear nothing out there in Win[32/64] land comes close (especially for C++ and C#).

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

  44. 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
  45. notepad.. by davygrvy · · Score: 2, Funny

    and nmake. Who needs fancy syntax coloring. Step debuggers are for weenies who can't manage to use printf()

    --
    -=[ place .sig here ]=-
  46. Re:KDevelop by sqldr · · Score: 2, Informative

    Tip of the week: Even if you're not writing QT code, the integrated qmake builder works WAY better than the autoconf stuff.. then again, anything works better than autoconf ;-)

    --
    I wrote my first program at the age of six, and I still can't work out how this website works.
  47. Re:Quite by ThePhilips · · Score: 2, Insightful

    Frankly, I would put /bin/bash as first on the list.

    My toolchain (ranked by degree of my dependency on the tool) is: bash, vim, exuberant ctags, GNU make, GNU diff, GNU grep, GNU find, GCC, man, git, perl, gdb, objdump.

    The chain covers about 95% of projects I do. (To GNU moniker: I'm no GNU nazi, but just to highlight the fact that - flame me all you want - I find the BSD variants of the tools mostly useless in everyday use.)

    VIM is powerful indeed. But one should never forget that sizable chunk of its utilities depend on good shell and system file/text tools. Otherwise you probably want to pick Emacs instead.

    P.S. For Qt/KDE development one also has to include qmake and FireFox (on-line documentation browser).

    --
    All hope abandon ye who enter here.
  48. Re:Quite by malcomreynolds · · Score: 4, Funny

    # cat > program.c
    # !cc
    What else do you need?

  49. RTFA by DaveDerrick · · Score: 2

    So many comments about VI, Emacs, Ubuntu etc. Did anyone notice the original post said he works on WINDOWS ?

  50. Re:oOps by chthon · · Score: 3, Informative

    Emacs can be compiled without problems under Windows, but is then strictly Windows, with \ for paths and \r\n for line endings.

    You can also compile Emacs under Cygwin, but then it is strictly POSIX and needs a X server to run, otherwise it runs in -nw mode.

    Xemacs, however, can be compiled under Cygwin, but recognises that it is under Windows and runs all graphics natively, obviating the need for an X server. That is why I currently only use XEmacs on my job, it works POSIX with Cygwin, but runs natively under Windows.

  51. 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.
  52. 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
  53. Re:Quite by Antique+Geekmeister · · Score: 2, Interesting

    I like and use muck of your toolchain. However, I like Emacs for helping keep my code layout legible, its support of displaying closing parentheses, and its support for running shell commands in one window and viewing the code in the other. I also find the Emacs shell helpful for recording all the input and output of a test sequence, rather than having it scroll entirely off the normal text display, and occasionally I find handy that it displays passwords as I type them so I can remember what the heck I did at the login ptompts of a test setup.

    gcc is my friend. It actually works, follows standards, and can support writing portable code in ways that most commercial compilers have never even thought about trying.

    autoconf is handy, but has proven problematic for compatibility reasons as different OS's update different components of that toolchain at different times.

    And, oh dear, yes, git. I've worked extensively with many open source and some closed source source control systems, and the darned thing Just Works(tm). Being able to branch and record and merge changes from your branches, locally, and then merge them to the primary upstream repository gracefully, and actually caring more than a fig about security, is what Subversion _should_ have done. I'm delighted to have recently added it to my toolkit.

  54. Lazarus by cpt_koloth · · Score: 2, Interesting

    Lazarus is excellent for everyone familiar with Pascal or Delphi... Plus it can compile windows CE apps...

  55. Re:Quite by FictionPimp · · Score: 4, Interesting

    I was a vim guy for a long time. I used it for everything from scripting, to full on applications, and even website development.

    Then I bought my mac and discovered XCode. It blew my mind. If I ever go back to linux I will be finding myself a good IDE.

    Speaking of which XCode + Interface Builder + applescript makes some of the most powerful graphical applications that any idiot could write. It's really quite amazing how easy stupid it can be. Of course real apps on a mac require ruby, python, or Obj-C.

  56. Re:But it's not free by jellomizer · · Score: 2, Interesting

    I really like Notepad++ I really wish there was a Linux port for it. But it does run ok in Wine though.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  57. Re:Quite by PeeShootr · · Score: 2, Informative

    Yes! And when you build a house, you should only use hand tools!! A real car has no electronics either!!! Give me a break. You should use the right tools for the job. If someone wants to use an IDE becuase it has code completion, built in docs, etc. So be it!!

  58. Re:Quite by vikstar · · Score: 2, Insightful

    Do you also use a second terminal for typing in the "make" command? What about other terminals for viewing documentation or file structure? Vim is only a small part of the entire interactive development environment that you actually use. I code mostly in Java and use Netbeans. It contains not only the middle bit for actually writing the code, but I also get windows for debugging and viewing the directory structure. Although this could mostly be achieved by a few terminal windows and Vim, I prefer to use Netbeans because I get nice context boxes showing me the structure of a particular method/function with a little documentation on it.

    --
    The question of whether a computer can think is no more interesting than the question of whether a submarine can swim.
  59. Re:Quite by ThePhilips · · Score: 2, Interesting

    This is plain discrimination.

    Few people can - and want - to go into details of how tool-chain really works. I too prefer to view some things as black box with few buttons. By virtue of being system developer, I often have too look into the details of how tool chain really works. And I like to dissect it til understand it completely. But I am rather an exception than a norm.

    I know many good developer who know about e.g. make only how to invoke it - "make all". Not more. Rest they do in e.g. Emacs. For Windows (or GUI development in general) it is very hard (if possible at all) to keep a track of all the details tool-chain does for you. And many people prefer to ignore the details - to concentrate on job at hand instead.

    [ After all, the concentration is a limited resource: more things people have to keep in their heads constantly, less concentration they can direct to any one of them. ]

    The holywar "Emacs v. vi" from its inception revolved around precisely the nature of developer. Some developers like to know the details. Some developers prefer to ignore them and just press a button to achieve desired result. On side of "vi", one has to deal with more information. On side of "Emacs" one has to accept that some workflows would be impossible, since there might be no ready button for it. Side of "vi" is flexibility. Side of "Emacs" is conservatism. Different people - different views of a system - different approach to development. And for a good team one needs a healthy mix of both, because looking at system from two different view points allows the team to cover wider range of solutions.

    --
    All hope abandon ye who enter here.
  60. IDE by Corson · · Score: 2, Interesting

    Delphi and Lazarus/FPC.

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

  62. QTCreator by lenKite · · Score: 2, Informative

    I am really surprised no-one mentioned QtCreator which runs on Windows too. You can use Mingw or the visual c++ compiler with QtCreator. Unfortunately you can debug only using Mingw.

  63. Re:Quite by PopeRatzo · · Score: 4, Funny

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

    You guys are such weenies.

    Did you read the author's question? He's doing this for his own personal interest. He doesn't want to have to kill and dress a buffalo with his bear hands just to eat a hotdog.

    --
    You are welcome on my lawn.
  64. Newsflash: The 1980's are over. by Joce640k · · Score: 3, Informative

    It's not about "not having a choice". Windows programmers aren't stupid, they figured out IDEs are far more productive.

    To answer the question: Visual C++ Express is the one. Lightweight IDE, best compiler, most standards compliant, best debugger ... it's a free download so don't waste time looking at anything else.

    --
    No sig today...
    1. Re:Newsflash: The 1980's are over. by adisakp · · Score: 4, Interesting

      To answer the question: Visual C++ Express is the one. Lightweight IDE, best compiler, most standards compliant, best debugger ... it's a free download so don't waste time looking at anything else.

      Lightweight IDE - it may only be a 3MB installer, but it downloads a lot more to install on the fly and it can chew up plenty of resources for any non-trivial code bases. It often stalls out updating Intellisense on a project of any appreciable size. Part of the reason it's a smaller install is all the help and docs are online which makes doing work without an active internet connection a PIA (i.e. laptop on an airplane).

      best compiler - Nope. Not even close. Intel compiler is generally 10-20% faster code than MSVC++.

      most standards compliant - I don't even know how to answer this other than to say I'm hoping you are joking. MSVC++ doesn't even handle empty-struct inheritance according to the C++ standards. Oh, and how about variables defined in a for-statement leaking out of their scope? For an idea of just how non-standards compliant MSVC++ is, take a look at the Boost source code and then check out how much of the code is actually work-arounds for bugs / non-standard features in MSVC++. Both GCC and Intel compilers come much closer to the C++ standard than MSVC++.

      best debugger - You got me there. Visual Studio (Express) does have a pretty well polished and easy-to-use debugger. I guess I can give you one out of four.

  65. Visual Studio / Code::Blocks / Eclipse / Emacs by blaisethom · · Score: 2, Informative

    I've tried a few IDEs and this is what I found for C++ development:

    *Visual Studio*
          - Best debugging
                  - Handles stl strings, etc
                  - Easy to change variable values while debugging
                  - Not very good with stl iterators
                  - Nice GUI for debugging
          - Best interface
                  - Code completion, etc is all great
          - Have to use project files: a pain
          - A bit bloated (though not as slow as Eclipse)

    *Code::Blocks*
          - Debugging is pretty good
                  - Sometimes a bit buggy (Sometimes can't change variables and stl templates a bit weird)
                  - In theory does lots of good stuff
          - Interface is nice
                  - Not quite as clean as VS but getting there.
                  - Allows plugins... could make it better than VS in future
          - A lot less bloated then VS
          - Project files are better than VS
          - Allows for normal Unix makefiles
          - Multi platform

    *Eclipse/C++*
          - Debugging not implemented in the C++ plugin
          - Nice interface
          - Really bloated, way too slow for me

    *Emacs/make*
          - I don't know how to use the debugging extensions and I don't feel like spending months to learn them
          - Great when running things over ssh, no other method really works

    Overall, I find that the debugging capabilities are by far the most important to me. So I use VS for almost all of my development. In fact, it's the only reason I still use Windows.

  66. Does it really require update? by DutchUncle · · Score: 3, Interesting

    >>I went to update my favorite free IDE, Dev C++, yesterday and noticed that it had not been updated since 2005!

    Is this necessarily a bad thing?

    For every "it doesn't have snazzy new feature x" there's a "it hasn't broken/lost feature y". And you're comfortable and familiar with it. Stability has its advantages. Plus you *can* update the underlying programs if you really need to; they just haven't been rolled into an updated single package.

    I'm an embedded systems programmer; we use IAR's ARM IDE at work (definitely NOT free). I used Eclipse briefly on a contract project, and I use DevC++ for my own little home stuff since using it for a course a few years ago. There's a balance point between staying on the bleeding edge, and working with existing fielded non-changing hardware that needs very stable updates from a stable development environment.

  67. Re:And here you still are with your buzzwords by Xest · · Score: 2, Insightful

    "Well then why don't you just explain it to us?"

    You suggest that vi is usable, and then suggest that just because I can't use it doesn't mean it isn't usable. Truly usable software does not require any amount of training, prior knowledge or particularly high levels of skill, realistically you shouldn't even need documentation. If you truly believe vi can be used by someone who has never used it before without any reference, help or anything like that then you're lost so deeply in your zealotry that you're undoubtedly doing more harm than good to the free software movement because your view of software is so far removed from the view of software which people expect that you are no help whatsoever in getting the word out there for FOSS.

    A good way to understand usability is that with usable software it should be clear how to perform a specific task through nothing more than seeing the interface. If your application is entirely keyboard shortcut driven then, it fails badly at usability, unless there is clear information on screen at which point it is somewhat usable, but there is almost certainly a better way of doing it. I am not against keyboard shortcuts, they are great for power users and help productivity when you know what they are, but in something as complex as a high end IDE you cannot keyboard shortcut everything without keyboard shortcuts simply getting out of hand.

    In terms of general productivity, the most obvious factor is that VS has the best intellisense implementation out there and it only gets better when you're using the likes of C# with inline XML documentation. But really, from the debugger through to libraries and language features such as LINQ, Microsoft's development suite has so much to offer in terms of productivity. Rather than try and run through every individual productivity feature in VS though wasting my time reiterating what's already out there if you bother to look for yourself, I'll assume you can use Google and move on.

    "With the wealth of alternatives available (let's not leave out Eclipse, since it seems pretty popular too, as well as Free), I can see no reason to tolerate the moral bankruptcy of the factors of Visual Studio. But you don't want to talk about _that_."

    Again, no one really cares how corrupt Microsoft is when it comes to making money themselves. The moral aspect of using Microsoft software is no big deal for most people when you compare to the moral aspect of other every day vendors from your fuel vendors for your car, to your sweat shop made iPods and clothes, Microsoft is in the grand scheme of things, guilty of far less evils than many other companies whose products we consume every single day. Presumably then, if immoral companies are such a big issue for you you've never fuelled your car, never bought branded clothing or gadgets and have never eaten at a fast food chain? If you cannot honestly answer yes to that, then you're a hypocrit.

    "I'll agree that the Imperial "Tools" are da bomb. Not being a beginner, however, "Beginner Friendly" is not what I want."

    Not being a beginner at what exactly? Certainly a lack of understanding about software usability suggests you're severely lacking in some of the more important concepts of software development. Perhaps you mean you're just good at churning out code which is only a small part of software development? In the real world, companies need to do more than just churn out code though, they need full product life cycle from requirements gathering, to design, to implementation, to testing, to deployment and of course maintenance. Microsoft offers a full blown tool chain to handle all of that in a single package, that's quite attractive and it's something the FOSS world needs to work seriously hard towards to offer an alternative. Eclipse is certainly the best attempt at this so far, but it's still not quite there.

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

    1. Re:You keep using that word... by hr.wien · · Score: 2, Informative

      I've never understood the sad devotion to vi and vim and other obfuscated tools that UNIX elitists have.

      It's because if any part of the toolchain doesn't work for you, it can easily be exchanged for something else without having to exchange the entire toolchain.

      Don't like vi? Use emacs instead. The shell and all the other tools you're using won't care. Don' like the Visual Studio editor? Tough!

    2. Re:You keep using that word... by MikeBabcock · · Score: 2, Insightful

      I type, I hit ":make" and it builds the project, and returns me to the first line that caused an error if any, showing the error in the bottom of the screen.

      How is that not integrated for you? As someone else said, most people critical of such an environment don't know how to use it.

      --
      - Michael T. Babcock (Yes, I blog)
  69. 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.

  70. Re:Quite by Abcd1234 · · Score: 2, Insightful

    Then I bought my mac and discovered XCode. It blew my mind. If I ever go back to linux I will be finding myself a good IDE.

    How so? I mean, my major IDE experience comes with VS2k5, though VS is generally considered one of the better IDEs out there, and while I've found it useful, about the only things I find truly excellent is it's code completion features, and the ability to easily jump to a symbol definition with F12... but I'd hardly call those a "blew my mind"-type features (and they can certainly be done in Vim or Emacs).

    So what else does XCode do that's so impressive?

  71. Lotta help slashdot is today by mmaniaci · · Score: 3, Interesting

    Neigh everyone mentioned either vi or emacs (I know they can run on Windows, but they are not acceptable as an IDE and all ya'll need to get with the times), a few said Eclipse (wtf Java?? yeah it has plugins, but it isn't a C++ IDE dammit!), and DevC++ is just dead.

    I recently tried out the Qt Creator and I love it. It feels new and snappy, works well, and emulates Visual Studio's dialog creator (in my opinion, being Qt and not MFC, kicks Visual Studio's bug-laden ass). I haven't been able to really squeeze the useful juices out of Qt yet, but the potential is evident.

    Visual Studio Express is great, and if you want to do MFC than thats definitely the way to go, but if you're just programming as a hobby or for personal projects then I suggest giving Qt Creator a try

  72. Re:Quite by Chad+Birch · · Score: 4, Funny

    Well at least having bear hands will make it easier to kill the buffalo. Where do I get a set of those?

    --
    Sturgeon was an optimist.
  73. Re:But it's not free by bugi · · Score: 2, Insightful

    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.

    For some, living the moral life is a prerequisite for sleeping at night.

  74. Re:Quite by WinterSolstice · · Score: 2, Interesting

    Having had XCode also blow my mind, but in a bad way, I'm really curious what these features are too.

    MS VS2k5/2k8 really is pretty good. Now, as I've stated elsewhere in these comments, I'm more of a Vim/Eclipse guy - but I still like any editor that does the following:

    1) Improves my workflow
    2) Improves my speed
    3) Reduces my bug count (bugs due to human input error... like an unmatched ' or a missing ; or something)
    4) Simplifies hunting for methods/subs (I LOVE auto-complete when doing java or .NET code)
    5) If it involves a compiler, supports stack trace, debug, and walking through the compiler output (in, say, assembler)

    I would argue these are the hallmarks of an IDE, actually. Otherwise, we wouldn't need them.

    Apparently for you guys, XCode totally nailed these. For me, I spent hours trying to get even basic Carbon/C++/C type stuff to compile. Trying to design interfaces with interface builder made me long for even the Visual Basic 4 interface.

    I'm glad it worked... and I'd love to hear what these features are, so that I can re-evaluate them and learn something.

    --
    An operating system should be like a light switch... simple, effective, easy to use, and designed for everyone.
  75. Re:Quite by Kozz · · Score: 2, Funny

    Well at least having bear hands will make it easier to kill the buffalo. Where do I get a set of those?

    Uhm, I'm pretty sure it's part of emacs, but I forget the keystroke.

    --
    I only post comments when someone on the internet is wrong.
  76. Re:Quite by MillionthMonkey · · Score: 2, Funny

    He should have Googled = and :=.

  77. CodeLite? by stonewolf · · Score: 2, Informative

    Take a look at http://www.codelite.org/. I occasionally teach C++ and I have the problem that not all students have a C++ dev platform installed. If they have one, I let them use it. If not, I recommend CodeLite. I spent a lot of time looking for an cross platform free IDE that I could recommend to students. I needed something that worked. Something that was pretty simple to get people up on running on. And, because students come from many backgrounds and have different ability to pay I really wanted something that was free. I used to use Dev-C++, but support for that project is over and wxDev-C++ is to closely tied to wxWidgets.

    CodeLite works, is reasonable easy to learn, and it is free.

    Stonewolf

  78. Re:Quite by CarpetShark · · Score: 2, Interesting

    Specialized IDE is of course always an option, esp. if you are developing in say Java, but I would seriously question someone's ability if they eschewed the shell tool chain.

    That would be a mistake. I learned on the command line, and in many ways, it's still the way I'm most comfortable with and use more often, but if someone comes and asks me whether I "prefer" farting about at a command line over a decent modern IDE with RAD GUI tools, built in debugger, built in version control, click-to-edit error log handling, build configuration support etc., I'm liable to think they're living in the stone age.

  79. Re:But it's not free by Xest · · Score: 2, Insightful

    And they are almost certainly hypocrits.

    It's nigh on impossible to live the moral live without living in a cave.

    No doubt the PC you posted that message on will end up in a nigerian scrap yard polluting the toxic components into the land rivers and sea in that area.

    Living a moral life does not mean you get to pick and choose what morals you follow, doing that means you're just choosing a different set of morals that are and aren't important to you than someone else without actually making you any more of a good person.

    Unless you sew your own clothes rather than purchase those in shops that have almost certianly come from sweat shops, unless you forego use of a vehicle filled up with fuel from the large fuel giants that pollute and even make species extinct, unless you have never wasted a drop of food in your life whilst children are starving in ethiopia, unless you've never consumed a product whose leftovers end up in a tip seeping pollutants into the earth and riverways used by humans, unless you've never consumed a newspaper or other publication from one of the controlling media groups such as Murdoch's, unless you can claim to have never done any of those things, you cannot possibly suggest that you are a more moral person than anyone else.

    So there's the problem, when people are more than happy to support companies that have caused species of plant or animal to go extinct (from big oil, to wood/paper product firms) as a matter of their daily lives, I do not think taking a moral stance against Microsoft, which has actually been far more philanthropic than the likes of Apple and many other tech. companies ever have is really high on anyone's agenda.

    Ironically, being more productive and hence less stressed is almost certainly going to net the majority of average joes working their day to day lives a much better night's sleep than pretending they've actually made a difference by not supporting Microsoft whilst guzzling gallons of fuel on their commute to and from work each week.

  80. Re:Quite by molarmass192 · · Score: 2, Interesting

    I see you haven't used NetBeans. XCode isn't bad, it's far better then the MS IDEs. I think my fave is Eclipse, not because it's a great editor, but because the plugin ecosystem is very good. I give XCode props because the code completion and refactoring are some of the best I've come across. However, most "hard" programmers still fall back to the terminal for building / testing.

    --

    Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
  81. Re:Quite by plague3106 · · Score: 2, Informative

    Hmm... I'd go as far as to say, why the hell is any modern developer having to worry about = or := in makefiles anyway? Christ, there's a reason modern IDEs handle all this for you... its tedioius, error prone, and saps your time from the REAL issue, which is building the application.

    To the Ask poster, use VS Express, and ignore the retards complaining about "handholding." I assume you want to program to get something done, not spend time on tasks barely related to programming and which modern tools have solved nicely.

  82. Re:Quite by bonefry · · Score: 2, Informative

    Emacs has good GDB integration (it also integrates with the debuggers of Python and Perl, and can be integrated with any command-line debugger). It's basically what Eclipse CDT does (which also integrates with GDB).
    Emacs also has a good LaTex editing mode.

    That's the biggest advantage of Emacs over Vim. In Emacs you can integrate external tools without blocking the main thread, making it possible to execute those tools in the background. Emacs is a lot more IDE-like.

    Why would you need UML modeling? Surely UML diagrams are good for documenting the code, but not for development.