Linux

10 Linux and open source developer tools you should not overlook

To take advantage of the excellent Linux development environment, you need to have the right tools. Here's a rundown of some of the best ones out there and the features they have to offer.

To take advantage of the excellent Linux development environment, you need to have the right tools. Here's a rundown of some of the best ones out there and the features they have to offer.


Linux is a great development environment. But without sound development tools, that environment won't do you any good. Fortunately, plenty of Linux and/or open source development tools are available. If you're a new user you might not know which tools are there, but worry not. Here are 10 outstanding tools that will help you take your development to another level.

Note: This article is also available as a PDF download.

1: Bluefish

Bluefish is one of the most popular IDEs for Web development available. It can handle programming and markup languages, but it focuses on creating dynamic and interactive Web sites. Like many Linux applications, Bluefish is lightweight (using about 30% to 40% of the resources that similar applications use) and fast. Bluefish can open multiple documents at once (up to 3,500 documents, if needed). It includes project support, remote file support, search and replace (including regular expressions), unlimited undo/redo, customizable syntax highlighting for many languages, anti-aliased text in windows, and multiple encodings support, among other features.

One of Bluefish's nice features is the Quickba, a user-defined toolbar that allows you to add buttons by right-clicking and choosing Add To Quickbar. You can add any HTML toolbar buttons to the Quickbar. Bluefish has a number of simple tools to help you add various elements to your code. Need a DHTML auto-submit select box? Easy. Choose Auto-submit Select Box from the DHTML drop-down and fill out the necessary items to add the element to your code. Bluefish has wizards for C, Apache, DHTML, DocBook, HTML, PHP+HTML, and SQL. If you develop your sites by hand, you should certainly be using Bluefish.

2: Anjuta

Anjuta is a free, open source IDE for the C and C++ languages. It's easy to install (urpmi anjuta on Mandriva, for example) and offers such features as project management, application wizards, an interactive debugger, and a powerful source code editor (with source browsing, code completion, and syntax highlighting). The Anjuta team developed this powerful IDE to be easy to use and still meet all of your C and C++ programming needs.

Anjuta has a flexible and powerful user interface that allows you to drag and drop the tools in the layout to arrange the GUI nearly any way you like. And each user-configured layout is persistent for the project (so you can have different layouts for every project you have going). Anjuta also enjoys a powerful plug-in system that allows you to decide which plug-ins are active and which are not for each project. And like all open source projects, you can develop your own plug-ins for Anjuta. One of the most powerful tools in the Anjuta application is the project manager. This tool can open nearly any automake/autoconf-based project. This project manager doesn't add any Anjuta-based information to the project, so your project can be maintained and developed outside of Anjuta as well.

3: Glade

Glade is a RAD (rapid application development) tool used to create GTK+ toolkit and for the GNOME desktop. Its interface is similar to that of The GIMP and can be customized and even embedded into Anjuta. Glade includes a number of interface building blocks, such as text boxes, dialog labels, numeric entries, check boxes, and menus, to make the development of interfaces quicker. Interface designs are stored in XML format, which allows these designs to be easily interfaced with external tools. Installing Glade is simple. For instance, when in Fedora, you can issue the command yum install glade3. Glade does not have as powerful a project manager as Anjuta, but you can create, edit, and save projects with Glade.

4: GCC

GCC is a GNU compiler that works for C, C++, Objective C, FORTRAN, Java, and Ada. It's a command-line tool but is very powerful. Many IDEs have tools that are merely front ends for GCC. GCC is actually a set of tools. The most used are the compilers for C and C++ code. How does one tool compile for different languages? Simple: For C, you invoke the "gcc" command and for C++, you invoke the "g++" command. Two compilers in the same toolkit. And g++ is a compiler, not just a preprocessor. It will build object code from source code without using an intermediary to first build C code from C++ source. This creates better object code and gives you better debugging information.

5: Kdevelop

Kdevelop was created in 1998 to be an easy-to-use IDE for the KDE desktop. Kdevelop is now released under the GPL and is free to use. It's plug-in based, so you can add and remove plugs to create the exact feature set you need. Kdevlop also includes profile support so that various sets of plug-ins can be associated with specific projects. Kdevelop supports 15 programming languages, with each having language-specific features. Kdevelop also offers an included debugger, version control system (Subversion), application wizard, documentation viewer, code snippets, Doxygen integration, RAD tools, Ctags support, code reformatting, QuickOpen support, and dockable windows and toolbars. One of the best things about Kdevelop is that it takes much of the low level tasks out of the hands of the users. Having to deal with make, automake, and configure can be cumbersome. Any good developer should know these tools, and Kdevelop includes an Automake manager to simplify their use. One other nice touch is that the output window of the complier is colorized, so it is easier to instantly see the difference between errors, warnings, and messages.

6: GDB

GDB isn't really a developer tool, but it is a tool that most *NIX developers (and many Windows developers) consider a must-have. GDB is the GNU Debugger. This tool is issued from the command line and will give a developer instant feedback from within another program while it is executed. Say you create, complete, and release an application, only to hear there are problems. To help you find these problems you can start your program from the gdb utility, which will help you discover where the problems are. With GDB, you can do the following:

  • Start your application specifying arguments, switches, or input that would affect its behavior.
  • Cause your application to halt on specified behavior.
  • Examine what has occurred when your application stops.
  • Make changes to your program so you can test on the fly.

GDB is also very handy to have when doing bug reporting.

7: KompoZer

KompoZer is an easy-to-use WYSIWYG Web authoring tool that is aimed at the nontechnical user who wants to create a professional Web site without having to know HTML. KompoZer has a number of outstanding features. One of the best features is the ability to open a Web site from a URL, edit that site, and upload the edited site. This allows for simple updating of sites without having to edit HTML. Of course, you will need permission to upload to a site for this to actually work. This feature is also good for using other sites as templates. KompoZer shouldn't be thought of as a beginner-only tool. Think of it as a free open source replacement for Microsoft FrontPage and Adobe Dreamweaver. And like its more costly alternatives, KompoZer can jump between WYSIWYG and code editing with a click of a tab.

8: Eclipse

Eclipse is a multi-language IDE, written in Java, with an extensive plug-in system to allow you to extend functionality.  Downloaded over 1 million times each month, Eclipse is one of the strongest forces in software development today. Eclipse is, in fact, the de facto standard for open source development. Probably the strongest aspect of Eclipse is the plug-in feature. In languages alone, Eclipse boasts 58 plug-ins. These aren't spoken languages -- they're development languages. On top of the rich environment, Eclipse has a huge community and plenty of organizations offering training in the IDE (which even includes an Eclipse University.)

9: Make

Make is a Linux utility that can automatically determine which pieces of a larger program need to be recompiled. Once make determines what bits need to be recompiled, it issues the necessary commands to finish the action. Make is often used when installing applications from source, so developers of open source applications should have a strong understanding of the make tool and how it is used. If you plan on developing an application that can be installed from source, you will need to know how to create a makefile. This makefile describes the relationships among the various files of your application and includes the statements needed to piece them together. If you're familiar with installing applications, you know the command string ./configure; make ; make install.

10: Quanta Plus

Quanta Plus is another HTML development tool, similar to Kompozer. Quanta Plus is capable of both WYSIWYG and hand coding and supports: HTML, XHTML, CSS, XML (and XML-based languages), and PHP. Quanta Plus features on-the-fly tag completion, project management, live preview, a PHP debugger, CVS support, and Subversion support (with a plug-in). Where Kompozer is aimed primarily at the nontechnical user, Quanta Plus is aimed at the more technical user who wants a good WYSIWYG editor.


What are your tools?

What advice or opinions can you share based on your experience with the tools we've looked at here? Do you have a favorite open source IDE not included in this list?

About

Jack Wallen is an award-winning writer for TechRepublic and Linux.com. He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website getjackd.net.

18 comments
elmakdi
elmakdi

As some already mentioned, this IDE is awesome. I often use it for PHP development; it integrates xdebug and supports many other languages. Down-part: it's written in java, so it's definitely for those with lot of RAM. Other promising IDEs seem to be QtCreator and MonoDevelop...

jslarochelle
jslarochelle

I use the following: Eclipse (main Java IDE) Netbeans (C++, Ruby and Groovy IDE) JEdit is my general purpose editor MONO Develop for C Sharp Dia for general diagram editing (UML, flowcharts, ...) Maxima when I need to do symbolic math JS

shannonb
shannonb

It's an avoid-if-possible tool hardly a "must-have". See Ant, Scons, MSBuild, CruiseControl.NET, etc... for build systems - suck.

Saurondor
Saurondor

For those who do Java development these are great tools to manage your project. On the IDE department. I prefer Eclipse. Have had better autocomplete experience with it than Netbeans.

Tischy
Tischy

Bluefish?! Come on - it keeps crashing for no aparent reason. I tried it few times and it was always the same story - crash after crash. At some point it developed a "custom" of crashing everytime I tried to open php file. I can see no benefit from using this program. It's better to stick to some oldschool text editor instead. Like emacs or vi. At least when emacs crashes (which is v. rare) you don't loose all your unsaved data. So please stop claiming how great this pre-beta bluefish is because its unreliable and therefore useless. To get some serious work done you have to work with reliable software. Bluefish is far from reliable.

aross
aross

+1 - these are excellent tools. We have some great free videos on make, gdb and more at http://fosslc.org

testtest
testtest

Wake up Jack most of these tools have been around for years and years, where exactly did you copy and paste this $hit from ? W

jra3345
jra3345

It disheartens me to not see Netbeans (http://www.netbeans.org) on this list. While I do agree that eclipse has a very large following and an absolutely fabulous list of endless possibilities, I fail to see how it leaves Netbeans in a shadow, and forgotten/unmentioned the vast majority of the time. Both are great IDE's and I don't believe that anyone is better than the other. I DO believe that one may be better suited to a project/individual than the other though. For example, if you wish to do application development and specifically want to work with Tomcat and Glassfish (https://glassfish.dev.java.net/ ), the I would say look at Netbeans, as it already sets these servers up for you. Other reasons to look at Netbeans include easy O.O.B. (out of box) setup. Sometimes I've noticed that Eclipse requires a bit more setup than Netbeans. One last final note, the learning trails (http://www.netbeans.org/kb/index.html) on the Netbeans site are fabulous, for new and experienced programmers. Just a quick look at some of the languages supported in Netbeans: {Ajax, C/C++, Databases, Groovy, Java EE, JavaFX, Java ME,Java SE, JavaScript, PHP, Python, REST , Ruby, SOA, SOAP, UML, Web, WSDL, XML} Sincerely, Netbeans-boy

jlclosed
jlclosed

What about Netbeans? And you also have QDevelop, a QT IDE, free to use. Also available for the latest QT there is brand new QT Creator. The list goes on... You have Gambas2 (a basic implementation), RealBasic (free for Linux users), Lazarus (a freepascal IDE similar to the well known Delphi). You also forgot to mention a old workhorse called Kommander creator, that is included in almost every KDE 3.5.x distro... I am sure I still did not mention every IDE, but these are the ones I did take a closer look at.

auzy
auzy

Looks like you just overlooked Systemtap, which is a linux compatible Dtrace-like program.

mike
mike

I've recently discovered Eric4,an excellent python ide that has plugins, code completion, code folding, a step by step debugger and a heap of other really usefull features!

joesmoeh
joesmoeh

Netbeans 6.5 all the way... Best when used with c/c++ under linux.. slap on jvi plugin.. you are set.. :O)

yates
yates

How can you mention gdb without also mentioning ddd? I've used ddd for years and it's indispensible!

allan.wylie
allan.wylie

Have used Oracle JDeveloper for years, and SQLDeveloper for the last year. Maybe I'm just familiar with both, but I've looked at other IDE's and have always come back to these two.

Jefph
Jefph

www.freepascal.org www.lazarus.freepascal.org both should be on the list as well I feel...