Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×

What is the Ultimate Linux Development Environment? 643

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?"
This discussion has been archived. No new comments can be posted.

What is the Ultimate Linux Development Environment?

Comments Filter:
  • SlickEdit (Score:5, Informative)

    by naturaverl ( 628952 ) on Wednesday August 30, 2006 @08:08PM (#16012040)
    I use Visual SlickEdit 10 for Linux. http://www.slickedit.com/ [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.
  • If you must... (Score:3, Informative)

    by Otter ( 3800 ) on Wednesday August 30, 2006 @08:09PM (#16012047) Journal
    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.)

  • Re:KDevelop (Score:3, Informative)

    by Carnildo ( 712617 ) on Wednesday August 30, 2006 @08:15PM (#16012080) Homepage Journal
    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.
  • Re:SlickEdit (Score:2, Informative)

    by Anonymous Coward on Wednesday August 30, 2006 @08:23PM (#16012129)
    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.
  • Re:Eclipse (Score:3, Informative)

    by bunions ( 970377 ) on Wednesday August 30, 2006 @08:27PM (#16012148)
    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.
  • emacs (Score:5, Informative)

    by theCoder ( 23772 ) on Wednesday August 30, 2006 @08:37PM (#16012192) Homepage Journal
    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.
  • Re:If you must... (Score:5, Informative)

    by Coryoth ( 254751 ) on Wednesday August 30, 2006 @08:56PM (#16012290) Homepage Journal
    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 [sourceforge.net], 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 [sourceforge.net] decent [sourceforge.net] (choice of GTK theme used for screenshots not withstanding).
  • by orasio ( 188021 ) on Wednesday August 30, 2006 @11:01PM (#16012876) Homepage
    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.
  • by Anonymous Coward on Wednesday August 30, 2006 @11:14PM (#16012950)
    I was never big on IDE's always used vim, until recently I started using NetBeans for Java apps at work. NetBeans also has support for C/C++ using the GCC compiler on Linux. It has CVS support with subversion support on the way. Has a class browser, debugger and can use existing makefiles . Its written in Java so its easy to get up and running. Download it play around see if its for you. Screenshots::http://www.netbeans.org/products/cplu splus/screenshots.html [netbeans.org]
  • by treak007 ( 985345 ) on Wednesday August 30, 2006 @11:21PM (#16012980)
    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.
  • Re:Eclipse (Score:3, Informative)

    by Red Alastor ( 742410 ) on Wednesday August 30, 2006 @11:47PM (#16013091)
    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.
  • Re:KDevelop (Score:3, Informative)

    by kcbanner ( 929309 ) on Thursday August 31, 2006 @01:10AM (#16013464) Homepage Journal

    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

  • Re:KDevelop (Score:2, Informative)

    by larytet ( 859336 ) on Thursday August 31, 2006 @01:58AM (#16013642) Homepage
    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
  • Re:Eclipse (Score:4, Informative)

    by Darkforge ( 28199 ) on Thursday August 31, 2006 @02:36AM (#16013749) Homepage
    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.)
  • Re:Eclipse (Score:1, Informative)

    by Anonymous Coward on Thursday August 31, 2006 @02:45AM (#16013766)
    Unfortunately, due to the byzantine complexity of C++, those features require multiple man-years of effort for C++.

    It's probably doable if you forget templates, and punt on the more complex declarations, but C++ projects that don't use templates (at least through the STL and Boost libraries) are getting rare these days. The IDE still has to implement things like the overloading resolution algorithm, which depends not only on argument types but the namespaces of the arguments and the available functions...
  • Re:Anjuta! (Score:3, Informative)

    by MeltUp ( 633868 ) on Thursday August 31, 2006 @02:51AM (#16013779)
    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.
  • Re:Eclipse (Score:5, Informative)

    by Darkforge ( 28199 ) on Thursday August 31, 2006 @03:02AM (#16013807) Homepage
    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 [eclipse.org] 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? [eclipse.org] 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.
  • Re:emacs (Score:3, Informative)

    by ksheff ( 2406 ) on Thursday August 31, 2006 @03:19AM (#16013860) Homepage
    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.
  • Re:SlickEdit (Score:2, Informative)

    by IDontLinkMondays ( 923350 ) on Thursday August 31, 2006 @03:20AM (#16013867)
    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.
  • by Zigurd ( 3528 ) on Thursday August 31, 2006 @03:47AM (#16013950) Homepage
    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.
  • Re:SlickEdit (Score:2, Informative)

    by wanion ( 94098 ) on Thursday August 31, 2006 @03:59AM (#16013980) Homepage
    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.

  • by ardor ( 673957 ) on Thursday August 31, 2006 @04:00AM (#16013987)
    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).
  • Re:Eclipse (Score:5, Informative)

    by xtracto ( 837672 ) on Thursday August 31, 2006 @04:54AM (#16014142) Journal
    MMmm I dont know why I did not see anyone mention Code Blocks [codeblocks.org]. 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.

  • Re:If you must... (Score:5, Informative)

    by MORB ( 793798 ) on Thursday August 31, 2006 @04:55AM (#16014145)
    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.
  • by marynya ( 735459 ) on Thursday August 31, 2006 @05:34AM (#16014238)
    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/ [slickedit.com] Mike
  • Keep It Simple, ... (Score:2, Informative)

    by jandersen ( 462034 ) on Thursday August 31, 2006 @05:41AM (#16014251)
    In my nearly 30 years of coding computers of all sizes and shapes, I have reached the conclusion that there is a lot to be said for simplicity in your setup, no matter how big the project. I have found again and again that the most important concern is portability; even though you work on Linux, you live in a world of UNIXes and even Windows. So the following are my suggestions:

    1. Learn to use vi properly - not vim, but 'classic' vi. Or alternatively, use emacs. It is not that vim is bad, but it is not on all platforms. Being able to do my coding anywhere is something I have had enormous benefit from over the years. GUIs and syntax highlighting may be pleasing to the eye and look cool, but proper indentation is all you really need.

    2. Learn to use make properly. GNU make is probably the de facto standard now; it is certainly the same on all platforms. Put subprojects in subdirectories; it is very simple and efficient.

    3. Learn to use a source code control system properly. I prefer Perforce; it comes with a GUI interface if you must.

    4. Learn to code properly. This is not so much about algorithms or fancy coding, but about legibility. I always imagine I'm writing my code as an example for somebody to see how the current problem should be solved. I include comments that actually explain what and why rather than stating the obvious. I indent according to a rigorous model and I avoid unnecessary whitespace. Code should be read as literature, so don't put things in columns - that's for accountants.

    5. Learn to debug properly. I don't use debuggers at all - I used to, but stopped because I found the advantage was too small. Instead I rely on trace statements - yes, basically printf()'s. It is only in the very simplest cases that a debugger is effective. But whatever your preference, learn to do it properly; the UNIX debuggers are more or less equivalent, so I suppose there's no real need to stick with just one.

    - So why not an IDE? Well, mostly because you don't need it. It binds you to just one way of doing things and it isolates you from what is actually going on. If you are used to eg. Visual Studio, do you actually know what happens underneath it all? You will need to know from time, especially if you are going to write portable code. A better way, I find, is to have several xterms open, one for each task, more or less: one for building (with make), one for testing the program, and one or more for editing code.

    And before you start scoffing at my ideas, I can say that I'm far from being the slowest coder in my company.
  • Re:KDevelop (Score:3, Informative)

    by beef3k ( 551086 ) on Thursday August 31, 2006 @06:54AM (#16014431)
    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?
  • Re:Eclipse (Score:4, Informative)

    by Octorian ( 14086 ) on Thursday August 31, 2006 @08:17AM (#16014757) Homepage
    > 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).
  • by Vasilis Vasaitis ( 225376 ) on Thursday August 31, 2006 @11:20AM (#16016044) Homepage
    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...

  • QuantaPlus (Score:2, Informative)

    by v1ncent ( 997828 ) on Thursday August 31, 2006 @01:29PM (#16017223) Homepage
    I'm a big fan of Quanta Plus [kdewebdev.org]. Very nice for web developers/coders. --Vince--
  • by slapys ( 993739 ) on Thursday August 31, 2006 @02:09PM (#16017532)
    I am working on a small (around 40,000 lines) 2D platform-style game in C using the Allegro library [sourceforge.net]. 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 [geocities.com], 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.
  • by perdelucena ( 455667 ) on Thursday August 31, 2006 @02:39PM (#16017777) Homepage
    I for one vote on the Church of the Flying Spaghetti Monster [venganza.org]
  • Re:vim (Score:3, Informative)

    by thelenm ( 213782 ) <mthelen.gmail@com> on Thursday August 31, 2006 @03:18PM (#16018098) Homepage Journal
    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.

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...