Oracle's NetBeans, like Eclipse, is an open source, plug-in-based IDE originally built for Java development, but extended to other languages. I tested version 6.8, with what was described as an "early access" version of the Python plug-in. (Because plug-ins are community-driven projects, Oracle could not provide a likely release date.) I tested NetBeans with Jython 2.5.1, though the plug-in claimed that it would also work with the Python 2.6 and 3.1 installations I had.

If you've already used NetBeans for development in one of the other languages it supports, Java, Ruby, Groovy, PHP, JavaScript, C/C++ and Fortran, then you'll have no problems finding your way around a Python project. NetBeans' multipaned layout places Project, File, and Service view tabs on the left. The first two are what you'd expect. The third includes databases and web services, depending on what plug-in you load, of course. I had installed Java plug-ins so that the services tab also included a Hudson Builders entry, Hudson being a Java-based build automation system. The database services tab was pre-installed with JDB-ODBC bridge, MySQL, and PostgreSQL. Beneath this is an object navigator pane, which gives a tree view for the current source file, showing each class, its methods, and instance variables.

NetBeans' editor supports code completion. Enter an object followed by . (a period) and the available methods and object attributes appear in a pop-up list. Select a method and, if documentation is available for the method, that is displayed in another popup window. To accelerate development, NetBeans has templates for both Python files and code snippets. At the time of this writing, there were only three file templates, but numerous code snippet templates. Not all of the niceties of NetBeans are active for the Python plug-in, however. For example, the only two refactoring commands available were "find usages" and "rename."

Oracle NetBeans

NetBeans has all the debugging features you'll need: breakpoint, watches, stack trace, and so on. It can handle multithreaded Python applications, and you can configure the debugger so that the file stops on the first line of execution. When you launch the debugger, it also opens an interactive console, from which you can enter Python commands in the context of the application being debugged. What is missing is remote debugging, which is not yet supported.

Beyond Python-related features, NetBeans also provides a diff tool, with rudimentary merge capability (that you should experiment with before attempting in the field). The base IDE has support for the version control systems CVS, Subversion, and Mercurial. NetBeans also provides a "local history" feature. This keeps track of modifications you've made to files, so you can step back in time to previous editions. You can even restore deleted files. By default, versions for the last seven days are tracked, though you can modify this duration in the preferences.


NetBeans' documentation for its Python components is limited. Most of the information, including a primer for using the Python debugger, can be found on the NetBeans wiki, but even that has several to-dos in it. Like Eclipse, NetBeans is good if you work in multiple languages and you need a squad of supporting tools on hand. However, the Python plug-in is still under development, and it needs work.