Slashdot Mirror


What is the Ultimate Linux Development Environment?

nachmore asks: "I've been programming on Linux for a while now, always content to use vi for my editing and any debugger tools out there (gdb for C/C++, and so forth). As part of my SoC project I was working on Thunderbird (my first huge project on Linux) and I found that , although shell-based tools can do the job, they lack in easy project management, ease of debugging and other development features. I've only ever programmed with a GUI on Windows — and I have to admit that I find Dev Studio to be one of the few programs that Microsoft seems to have gotten (nearly) right. I've played around with Eclipse but find it's C/C++ support still lacking. So what GUIs would you recommend for Linux? I would like something with debugging (single step, step through, step-to-end, etc) support, CVS access and of course, support for large projects (e.g. Mozilla) and especially good support for C/C++. Is there anything really good out there, or is vi the way to go?"

104 of 643 comments (clear)

  1. You might as well ask... by Max_Abernethy · · Score: 4, Insightful

    ...which religion is best.

    1. Re:You might as well ask... by bunions · · Score: 3, Funny

      Zoroastrianism, duh.

      --
      there is no need to sign your posts. this isn't usenet. your username is right there above your post. stop it.
    2. Re:You might as well ask... by Anonymous Coward · · Score: 4, Insightful
      Christianity

      Which one?
      The Christianity that gets you unjustly persecuted by everyone on the planet; that's when you know you have the right one.
    3. Re:You might as well ask... by WilliamSChips · · Score: 5, Funny

      Origin. Hallowed are the Ori.

      --
      Please, for the good of Humanity, vote Obama.
    4. Re:You might as well ask... by Anonymous Coward · · Score: 2, Funny

      The Christianity that gets you unjustly persecuted by everyone on the planet; that's when you know you have the right one.

      Oh, you must be referring to the Judaism branch.

    5. Re:You might as well ask... by c++ · · Score: 3, Funny

      Hollowed are their followers' brains...

    6. Re:You might as well ask... by AuMatar · · Score: 3, Insightful

      What is the difference between a religion and a cult? Other than 1000 or so followers?

      --
      I still have more fans than freaks. WTF is wrong with you people?
    7. Re:You might as well ask... by Anonymous Coward · · Score: 5, Funny

      What is the difference between a religion and a cult?

      Tom Cruise.

    8. Re:You might as well ask... by VE3MTM · · Score: 4, Insightful

      Having thought about this myself, whether Scientology should be considered a cult or a religion, and indeed whether "cult" is just a matter of perspective, I think I have an answer.

      The difference between a religion and a cult is in the beliefs of its leaders. In a religion such as Catholicism, as you go up in the ranks from the lowly follower all the way up to the Pope, the devotion of its members increases. In a cult, it decreases, because its leadership sees the teachings for what they are: a means of control. Furthermore, whether you believe the teachings of a given religion yourself or not, its leadership believes they are acting in the spiritual interests of its followers. They believe they are bettering their members.

      However, in both cases the rewards for being a member increases, and for a cult, this works like a pyramid scheme, siphoning wealth into the upper ranks. So yes, there is a fundamental difference between a "religion" and a "cult", other than the number of followers. Scientology is a prime example today: it was a cult when Hubbard was sailing the Mediterranean under the Sea Org flag, and it's still a cult today.

      --
      09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 Whoops, silly middle mouse button...
    9. Re:You might as well ask... by phulegart · · Score: 3, Funny

      What's the difference?

      Religious nuts use Windows. They follow the masses without understanding, but still need an interface.

      Cultist nuts use Linux. They need to be outside the mainstream, but still need an interface.

      Agnostics either read a book, or dev their own OS. They don't need an interface, but enjoy keeping in contact with the first two groups.

      Athiests don't believe interfaces exist.

      --
      "I love deadlines. I love the whooshing sound they make as they fly by." -D. Adams
    10. Re:You might as well ask... by Pogue+Mahone · · Score: 2, Funny
      Hallowed are the Ori.
      I prefer the gin part myself. Preferably with tonic, ice and a slice.
      --
      Every bloody emperor has his hand up history's skirt [Peter Hammill/VdGG]
    11. Re:You might as well ask... by someone1234 · · Score: 2, Interesting

      1. i don't think the beliefs of a christian leader are higher than any single 'lowly' follower's. Think of Mother Theresa. Same goes for the fanatic muslims. None of those head honchos who issue the suicide bomber fatwas do actually become suicide bombers. 2. i think Hubbard genuinely believed in Xenu and all that crap. He took too much narcotics. Most of scientology is just business anyway, they call it a religion to avoid taxes. If scientology would be a religion, it would be safely called a cult. Otherwise i view it as a pure criminal organisation.

      --
      Patents Drive Free Software as Hurricanes Drive Construction Industry
    12. Re:You might as well ask... by Ekimus · · Score: 2, Interesting

      2. i think Hubbard genuinely believed in Xenu and all that crap.


      Not sure about that but wasn't Hubbard in a managing position (before he started scientology), and said at some keynote "If you want to make real money you have to found a sect"?

      (given I have no idea who what xenu is...going to wikipedia now)
      --
      You are not free to read this message, by doing so, you have violated my licence and are required to urinate publicly. T
    13. Re:You might as well ask... by Anonymous Coward · · Score: 5, Insightful
      The difference between a religion and a cult is in the beliefs of its leaders. In a religion such as Catholicism, as you go up in the ranks from the lowly follower all the way up to the Pope, the devotion of its members increases. In a cult, it decreases, because its leadership sees the teachings for what they are: a means of control. Furthermore, whether you believe the teachings of a given religion yourself or not, its leadership believes they are acting in the spiritual interests of its followers. They believe they are bettering their members.


      Thankfully, popes and antipopes all had the best interest of their followers at heart.
      I guess Heaven's Gate was a religion since Marshall Applewhite believed strongly enough in it to save his followers' souls and his own soul by committing suicide so they could get on that UFO. After all what is earthly flesh compared to the eternal soul.

      The difference, a religion been around long enough that people forgot it was a cult.

      I'm sure when Christianity started that people said it was a cult. After all, a lot of people didn't immediately recognize Jesus as the Son of God.

      I'm AC because it's bad enough talking religion with friends let alone complete strangers.
    14. Re:You might as well ask... by Anonymous Coward · · Score: 3, Interesting
      "Writing for a penny a word is ridiculous. If a man really wants to make a million dollars, the best way would be to start his own religion"

      Apparently LRH did say that - see http://www.skeptictank.org/readdig.htm - I think he knew exactly what he was doing when he started Scientology, although in his later years he did seem to go quite mad.

    15. Re:You might as well ask... by Peet42 · · Score: 3, Funny
      What is the difference between a religion and a cult?

      Tom Cruise.


      Yes. he is an annoying little cult.
    16. Re:You might as well ask... by sammy+baby · · Score: 3, Funny

      I misread that for a moment as "onanism" and got really, really, confused for a minute.

      I mean, sure, a quick tug now and again, but outright worship? You'll go blind.

    17. Re:You might as well ask... by VE3MTM · · Score: 2, Interesting

      Yes, thank you. I was anticipating that objection (that Hubbard believed his stuff), and I was going to pull that exact quote to prove my point.

      At first he didn't believe any of it. To him, it was a business, and a very profitable one at that. Only later in life did he go mad and start believing his own stuff. There's also evidence that he never followed all his teachings and used psychoactive drugs up until his death.

      --
      09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 Whoops, silly middle mouse button...
    18. Re:You might as well ask... by smartfart · · Score: 2, Funny

      "The Christianity that gets you unjustly persecuted by everyone on the planet; that's when you know you have the right one."

      And here I was thinking that no one believed in sacrifice anymore. Thanks, you made my day :-)

    19. Re:You might as well ask... by darkonc · · Score: 2, Insightful
      Ehm, Judaism is not in the set of Christianitys.

      Actually there is a 'sect' of Judaism that considers itself to be both Jewish and Christian (i.e. they're jews that consider Jesus to be the Messiah). Given that Jesus and the first generation or two of deciples would have fit in this definition, I'd say that they'd have to classify as Christian -- Unless you want to consider St. Paul and the other apostles as non-christian (not to mention Jesus, himself).

      --
      Sometimes boldness is in fashion. Sometimes only the brave will be bold.
  2. vim by ThisNukes4u · · Score: 4, Insightful

    vim 7 + cscope == awesome

    --
    thisnukes4u.net
    1. Re:vim by doti · · Score: 3, Insightful

      Let me be the first to second it.
      Vim is simply awesome, it's a daily rejoyce to work with it.

      Every minute spent learning it's multitude of features will save you a hundred minutes with gained produtivity. And it never stops, you allways learn a bit more everyday. There's nothing it can't do, you just haven't learned it yet. If you're lazy to study it's excelent documentation, just ask at vim@vim.org or #vim.

      It's in the top five best software ever, along with:
      - Linux, for saving my soul from Windows;
      - LaTeX, for saving my soul from Word;
      - Quake, for endless fun with my friends;
      - Screen, to master the text terminal environment.

      --
      factor 966971: 966971
    2. Re:vim by Coryoth · · Score: 3, Funny
      There's nothing it can't do, you just haven't learned it yet.

      Can it make me a cup of coffee?
    3. Re:vim by jackjeff · · Score: 3, Insightful

      Ah yeah... remplace a complete IDE that generates Makefile automatically (among other things) by a texteditor. It's like using ultra-edit and the DOS console to code...

    4. Re:vim by peterpi · · Score: 2, Interesting

      cscope, what's that?

      (1 google later...)

      Oh great! :) That's what I'll be learning this afternoon! That's something I love about vim. Just when you get comfortable with it, you can find one more feature to save your time. I like it more and more every day.

      (current project: 97k lines of code. Not huge, but fairly sizeable)

    5. Re:vim by deadlinegrunt · · Score: 2, Interesting

      Truth be told if you are actually any good at coding you will write your own wizards and generators, regardless if you use an a full fledged IDE or a fail-to-get-with-the-times-because-the-IDE-people- said-so text editor.

      Scary to think how much production code gets action with wizard generated code and developers have no idea what that code is actually doing other than maybe a cursory overview, if that.

      --
      BSD is designed. Linux is grown. C++ libs
    6. Re:vim by deadlinegrunt · · Score: 2, Interesting

      "I started out using wizards when I was new to ASP, and it helped me get some results quickly..."

      Which is exactly the reason they exist. As you further point out, generalized solutions generally don't work all the time...Especially in edge-cases. This is quite different than the Not Invented Here Syndrome - I am surprised someone didn't chime in as such. As it stands you have elaborated on my point quite well and I, of course, agree with you 100%.

      --
      BSD is designed. Linux is grown. C++ libs
    7. Re:vim by thelenm · · Score: 2, Informative

      That's something I love about vim. Just when you get comfortable with it, you can find one more feature to save your time. I like it more and more every day.

      Speaking of which, my signature contains a tip I learned a while back, and I've been shocked to discover most Vim users don't know it. (I used Vim for years without knowing it either.) Just in case I change the signature sometime, here it is:

      Don't reach for the ESC key in Vim. Use Ctrl-C instead.

      --
      Use Ctrl-C instead of ESC in Vim!
  3. Its called emacs by bughouse26 · · Score: 5, Insightful

    emacs has all of these features that you are asking for: front-end for gdb enabling highlighting in source code for debugging, integrated support for source control including CVS, and incredibly good support for C/C++ syntax highlighting/editing. If you are coming from vi, you can even change the default keybindings to vi-style bindings.

    1. Re:Its called emacs by kfg · · Score: 5, Funny

      emacs has all of these features that you are asking for:

      But hang on to vi, because you'll still need a decent text editor.

      KFG

  4. KDevelop by Shimdaddy · · Score: 4, Interesting

    I've always been a big fan of KDevelop, as to me (granted, a total newb) it seems pretty similar to large IDE's (eg Visual Studio), and it definitely does everything I need.

    1. Re:KDevelop by Carnildo · · Score: 2, Informative

      Has it improved over the past few years? The last time I tried it, it was the worst IDE I'd ever used, missing certain useful features like the ability to group source files, and the documentation was so bad I actually knew more about using it before I read the fucking manual.

      --
      "They redundantly repeated themselves over and over again incessantly without end ad infinitum" -- ibid.
    2. Re:KDevelop by kcbanner · · Score: 3, Informative

      Yeah, the other day I went to try out KDevelop. Worst IDE I have ever tried...ever.

      I was trying to create a project, I chose my folder I wanted it in. KDevelop then proceded to tell me that the folder didn't exist (I'ts supposed to create it from what I gathered). I tried createing the folder before I started the project wizard. No luck, it whined about the folder existing. I then decided to RTFM before I asked about it. Unfortunetely the manual consists of a few descriptions of what menu options do, and nothing to do with actually using it :P.

      Once I finally got my project created I attempted to checkout my svn repo...nothing, not even an error. Its like the code for that part was empty 0.o.

      Maybe the arch linux build is just fscked, but I dont like it :P

      --
      Obligatory blog plug: http://www.caseybanner.ca/
    3. Re:KDevelop by larytet · · Score: 2, Informative

      KDevelop improved, but there is no ability to group the files i am aware of. There is support for subfolders based on partial builds of .a files for every subfolder and this part improved, but it is still far from being intuitive

    4. Re:KDevelop by beef3k · · Score: 3, Informative

      It's definitely improved. Good "IntelliSense" like funtionality in the editor, expand/collapse scopes in code, gdb and Valgrind properly integrated, nice class browser, nice build manager... all in all there's not much I don't like about KDevelop these days. I don't think I've ever had much need for the manual so I couldn't comment on that. What do you mean exactly by "grouping" source files?

  5. SlickEdit by naturaverl · · Score: 5, Informative

    I use Visual SlickEdit 10 for Linux. http://www.slickedit.com/ This piece of software is the most configurable IDE I've ever used; it's a tad on the expensive side, but everything just works and it was worth it for me.

    1. Re:SlickEdit by Anonymous Coward · · Score: 2, Informative

      I wouldn't say it's the most configurable editor (I think emacs and vim win that category), but it's definitely got some nice features. Built in tag support being pretty high on the list. It's fast and works great. You don't have to rebuild the tags database, since it updates it as you type and periodically in the background. Version 11 added much better font support under Linux (it'll use anti-aliasing). The only drawback is that if you work on a bunch of different projects that each require different coding styles... well, then you've got your work cut out for you. You're far more limited in the coding styles available (for instance, it won't do GNU), and if you need to change it based on project, you'll have to script some things to make it go. On the whole, it's a rather nice IDE and I'd highly recommend it. I own a copy for every platform I work in: Linux, Mac OS X, and Windows.

    2. Re:SlickEdit by gfxguy · · Score: 4, Insightful

      It might be really slick, but at almost $300.00 for a single user linux license, it's not just a tad on the expensive side.

      I suppose I could get work to pay, but that doesn't help me at home (no, I don't illegally copy software).

      --
      Stupid sexy Flanders.
    3. Re:SlickEdit by IDontLinkMondays · · Score: 2, Informative

      Unfortunately, they lack good support for preprocessors such as moc from Qt. They also lack support for build systems other than their own. Admitidly, I've purchased this software, but only used it a brief time. Their project tools actually seemed limiting after not too long.

    4. Re:SlickEdit by wanion · · Score: 2, Informative
      I suppose I could get work to pay, but that doesn't help me at home (no, I don't illegally copy software).

      I suspect that's why they provide a named user option, where the license is tied to the specific user and you can use it on multiple computers so long as only one copy is used at any given time.

    5. Re:SlickEdit by CYDVicious · · Score: 2, Funny

      "(no, I don't illegally copy software)"

      Oh great one, teach me your ways of copying software legally.

      --
      //Nothing to see here, please move along.
  6. Who has done it right? by RobertKozak · · Score: 2, Funny

    I've only ever programmed with a GUI on Windows -- and I have to admit that I find Dev Studio to be one of the few programs that Microsoft seems to have gotten (nearly) right.

    I wonder. Which Dev tool gets it right?

    --
    Bet this .sig looks familiar.
  7. If you must... by Otter · · Score: 2, Informative
    I've only ever programmed with a GUI on Windows -- and I have to admit that I find Dev Studio to be one of the few programs that Microsoft seems to have gotten (nearly) right.

    Absolutely -- that and Excel.

    Anyway, as with a lot of things in Linux, you might want to take your preferred toolkit into account. (Since you seem to be asking about a RAD...) I personally love KDevelop, which is integrated with Qt Designer. If you want to use GNOME as a platform, there are tools that I haven't looked in on in a while but should be easy to find. Although back when the weekly KDE developer interviews asked about preferred tools, they mostly used Emacs, so take that for what it's worth.

    (PS: to fend off flames -- I know you can write GNOME code in KDevelop and vice versa, but when last I tried, the cross-toolkit RAD wasn't there.)

    1. Re:If you must... by Coryoth · · Score: 4, Informative
      I personally love KDevelop, which is integrated with Qt Designer. If you want to use GNOME as a platform, there are tools that I haven't looked in on in a while but should be easy to find.

      I believe the GNOME equivalent is Anjuta, which has a lot of the features the OP was asking for. I haven't really used it myself so I can't really say. As you note for KDE developers, my understanding that a lot of GNOME devs just use Emacs. Still, if you want something with a nice GUI then Anjuta looks decent (choice of GTK theme used for screenshots not withstanding).
    2. Re:If you must... by MORB · · Score: 5, Informative

      Absolutely -- that and Excel.

      I strongly disagree. I've been using every version of visual studio professionaly since version 6 (and I used v5 at school), and it's been a complete pain in the ass through the years. It used to do things that others IDE didn't do, so at some point most of its crappiness was tolerable.
      But nowadays, this thing is unacceptable.

      Vs2003 was almost ok and seemed to have the potential to turn into something acceptable.
      Plenty of things were wrong or even a complete pain in the ass already: the project settings dialog, the configuration system, the inflexible build system which mysteriously failed to rebuild things on a regular basis, the mysterious and annoying separation of file system hierarchy and project hierarchy, the irritating and random hanging for dozen of secodns at time of the whole thing for no apparent reason, the tiny, cramped and not resizable dialogs...

      Then vs2005 came along.
      This thing is a monstrosity. It didn't fix anything that I had a problem with in vs2003. Instead, it became more slow, badly architectured and is a total shrine of mediocrity.
      It spam refresh the project list tree for dozens of seconds at a time for no reason. Close multiple tabs and watch as it pointlessly waste its time (and yours) refreshing the display after closing each tab.
      The project configuration dialog is a complete joke which tend to overwrite the wrong project settings for no reason.
      Watch it randomly remove projects from the solution from times to time.
      Create a file, add it to the project, and it chokes and crash.

      Try to rebuild the project or just even run it, wait for 30 seconds for that clusterfuck of an ide to figure out that nothing should be built. Not that it ever gets it right if a lot of stuff were updated in your last version control update, anyway.

      Scalability is horrendous.

      And of course, they still haven't figured out how how to make resizable dialogs. The did figure out how to add gradients in the toolbars, though. Thanks for this awesome usability improvement guys.

      Oh, I almost forgot that they decided arbitrarily to not provide you with redistributable debug version of the runtime libraries. Since I'm working on an internal production application with an hopelessly convoluted setup procedure, I really enjoy not being able to run a debug version on a user's machine to help me troubleshoot some issues. Development tools are supposed to make the developer's life easier, not to create gratuitous inconveniences.

      I use thing thing 8 hours per day. I hate it with a passion.
      And it's not like it's cheap either.

    3. Re:If you must... by dcam · · Score: 2, Interesting

      Hey thanks for the heads up. We were considering moving to VS.Net 2005. More to the point, we were considering .net 2.0. I've heard a few horror stories though.

      The key driver for us has been the introduction of generics. Aside, what is with that? Why didn't they just call them templates and add into in 1.0/1.1?

      --
      meh
    4. Re:If you must... by madcow_bg · · Score: 2, Interesting

      My god, I have done some programming in VS 2003 but I missed all the things you mentioned. Except the ridiculously long compile times. Well, I only managed small projects, so no wander why I have missed it.

      The truth is that after VS 2003 I went to Eclipse. It lacks (good) support of C++, but the Java thingy is superb... the code completion, refactoring, hints... I can live my life when writing apps, it automatically asks me what to do with uncatched exception, has excelent plugnins for EVERYTHING. If only someone would write the same features for C++ I would never ever ever want to go back to VS 2003.

      VS 200x has good graphical interface and good wizards, but the rest is mostly pile-o-shit, compared to Eclipse (well, the equvalent features). I especially hate that it can operate only with MS SQL. Vendor locking, anyone?

  8. Regarding Debuggers, everyone should read by Anonymous Coward · · Score: 4, Insightful
    Regarding debuggers, everyone should read what Linus himself wrote on the subject. He was talking specifically about the kernel debugger; but his words and comments apply to debuggers in general.


    The best environment in Linux - as with on any platform - is a text editor and a solid mind that thinks the problems through before typing. IDEs inhibit that thought process.

    1. Re:Regarding Debuggers, everyone should read by gangien · · Score: 3, Interesting

      The best environment in Linux - as with on any platform - is a text editor and a solid mind that thinks the problems through before typing. IDEs inhibit that thought process.

      Inhibit? umm.. no.

      All an IDE is supposed to do (and all of the ones I've personally seen, do this) is make development easier. Why should you have to lookup the signature on a function/method, when an IDE can list them? Why should you have to change windows, start the process, start the debugger whatever else, when an IDE can do that? Why do you have to figure out where an extra ';' is hidden somehwere in the code when an IDE can do that? Not that IDE's don't have draw backs, sometimes of course they have bugs. They can also be a pain to set up.

  9. Re:VMWare and .NET by Foofoobar · · Score: 2

    Why? Did Steve find where we hid the chairs?

    --
    This is my sig. There are many like it but this one is mine.
  10. Eclipse by L7_ · · Score: 5, Insightful
    I've played around with Eclipse but find it's C/C++ support still lacking.


    Care to enlighten us on what was lacking with Eclipse and CDT?

    My only real complaint is the large times it takes to recompile large projects. Slow indexing/parsing times for large amounts (1000+) of files are a given however for any type of tool that is going to cross reference new projects. However, if I have control of the project extraction of projects into logical subcomponents rather than editing huge single projects with Eclipse/CDT will give you a very nice time speed up.

    A personal fave is that the debugger integration in eclipse is second to none.
    1. Re:Eclipse by bunions · · Score: 2, Informative

      last I checked, on OSX (and maybe linux too, I dunno) there was big problems with projects that didn't use makefiles - they wouldn't link for a reason which escapes me.

      --
      there is no need to sign your posts. this isn't usenet. your username is right there above your post. stop it.
    2. Re:Eclipse by Red+Alastor · · Score: 2, Informative
      Code navigation. You basically need to be able to right click on a function name and say "go to the declaration of this function". Similarly, it's good if you can hover your mouse over a variable and see where it is declared.
      Already in Eclipse. But it's ctrl-click. ctrl and hover also gives you info.
      --
      Slashdot anagrams to "Sad Sloth"
    3. Re:Eclipse by Darkforge · · Score: 3, Informative

      As my anonymous peer just remarked, it's "in there" as a feature, supposedly, but it doesn't work (most of the time) in the CDT. This is something the CDT guys fully acknowledge and hope to resolve in future releases of the CDT. (Remember, Eclipse's magic tricks are much easier in Java than in C, thanks to bytecode introspection.)

      --

      When I moderate, I only use "-1, Overrated". That way, I never get meta-moderated!

    4. Re:Eclipse by Darkforge · · Score: 4, Informative

      Wish I'd looked at the Eclipse documentation more closely before posting... there's some fun gotchas buried in the EclipseCon 2006 CDT PowerPoint Presentation available on the Wiki. Here's some delightful reminders of what's wrong with the CDT:

      "Turn off Build Automatically" -- In Eclipse/Java, you'd never need to tell someone to do this, even in the largest of projects, because the build runs quickly and incrementally (using the built-in Eclipse Java compiler). But in CDT, the only way to build is to run your entire toolchain using a Makefile. (So instead of fixing this, they provide features to auto-generate the Makefile!)

      "The CDT full indexer is very expensive on large C++ projects (Recommendation: Don't use it on such projects)" Gee, thanks! That's the thing that makes Eclipse (in Java) so Eclipse-y, you know? So make sure you turn that off on large projects.

      Oh, and there's my personal favorite FAQ: Can I debug Java and C++ at the same time? Answer? "If you can get this to work, please let the cdt-dev mailing list know!"

      The Eclipse CDT is a joke. Even Visual Studio can handle reference searches on large projects.

      --

      When I moderate, I only use "-1, Overrated". That way, I never get meta-moderated!

    5. Re:Eclipse by xtracto · · Score: 5, Informative

      MMmm I dont know why I did not see anyone mention Code Blocks. I have been following the development and it is quite good. It is cross platform and open source.

      Although they have been in 1.0rc2 for quite some time, they make nightly bulds which are very good.

      --
      Ubuntu is an African word meaning 'I can't configure Debian'
    6. Re:Eclipse by Octorian · · Score: 3, Informative

      > The Eclipse CDT is a joke

      Unfortunately, I have to agree. I use Eclipse on some C++ projects, simply because I like the GUI, project file tree (Emacs gets very annoying across larger source trees), and CVS integration. However, I've had to turn off most of CDT's features because they are just too damn painful. Every time I try to do something that would trigger an auto-complete drop-down, the system strains and stalls for a while before it maybe gives me an accurate list of choices. I also had to stop building from within Eclipse, since my project used makefiles that generated absurly long command lines (lots of stuff to include/link). These got trunkated in Eclipse and bombed out, but worked just fine in a shell window.

      Of course in Java-land, Eclipse is wonderful. It may feel a bit less polished than NetBeans, but IMHO beats it on some useful features (like while-you-code error checking across files).

    7. Re:Eclipse by CDT+Doug · · Score: 2, Interesting

      Hmm, I'll have to go back and see what I presented at EclipseCon. The funny thing is that the theme of the presentation was to show how to use the Eclipse CDT to develope Firefox source. It was supposed to reveal that you can use the CDT with large projects such as Firefox with little pain.

      Building projects using make, especially with recursive makefiles such as you find in Mozilla, is indeed a slow process. We are working on an internal builder that will operate much like Visual Studio. However, I think you'll have a hard time convincing the Mozilla community to overhaul their build system. That is why we continue to support seemless integration with pre-existing build systems in the CDT.

      The big feature with CDT 3.1 was a rewrite of the indexer framework. I am now able to index Firefox in about 10 minutes. You only do that once when you set up the project. After that you hardly notice the indexer running when you change files. The comment you mention is in regard to the old Full indexer that has been the bane of our existance for years. The new indexer should address these issues.

      I don't know any technology that can debug Java and step into JNI code. I notice that the C# debuggers (.Net and Mono) can do that, but no-one has invested in a Java debugger that can do that. And, yes, if you know how to do it, contributing to the CDT project is the best way to get some fame.

      Visual Studio continues to be the benchmark that we try to achieve with the CDT. We are also looking at the amazing features that the JDT provides. We've certainly come a long way in the four years we've been working on it. I've received alot of feedback that tells me the CDT is not a joke, and of course there are those who think it is. But such is life in the "open".

  11. I would say the best enviroment would be by iminplaya · · Score: 2, Funny

    somewhere on a nice beach on the west coast of Mexico and tall (or short) black haired, big round eyed girls bring you a constant supply of Negra Modelo and guacamole with habanero chilis...and of course using a Mac. Some Oaxacan sinsemillan would be a nice touch.

    --
    What?
  12. Personally... by NickFortune · · Score: 4, Insightful
    Personally, I don't like IDEs. They force you into another's way of programming, and encourage sloppy design by allowing the management of needless complexity. They make it easier for thoughtless programmers to maintain bad code, by postponing the day when the codebase collapses under its own weight.


    By preference I use zsh, vi and make.Screen or multiple terminal windows (aterm by preference). Depending on the task and the requirements, GCC/gdb/ctags or perl/CPAN or boo+nmake+nunit. Throw in find grep and all the usual suspects in support. Tools with a command line interface preferred over ones without, commands that read from stdin and write to stdout by default perferred over others. Special exemption made for browsers and drawing programs.

    If the structure of an application is too complex to manage under a unix command shell, that's a reflection on the design of the app in my book. I don't expect that's going to be a widely held viewpoint around here. Never mind, it works for me :)

    --
    Don't let THEM immanentize the Eschaton!
    1. Re:Personally... by springbox · · Score: 2, Interesting
      Personally, I don't like IDEs. They force you into another's way of programming, and encourage sloppy design by allowing the management of needless complexity. They make it easier for thoughtless programmers to maintain bad code, by postponing the day when the codebase collapses under its own weight.

      How exactly? I primarly use Visual C++ 6's IDE and have found, as with other development environments like IntelliJ, all they really seem to be good at is helping you to organize your projects files and automate the building process. Their debuggers are also often fairly nice. When I'm using Linux, I have vim, make, and gdb. The fact that I do not have these tools integrated in an environment similar to something like Visual C's means I have to do a lot of switching between terminal sessions. It's often easier to work on a project if everything is mostly in one place.

      Development environments seem to provide ease of use and not much else. How do they "force" people to maintain bad code?

    2. Re:Personally... by bit01 · · Score: 4, Insightful

      In what way is it more "in place" to click on different tabs in a terminal window versus clicking on different sub-menus in an IDE?

      An IDE is typically just a collection of specialised, tiled windows with some menus and buttons up the top. The specialisaton of each window has a downside in that it wastes precious screen real estate when you don't happen to be using those specialised functions. Personally, I prefer to be able maximise my code window and keep all the other junk out of the way as I find that maximises my productivity.

      While a well designed IDE can help they are overrated as productivity boosters. Most of the productivity gains come not from the IDE per se but from the various tricks, noted by other posters, incorporated into it. Non-IDE programmers have their own bag of tricks e.g. Often writing small scripts to accomplish some repetitive function that might not be anticipated by an IDE designer, or taking advantage of a full OS of command line and GUI tools that an IDE can only dream about. Most IDE's have external tools functions but they are usually badly integrated.

      ---

      Don't be a programmer-bureaucrat; someone who substitutes marketing buzzwords and software bloat for verifiable improvements.

    3. Re:Personally... by John+Courtland · · Score: 5, Interesting

      I think the IDE is a symptom and not the disease. Programming is hard and programmers are expensive, so to make programming cheaper, it needs to be easier to program. IDE's lower the barrier for entry, thus providing a larger pool of programmers, thereby allowing less experienced/motivated/intelligent (and cheaper!) programmers access to development resources they normally wouldn't have been able to cope with otherwise. There's also a push for these IDE's to automatically do a lot of menial coding tasks (I believe that if you can click a button and have an IDE generate code, that the language is bad or the problem is designed wrong, but that's another discussion). So there's tons of machine generated code, plus inexperience, which pretty much is *the* recipie for the worst code ever. I can see where the hate is coming from.

      The one thing that autocompleting IDE's do that bugs the hell out of me is that they make it easier to slip into the i, ii, iii syndrome without *immediate* consequences. At work, we had one clown that wrote all this page handling shit I'm dealing with who would sprinkle his code with various iterations of what would be best defined by the regular expression: [a-z]+ (he also put lots of business code inside of JSPs, but that's yet another story). The IDE made it too easy for him do that because he could just summon the magical autocompletion and not have to think about the difference between i and iiii.

      That said, I think that hating on the IDE because people are retarded is wrong. I personally love the autocompletion because it saves me time by not even giving me a chance to typo. That, plus the automatic red underline for syntax errors (usually unimported resources) make writing code that much easier; instead of focusing on the syntax, I can focus on the algorithm.

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
  13. Understanding and Navigating Code by aCapitalist · · Score: 3, Insightful

    Given a large codebase that you are unfamiliar with, it's hard to start understanding the code with just Vi. It sounds like your ideal environment would allow you to pull a Mozilla project file into something like Eclipse or VS or KDevelop and have everything parsed out into structures, functions, methods, classes... You're not going to find that with the way Mozilla is built (at least the last time I checked). I think KDevelop does have the ability to parse autoconf files and set up a project that way, so you might be able to pull in parts of Mozilla that way. I think Anjuta might have a similiar ability.

    I've since moved on from C/C++, but last time I checked the Eclipse CDT was getting a lot of work done on it. What is the problem with it these days?

    1. Re:Understanding and Navigating Code by ickpoo · · Score: 2

      What is wrong with just running the project through Doxygen and getting some documentation for the whole thing?

      Then just use you editor of choice (Emacs or VI). Hmmmm - there must be Emacs additions that integrate Doxygen.

      --
      I am not a script! .Sig?
    2. Re:Understanding and Navigating Code by Zigurd · · Score: 2, Informative

      You put your finger on it: Need to get around a big code base in a hurry? Suck it into Eclipse CDT and find things in a hurry. If you can build and debug it you can let breakpoint the main parts of the code and take a guided tour. Everyone can be productive once they are comfy in their own kustom krafted edit/build/debug environment. But if you don't need customization, you will get more contributors if you lower the barriers to entry.

  14. In the least popular opinion... by laughingcoyote · · Score: 2, Insightful

    Agnosticism. (ducks)

    Though, actually, that's not far from my recommendation. Learn a bunch of different stuff. Learn vi and emacs, they both have their place. Spend some more time with Eclipse, I'm curious as to what you found lacking there? If you still don't like it kick around some of the other Linux IDE's. Hell even if you do like it kick around some that look appealing. Try some different frontends for gdb/vim/emacs/etc./etc. Just like anything, different tools are appropriate to different projects, and if you don't get too stuck with one (as seems to be the sad state of affairs for many here) you won't find yourself in the frustrating situation of trying to put in a nail with a screwdriver or hammer in a screw.

    --
    To fight the war on terror, stop being afraid.
  15. emacs by theCoder · · Score: 4, Informative

    Or xemacs if you prefer. I work on a large software system written in C++ and runs on various unixes (Solaris, Linux, SGI) and attempts to run on Windows (Windows usually doesn't agree with it). The system has thousands of source files and is built with make (the Makefiles are generated with imake!). Generally, I use xemacs to for editing. I love vi, but I tend to use (x)emacs because I find the buffer management (the ability to open multiple files) better than in vim. It's entirely possible I just don't know how to use vim right (vim's buffers seem to require that I save the file before switching to another buffer).

    Emacs also offers easy access to our source control system (by corporate mandate, we use ClearCase, which I do not recommend to anyone wishing to maintain their sanity).

    Finally, emacs allows me to open two (or more) windows in the same session. I generally put two windows next to each other so I can edit two files at once. This lets me open up files as I need them in either window, and then switch to that buffer in the other window if I need to get to it later.

    Even though I consider myself a vi person, I've found emacs to be a very good environment for editing source files. It is very customizable and powerful. It adapts to how you want to use it (other people use it in vastly different ways), and generally gets out of your way to let you get your work done.

    Just my opinion.

    --
    "Save the whales, feed the hungry, free the mallocs" -- author unknown
    1. Re:emacs by ksheff · · Score: 2, Informative

      In addition to editing, emacs also has support for kicking off a compile and the user can then jump to each line of code that caused the compiler to spit out an error or warning. For debugging, it will start gdb and you can move around in the code to set breakpoints, step through code, etc. I've been using GNU emacs as my main development tool for 15 or 16 years. I've had to use other IDEs while taking training classes for C#, Java, Visual C++, etc., but I still prefer emacs.

      --
      the good ground has been paved over by suicidal maniacs
  16. Visual Studio 2005 by z_gringo · · Score: 3, Insightful

    Visual Studio 2005 just rocks.. I only wish there was something remotely similar for Linux.

    --
    -- -- Warning. Do not stare directly at the sun.
    1. Re:Visual Studio 2005 by aztracker1 · · Score: 2, Interesting

      I've used both, and to be honest, I think it is a bit slower in places.. on my home computer it's pretty responsive (2.8ghz p4 not running in HT mode, with ubuntu as my main os, and 768mb of ram dedicated to my XP VM)..

      Even with its' short comings, it is far and above the best IDE for a lot of development. I mainly work on web based applications, and never touch the design view though.... When doing GUI apps, I tend to favor design mode.. kind of a duality of sorts, I just like the tighter control over the (x)html output... Master pages is a blessing, and it (.Net 2.0) is imho far superior in usability to the 1.1 framework.

      Honestly, I haven't played as much with MonoDevelop, mainly because of my main work being with Web Applications. I write more console apps, and services than I do GUI apps. Java/Eclipse is pretty usable, I'm not a big fan though, just seems a lot slower than similar apps in C#/.Net, and also really don't care for JSP.

      If I were doing C/C++ would probably look most at KDevelop, Anjuta, and Eclipse..

      --
      Michael J. Ryan - tracker1.info
  17. Don't write off simple tools until you know them by andyross · · Score: 5, Insightful

    Tool choices are clearly an issue of personal taste. And as my tastes clearly don't match yours, I won't be making any suggestions.

    But I will say that, without exception, all the best developers I've known in my career (yes, every single one of them) work with a text editor and a shell window. They use GUI and web tools where needed or useful, but their minute to minute activity is spent at the keyboard, writing, running and reading code.

    I submit that this is not a coincidence. The best developers write their own simple tools for small problems, and the proper environment for running simple tools is the command line. Great programmers work in varied environments and use diverse languages and configuration formats, where IDEs work well only within their target realm and are pretty much useless outside of it (e.g. no PHP mode in MSVC).

    The benefit you get from fancy tools is real, but it's ephemeral. It make the typing of code (and maybe the reading of code) easier. But it does this by simplifying and obscuring the underlying details. Want to add a file to the project? Add it to this dialog. Need to check something in? Click here. Never mind how it all works, and hope that you never get tasked with doing something complicated (like an automated check-out-build-and-package script over a secure remote link).

    By contrast, the understanding inherent in using your tools on the lowest level provides benefits all through the development process. These are the folks who won't think twice about writing a quick shell script to do the remote build.

    So, by all means try out the fancy tools you can. But don't skip the part where you learn how to use the underlying tools well. Use the GUI stuff as an aid for the tasks you do understand, not as a substitute for what you don't.

  18. Regarding slashdot, everyone should think. by Anonymous Coward · · Score: 3, Funny

    "The best environment in Linux - as with on any platform - is a text editor and a solid mind that thinks the problems through before typing. IDEs inhibit that thought process."

    Apparently posting to slashdot has a similiar effect.

  19. I like Eclipse. by toby · · Score: 3, Interesting

    For most things - assembler, shell, Perl, C, C++, SQL... Slick Subversion integration is a plus.

    Sun Studio for Linux might be worth trying out.

    --
    you had me at #!
  20. Re:Don't write off simple tools until you know the by wronkiew · · Score: 2, Interesting

    Tool choices are not just an issue of personal taste. There are tools which are better than others, and there are some tools that are worth a lot of money because of the productivity gains that experienced programmers can get out of them. This is particularly true of debuggers.

    Disclaimer: I work for a company that sells development tools, including tools for Linux.

    Some bugs can be fiendishly difficult to diagnose, particularly bugs that involve timing, resource usage, random events, and memory corruption. If you run into a bug like this and your tools consist of vi, a shell, and gdb, you are either going to spend months trying to diagnose it, or you will have to ship your program with a known defect. You could instead get yourself a trace-capable debugger, run your program in it while logging the execution of every instruction, wait until the bug surfaces, then step backwards through the program until the point where things start to go awry. I have used a debugger like this to solve problems that I would not be able to solve with, for example, Eclipse. I admit there are a lot of tools that make things easier by hiding the details of source repository checkouts and building projects, and I tend to avoid them in favor of the command line equivalents that can be scripted. When a tool provides me a better view of how my program works, it's worth using.

  21. KDE(K Development Environment :) by iovar · · Score: 4, Interesting

    Seriously, KDE is very friendly to developers. You don't need Kdevelop.
    Just a bunch of Kate and konsole sessions, spread over many desktops.
    And kompose to have immediate access on any of them.
    Also, the ability to launch immediately a konsole on any directory(F4 now ctrl-t on older versions)
    is invaluable. And other than that vim for quick editing of project files(Makefiles, configure
    scripts, etc...)
    And yakuake can come in handy, since it is an unobstrusive and easy way to run commands.
    Other than that,a healthy mix of traditional unix tools(cat, grep and sed is what I use mostly)
    and a couple of python scripts to automate some tasks and even create on the fly graphical
    components with Tk, to ease the management of your project.

    --
    http://recordmydesktop.iovar.org
  22. Emacs/Slime by Whip-hero · · Score: 3, Interesting

    I know this meets none of your criteria, and so completely fails to answer your question, but the best development environment I've ever found is Slime (Superior Lisp Interaction Mode for Emacs). It can work with several different Common Lisp implementations running on Linux, Unix, Mac, and Windows, and since Emacs is cross-platform, it can run on any platform where Emacs is supported. It provides a REPL, object inspector, debugger, single stepping, multi-thread support, stdout re-direction to the REPL buffer, syntax highlighting, auto-indent, expression evaluation from source files, error re-starts, and function cross-referencing, for those Lisps that support them. It offers capabilities reminiscent of the Fabled Lisp Machines of Old.

    Slime uses a component running in the Lisp process, and elisp code running in Emacs that communicates with the Lisp through a local INET socket. That means you can run the Lisp process on machine 1, set up an ssh tunnel to it from machine 2, potentially running a different OS, and connect to 1 from an Emacs on 2. I actually do this every day, connecting to a remote SBCL on Linux from both Linux and Windows. The interaction is fast enough that I routinely develop on the remote Lisp image over a WAN link.

    The system works with any libraries available for your Lisp implementation, including database, web, and GUI toolkits, although it would be tricky do to GUIs over remote, and Open GL would probably have to be local.

    Of course, there are some caveats... Developing in a Lisp is like working in another OS running on top of the host OS (especially with multiple threads). Also, Emacs doesn't have a drag-and-drop GUI builder, although one could be built in Common Lisp. And, you would have to develop a taste for parentheses. :)

    --
    --WH--
  23. Obvious answer to all such questions by TLouden · · Score: 4, Insightful

    When it comes to FOSS there is no Ultimate, Best, Top, Only, or other perfect solution.
    There are MANY excellent solutions which provide different pros and cons, to be considered by the potential user.

    You must be recently freed of Windows where you are simply told what you want, here in the world of FOSS you have choices.
    Reminds me of a lady who came to the US from Russia some twentyish years ago, when she saw a grocery store with CHOICES she flipped, couldn't handle the concept.

    --
    -Tim Louden
  24. Question Answered by Eideewt · · Score: 5, Funny

    Interesting... when I first looked at the comments there were a few for vi and none for Emacs. Now there are many more Emacs votes.

    So I guess we've finally found out which editor is faster.

    *Disclaimer: I like Emacs, really. It's taking up 40% of my screen right now.

    1. Re:Question Answered by yukonbob · · Score: 2, Funny

      Interesting... when I first looked at the comments there were a few for vi and none for Emacs. Now there are many more Emacs votes.

      So I guess we've finally found out which editor is faster.


      ...or which editor has people busy getting work done, and not posting to slashdot :P

      -yb

  25. Re:Don't write off simple tools until you know the by orasio · · Score: 4, Informative

    I am a joe fan, just a simple console editor and nothing else. I tried Emacs, and I liked it.
    Now I'm using Eclipse for Java, and once you understand how it works, there's just too much to gain from it.
    I don't browse the code, I navigate it. I don't navigate to files, I search for them. Go to declaration, forward and back editor navigation, automatic javadoc, automatic class and member creation, method extracting (yay!) are all features that, when combined, make an IDE that actually helps you build better code, faster.
    Of course an IDE does get in your way, but Eclipse gives so much that it's worth it.
    Debuggin with eclipse is great, it's the first debugger I'm actually using and liking since turbo pascal 5.5! (the VB6 debugger, I didn't enjoy that much)

    I understand that CDT doesn't have as many features as the java stuff, but I think that going to Eclipse would be a good investment for anyone. You just need to adapt to it, and discovering features is not that difficult, you can start by printing a cheatsheet.

    I'm sure emacs can do most of this stuff too, and way faster, but it does take more commitment.

  26. Strange Contendor. . . by treak007 · · Score: 4, Informative

    Surprisngly, Netbeans has a really good C++ plugin. After many hassles and much searching for a good IDE, I have found that KDeveop is ok. Eclipse is decent at best. Anjuta tries to generate too much code. Currently, Netbeans works the best for me. It doesn't try to generate code, it has some intellisense features (if you liked that in M$ VS), and you can use a free collaboration account on sun's collaboration server, which can be very useful.

    Emacs or Vi is really nice for development, but neither of them are an IDE.

    --
    Klingon Software is not released, it escapes, inflicting terrible damage onto the enemy as it does
  27. it could work by r00t · · Score: 2, Funny

    If you're so die-hard that the built-in vi isn't real enough for you, why not?

    Emacs can open a window for shell commands or to do a compile. Running vi is certainly something you could do. You could even bind it to a key.

  28. Re:Don't write off simple tools until you know the by Abcd1234 · · Score: 3, Insightful

    When a tool provides me a better view of how my program works, it's worth using.

    No offense, but if you need a tool to tell you how your program works, you've got bigger problems. Even in multithreaded code, with sufficient diagnostic output, you should be able to solve any bug. In all my time as a developer, I have yet to come across a bug that can't be solved by developing a mental model of the code (usually with the help of extensive telemetry) and working through things logically.

  29. found your problem by r00t · · Score: 4, Insightful
    "The fact that I do not have these tools integrated in an environment similar to something like Visual C's means I have to do a lot of switching between terminal sessions."


    Rethink your desktop, abandoning the Windows-like defaults you were given. Do like the UNIX workstation users. Example:

    Put a thick (50 to 60 pixel) gnome task bar at the bottom. Eliminate the one at the top. Put a 5x2, 4x2, or 3x2 virtual desktop selector thing on the task bar. Set your window policy to the traditional UNIX-style focus-follows-mouse. Never ever minimize, maximize, or roll up a window; simply spread them across the virtual desktops. You should use the traditional xterm, white on black, with the default font. (80x70 characters is good) A sharp LCD (native resolution, digital connector) is strongly suggested, at a minimum resolution of 1600x1024. Choose a fast-starting editor: original vi, joe (like WordStar), microemacs, or even (ick) pico. Linus uses microemacs; the source is on the kernel.org site probably under the name uemacs. Never use the file manager or file selector if you can possibly avoid it.

    That's what the real hackers use, at least when the hardware is available. It's an upgrade from the "screen" program or the Linux console virtual terminals, without much change to the tried-and-true work habits.

    You don't have to go with that exactly, but it's clear that your current setup isn't working for you. An IDE is a workaround, not a proper fix. An IDE only helps with one very specific task. A proper fix will make you more efficient at many other tasks. You might even start to like the gimp (zillions of windows instead of tabs) or set your web browser to open windows instead of tabs.

    BTW, learn the extra tools. Valgrind usually whips gdb. You may also like ltrace, strace, nm, eu-readelf or readelf, oprofile, etc. Rarely will you find an IDE button to make these tools run. Learn the shell, really: you can do loops right on the command line, backtick substitution, etc.

  30. editing 20+ files is not hard by r00t · · Score: 2, Insightful

    I do this all the time, using a simple editor which is similar (text-only, fast-starting) to vi.

    I just open 20 or more xterm windows.

    Probably that seems insane to you. It is, if you don't free yourself from the Windows-style desktop. I can deal with dozens of windows with little effort by setting up a traditional workstation-style environment:

    a. focus-follows-mouse, not click-to-focus
    b. never minimize, maximize, or roll-up
    c. 6 to 12 virtual desktops (use them all)
    d. never use the GUI file manager or desktop icons
    e. traditional xterm, white on black, default font

    You'll want a native-resolution LCD (digital connector, not VGA connector) of at least 1600x1024. Go with 2560x1600 if you can afford it.

    BTW, if you really need to actively edit all those files, see if the task might be scriptable. The sed and awk commands are great. You can use perl too, right on the command line instead of with a script file.

  31. Re:Anjuta! by MeltUp · · Score: 3, Informative

    I agree, on Linux, I haven't seen anything better than Anjuta. I don't program GUIs however, I usualy create network applications.

    KDevelop really annoyed me a lot, it was unusable for me.
    Eclipse is great for java, but for C or C++ it really let me down.

    Anjuta isn't perfect (but no other IDE I've ever seen is anyway), but overall it does most of what I want perfectly.

    --
    Computers are useless. They can only give you answers. -- Pablo Picasso
  32. Re:Don't write off simple tools until you know the by david.emery · · Score: 4, Insightful
    But I will say that, without exception, all the best developers I've known in my career (yes, every single one of them) work with a text editor and a shell window.

    That's my experience too, actually. And it's also the way I worked back when I pounded code for a living, working with (actually working around) the big Rational APEX IDE, this on a project with well more than its fair share of studly coders.

    I also fully agree with those who have emphasized code reading/understanding as the critical activity in software development. Things like ctags were a really important development. At the same time, I've emphasized the readability of the running text itself. I've heard some advocate that "the IDE will locate cross-references, etc for you" implying that all developers will have equal access to the IDE -and- the IDE will be fail-proof in finding cross references/relevant related information through its own code understanding. Rather, I think that the one-and-only thing you're guaranteed to get in a maintenance situation is the source code, so source code must stand alone in its ability to be understood.

    dave

  33. Its called vim by pestilence669 · · Score: 3, Insightful

    Conversely, vim also has all of these features and more. If you're coming from emacs, you can set vim to use emacs-style keyboard bindings, if you wish. Some emacs-style completion is supported by default.

    My colleagues and I had an all out war (emacs vs. vim). In the end, we discovered that they are both just as feature complete and able to emulate each other quite well. Emacs could be a tad more efficient, as it requires more RAM, disk space, and CPU time than vim. It's a non-issue if you have enough resources. For us, it was an issue (flash drive).

    In any case, if you are willing to invest the time to master either emacs or vim, I think you'd be best served. Graphical IDE's are often easier on the eyes, but I've yet to find one as customizable. All the features you'd ever need can be had in either of these two editors and they really are superb at what they do.

  34. Traitor! by alienmole · · Score: 2, Funny

    What happened to your previous declaration "as a Jaffa"? Couldn't resist the Ori-worshipper mod points, huh??

  35. Re:Microsoft IDE is like a bad rash by ardor · · Score: 4, Informative

    If you think the Visual Studio is a good environment there is no hope for you.

    Stuff your arrogance where the sun doesn't shine.

    I for one have been using Visual Studio for more than six years. I used 6, 7 and 8. 6 IS crap, yes. But the rest of your posting radiates ignorance. The typical UNIX way (make/emacs/vi/shell) is not The Way To Enlightenment. I don't use VS for code generation, I use it because it automates stuff I just don't want to handle all the time. Building? One click. Debugging? MUCH easier than with gdb. Quick overview & access to all files? Done.

    I do develop for Linux, too, and it constantly bugs me that I have to switch to the shell, type make/scons/whatever, see the error output, switch back to the editor, look for the file in the file requester, open it, switch back to see the exact error, switch back to the editor.... vi and emacs are damn confusing, gvim is ok, but doesn't have a file overview panel like VS has. My favourite editors in Linux are kate, nedit and gedit, but none of them have all helpful tools VS has. Oh, and then there is gdb. Debugging multithreaded stuff with gdb - yeah right. gdb often simply misses breakpoints, does not find the source (even when I specified the exact path in the source command), watching variables is unnecessarily difficult etc. gdb is an absolute nightmare to use. ddd is better, kdbg is best, but debugging is one of the things where an IDE shines: since it has knowledge about the overall project structure and the files it consists of, debugging can be much easier. Then there are additional benefits, like refactoring tools (mostly in Java IDEs though - see IDEA).

    --
    This sig does not contain any SCO code.
  36. Code::Blocks by Tychon · · Score: 3, Interesting
    Since I haven't seen it mentioned yet (of course I'm lazy and haven't read everything), figured I might as well throw out Code::Blocks. It's a lightweight GUI that offers a plugin system, enabling you to add any features you should want beyond the defaults. As copied from the site:
    • Syntax highlighting, customizable and extensible
    • Code folding for C++ and XML files.
    • Tabbed interface
    • Code completion plugin
    • Class Browser
    • Smart indent
    • One-key swap between .h and .c/.cpp files
    • Open files list for quick switching between files (optional)
    • External customizable "Tools"
    • To-do list management with different users
  37. If it's worth money to you... by marynya · · Score: 2, Informative

    Visual Slickedit is the best by far but you have to pay for it. I have used the Windows version professionally for decades and bought the Linux version when I got my first contract job using Linux. If you are doing serious programming, it is unbeatable. It is complicated enough to require some study to master it. It can be configured to work as a front-end for any command-line tools and the Linux version comes set up for all of the usual ones. It analyses program structure, parses compiler error messages and references them to the source text, etc. It does an excellent job of organizing large projects involving hundreds of files and many modules. http://www.slickedit.com/ Mike

  38. Re:If you must... I must by Douglas+Goodall · · Score: 3, Insightful

    Regarding Visual Studio and Microsoft programming in general. I use Visual Studio when writing code for Windows, but I dislike it for one of it's major strengths. I have heard it said that very few people really understand WIndows, and that most Windows programming is an exercise in cutting and pasting bits of code from a book, or the web, or whatever. There are several things I hate about Visual Studio. The first is the project wizards. They ask you a bunch of questions about the program you want to write, then generate 28000 lines of code. When compiled it has the look and feel of a windows program. A menu, populated with submenus and everything. That's the good news. The bad news is that you have to sit down and comprehend 28000 lines of code before you can take the next step. Assuming you still remember what the program was supposed to do. You immediately have a todo list of hundreds of things and you only just got started. You are already way behind. The second thing I hate about Visual Studoio is the Class Wizardry. If you really do understand Windows, you can sit down and hit a thousand buttons in a row, and write a complete program. I believe there are some people who can do this, but I never met them. What I hate the most about the wizards, is that their functionality is inscrutable. They touch a thousand things behind your back, and speaking of back, you can't back up. Using wizards is a one way deal. If you do need to back up, that usually means changing parts of the code by hand, that screw up future use of the wizards. Then there is the problem that the projects settings are kept in binary files, and there are so many binary files in a project, that its difficult to use source code control tools with any comfort. That's why I still enjoy programming with Makefile at the command line over using the Microsoft IDE. I know it's powerful, but too powerful for me. VS IDE is hooked right in to their knowledge base, but most of the knowledge base talks about ancient history like millenium edition or Windows 95. The minute you start using VS, the list of things you don't know starts expanding exponentially. I think I have said enough. Does anyone else have an opinion about something better?

  39. Use the Best by StarkII · · Score: 3, Interesting
    I have been developing professionally for over ten years in Unix and Windows. The best solution I have found is to do all of my development in Dev Studio and then cross compile for Linux. If you are not doing OS specific development it isn't very hard to do. After a while you learn all of the irritating little differences between Windows and Linux and start developing in a platform independent way naturally.

    Writing code in Linux is just as easy as writing code for Windows, but when it comes to debugging, there is just no comparison...Dev Studio smokes anything Linux has to offer by such a wide margin as to be embarrassing. It still astounds me that the Linux community has not come up with anything that can compare. I put this down to the whole OSS attitude of "Real Developers use VI/EMACS." Creating a top-notch development environment is extremely hard, and there are no good alternatives for Linux.

    That all being said, if you are doing Java development, Eclipse is easily a match for Dev Studio.

    --
    Jens Wessling
  40. Emacs excels at the basics... by jimmyfergus · · Score: 3, Interesting
    I was a one-time (pre-vim) vi power user, and switched to emacs for serious editing. The most important thing that emacs is good at, that vi(m) is kind of ok at, and everything on Windows is useless at, is ease of basic text editing. If you want to move the cursor around on Windows you have to take your hands off the home keys and use the arrows. Those who are used to Windows, or can't touch-type, will think this is unimportant. Others know better. Once you're comfortable in either emacs or vi, moving text around becomes second nature, and you don't have to engage the brain at all, even to coordinate locating the arrow keys, or worse, the mouse.

    Everything in emacs has a long learning curve - learning the keys, learning how to find out about the keys..., but it is mostly effort that you can transfer outside of emacs. I thought perhaps I was swimming against the tide with emacs, having been forced onto Windows for my desktop for some time, but then I discoverd XKeymacs - now I can use the emacs keys in almost any windows app, so I can edit in Outlook, Word etc., as if it's emacs. I only need to know one interface, and it's the most efficient one I've found. Almost all applications now appear to have "emacs lite" embedded in their edit areas.

    Ironically, I installed Ubuntu, and found that most apps there used the windows keys (I know this must be an editable setting, but I haven't looked yet). So, as a hardcore Emacs user I'm actually much more comfortable on Windows than Ubuntu!

    1. Re:Emacs excels at the basics... by Vasilis+Vasaitis · · Score: 2, Informative
      Ironically, I installed Ubuntu, and found that most apps there used the windows keys (I know this must be an editable setting, but I haven't looked yet). So, as a hardcore Emacs user I'm actually much more comfortable on Windows than Ubuntu!

      For most GTK+ apps (which is probably the majority in the default install of Ubuntu), you can get Emacs keybindings by adding the following line to your ~/.gtkrc-2.0:

      gtk-key-theme-name = "Emacs"

      This used to be the default in GTK+ 1.x, but then the GTK+/GNOME people decided to change this as part of the quest to make GNOME more "user-friendly". Ironically, the users they strive to befriend are Windows users rather than long-time Unix / GNU users...

      --
      Vasilis Vasaitis
      Late readers: please moderate at Newest First, with a low threshold, to promote late writers.
  41. The Ultimate Linux Development Environment by Greyfox · · Score: 2, Insightful
    Is a programmer who understands the code base and system he's working in. Editor doesn't matter. Make system doesn't matter. IDE doesn't matter. If you understand the code base you know which files do what. If you understand the code base you can import objects from other parts of the diretory tree from memory. If you understand the code base you remember at least the most common parts of each object's interface and often the more esoteric ones if you wrote them. A good programmer will quickly optimize whatever tools he has available for the job at hand.

    I personally find that IDEs make it far too easy to navigate around the code base, preventing me from ever really learning how things fit together. If you can memorize how things fit together from within an IDE, more power to you. I also feel that it's important to be able to perform various tasks without an IDE because eventually you will find yourself in a situation where you are not able to use the IDE (Going to the desk of a co-worker who doesn't have the IDE, working on a customer's site with whatever software they decided to provide you. etc) and if you don't know how to do things outside the IDE then you're pretty much lost. If you use the IDE as a crutch to avoid learning the tools that are available on the system, perhaps a career in marketing and sales would be more your speed.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  42. CodeForge by Hunterdvs · · Score: 2, Interesting

    Seriously, I'm suprised nobody has mentioned CodeForge yet. Seriously fast code completion lookup and tightly integrated support for source control won me over. Dl the free trial and check it out.

  43. KDevelop by Corwn+of+Amber · · Score: 2, Insightful

    1. It Works
    2. Qt
    3. You can use Embedded Vim if that's your thing

    Reasons enough for me never to come back to the stone age.

    OTOH, if you can live with Emacs, it can be used as an IDE. (And an distro, too.)

    --
    Making laws based on opinions that stem up from false informations leads to witch hunts.
  44. Unique to Linux: debugger able to step /backwards/ by greglaw99 · · Score: 3, Interesting

    Have you seen UndoDB? It's a debugger, able to step Linux programs /backwards/ as well as forwards. Microsoft might have lots of eye-candy with Developer Studio, but with this tool Linux developers have a tool that lets then debug in a whole new way (and let's face it: most of us spend most of our time debugging, one way or another). It uses gdb as a front-end, and adds backwards versions of commands like next, step, finish. It's also able to rewind the program to an aribtrary point in its history. Disclaimer: I am one of the tool's authors.

  45. QuantaPlus by v1ncent · · Score: 2, Informative

    I'm a big fan of Quanta Plus. Very nice for web developers/coders. --Vince--

  46. Large C/C++ project? Anjuta vim MSVC by slapys · · Score: 2, Informative

    I am working on a small (around 40,000 lines) 2D platform-style game in C using the Allegro library. I started the development last year in MSVC 6, because that was all I knew (before switching to Linux). Now that I use Linux, I learned vim, and enjoy it immensely for smaller projects, Makefiles, etc. Even though I found vim's taglist plugin, which allowed me to navigate between functions quickly like I had been used to, I found it insufficient for my needs. Eclipse CDK sounds nice, but I stopped trying to use it after about a half hour because it was far too bloated for my Dell laptop with a Celeron processor. I eventually settled on Anjuta, which I find amazing. I like how you can have it list every function in your project (distributed across multiple source files even) listed alphabetically on the left side. Autocompletion is nice, saving me typing time, and one key build + one key execution = saved time as well. I discovered Code::Blocks from this thread, though, and will investigate.

    In the end, if I'm developing in C, I use: vim for smaller files, because it is better at moving text around, Anjuta for larger projects, because it is better at navigating through all the files/functions, and MSVC if I HAVE to because I'm on a Windows Only environment where I can't install anything else (like work!). The End.

  47. GNAT Programming Studio by Anonymous Coward · · Score: 2, Insightful