Slashdot Mirror


Programming Tools You've Used?

crazy_speeder asks: "I'm looking for programming tools for the whole development cycle, including documentation. The project I'm working on will use C++ and Java. What has been your experience using tools like C++ Builder, Netbeans, Eclipse, JBuilder, Doxygen, ClearQuest, Rational Rose, g++, and any compiler, debugger, or IDE that you may have used. I need tools that will handle auto documentation, unit testing, design, file editing, and the like. As far as platform goes, Linux is the target OS while Linux or Solaris will be the host OS."

3 of 179 comments (clear)

  1. Re:Sutff I use by Otter · · Score: 4, Informative
    AFAIK, there's no good, freely available C++ IDE for Linux/BSD/Solaris.

    KDevelop

  2. Use open tools only! by rjh · · Score: 4, Informative
    Here's the big thing: only use open tools.

    What happens three years down the road when Management decides not to renew the Rational Rose license? What happens when IntelliJ stops supporting your version of IDEA and you have to upgrade with money you don't have? Etc.

    Use only open tools. Open-source is best, of course, but anything that uses completely documented file formats and has tools for exporting to other formats is acceptable.

    Don't let yourself get nailed with vendor lock-in. That's a bad, bad place to be. Better to use slightly inferior tools which are open than to lock yourself to a vendor.

    That said, here are the tools I find myself using again and again:
    • C++
      • jEdit is a Java programmer's editor with excellent C++ support. I do development on Linux, Win32 and MacOS X, so it's very nice for me to have one editor I use on every platform. jEdit's not as featureful as, say, Emacs, but it's considerably more friendly to use.
      • Boost. If you're writing C++ and you're not using Boost, you're committing a crime against yourself.
      • Python. With Boost's Python library, it's easy to make your C++ applications scriptable. Write the heavy lifting parts in C++, then make those parts callable from Python. Do the rest of your development in a far safer, more sane language. You get almost all of the speed of C++, and far fewer headaches.
      • SWIG is another tool that's excellent for creating scriptable C++ applications.
      • Subversion for your version-control needs. Nothing else will do.
      • Doxygen for all your documentation needs. Learn it, love it. Your code's not done until every public part of the API has been doxygenated.
      • The GNU Autotools are really, really awful. They're also far better supported than Scons or pick-your-Autotools-replacement. Get ready to feel the pain of m4 macros. Sorry. :(
      • The GNU Compiler Collection started getting a good C++ compiler around version 3.0. I've been quite favorably impressed with 3.3, and I'm looking forward to 4.0. I don't recommend it for Windows, but for Solaris and x86 Linux it's beautiful.
      • I haven't found a good C++ unit testing framework yet. If you find one, please let me know.
    • Java
      • Eclipse is an excellent Java IDE. jEdit also fits the bill nicely, if all you want is an editor. I use both frequently, and am quite pleased with both.
      • Subversion again for your version-control needs.
      • jUnit for unit tests. Your code's incomplete unless you've written unit tests for it.
      • Javadoc for documentation. I would recommend Doxygen, but it's quite possible you'll be deploying your applications on machines that don't have it installed.
      • Ant for all your build needs.
    Hope all this helps.
  3. Re:vim by fvbommel · · Score: 4, Informative

    I do not have knowledge of how to compile Java using gcc ;)

    Click here to find out: GCJ ;)