The Artima Developer Community
Sponsored Link

Computing Thoughts
Python IDEs
by Bruce Eckel
February 15, 2006
I often get questions, mostly from Java programmers, about IDEs for Python. In Java there's so much finger-typing that the language wouldn't be feasible without an auto-completion IDE, so it makes sense that a Java programmer would want one when using Python. And they exist, but I don't know many who use them.


Actually, when I'm writing code for a book I don't use an IDE even for Java. I've been tempted many times, but Eclipse, for example, required that you put everything in packages. In the first chapters of Thinking in Java, packages haven't been introduced yet so I can't use them (although I've heard that Eclipse can now just work with the Ant files, so a recent version might work with my code, which comes with automatically-created Ant files).

In addition, I am typically hand-crafting every line of code, so I haven't been as compelled to move to a Java IDE, although it is tempting. From listening to the Java Posse guys, for example, it sounds like Matisse inside Netbeans has finally -- after 10 years, with JavaBeans in the language almost from the beginning -- created a drag-and-drop GUI builder worthy of competing with VB. And in general the autocompletion, refactoring and general automation is certainly something I'd want on a project other than a beginning book.

As far as Python goes, the argument for an IDE is not so compelling. Most people I know just use regular editors. I think the reason is that Python is less verbose. The example I often give is to read each line from a file, which I can do in Python without thinking about it:

for line in file("filename.txt"):
    print line

In Java, it's a research project to open a file. In Thinking in Java 4e, I added a utility called TextFile to simplify the process, so you can say:

for(String line : new TextFile("filename.txt")) {

And you could probably memorize this easily enough, but it's not standard Java, alas (and there are other interesting ways to use the TextFile class). The point is that Java is more verbose and it really is necessary to have an IDE. But in Python, you can typically figure out what a class does just by using dir(), and you usually have to look up the docs anyway to know what a method does rather than just using it. The compulsion to use an autocompletion IDE is much lower, in my experience, and it seems true for the people that I know, as well.

I guess another way to put it is that productivity in Python is inherent in the language, whereas in Java you really do need the productivity boost that an IDE gives you.

That said, I would be curious as to the IDE (or Eclipse plugin, etc.) that people prefer for Python programming, and what they like about it -- especially if you think it improves your productivity.

Talk Back!

Have an opinion? Readers have already posted 68 comments about this weblog entry. Why not add yours?

RSS Feed

If you'd like to be notified whenever Bruce Eckel adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Bruce Eckel ( provides development assistance in Python with user interfaces in Flex. He is the author of Thinking in Java (Prentice-Hall, 1998, 2nd Edition, 2000, 3rd Edition, 2003, 4th Edition, 2005), the Hands-On Java Seminar CD ROM (available on the Web site), Thinking in C++ (PH 1995; 2nd edition 2000, Volume 2 with Chuck Allison, 2003), C++ Inside & Out (Osborne/McGraw-Hill 1993), among others. He's given hundreds of presentations throughout the world, published over 150 articles in numerous magazines, was a founding member of the ANSI/ISO C++ committee and speaks regularly at conferences.

This weblog entry is Copyright © 2006 Bruce Eckel. All rights reserved.

Sponsored Links


Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use