tags:

views:

486

answers:

6

I'm a beginning Python programmer, just getting my feet wet in the language and its tools and native practices. In the past, I've used languages that were tightly integrated into IDEs, and indeed I had never before considered that it was even possible to program outside of such a tool.

However, much of the documentation and tutorials for Python eschew any sort of IDE, relying instead on powerful editors and interactive interpreters for writing and teaching the language.

  1. How important is an IDE to normal Python development?
  2. Are there good IDEs available for the language?
  3. If you do use an IDE for Python, how do you use it effectively?
+1  A: 

The IDE you use is a personal and subjective thing, but it definitely matters. Personally, for writing short scripts or working with python interactively, I use PyDee available at http://pydee.googlecode.com/ . It is well done, fairly lightweight, but with good introspection capabilities.

For larger projects involving multiple components, I prefer Eclipse with appropriate plugins. It has very sophisticated management and introspection capabilities. You can download it separately or get it as part of Python (X,Y) at http://www.pythonxy.com/ .

TimothyAWiseman
+3  A: 
  1. How important is an IDE to normal Python development?

Not very, IMHO. It's a lightweight language with much less boilerplate and simpler idioms than in some other languages, so there's less need for an IDE for that part.

The standard interactive interpreter provides help and introspection functionality and a reasonable debugger (pdb). When I want a graphical look at my class hierarchies, I use epydoc to generate it.

The only IDE-like functionality I sometimes wish I had is something that would help automate refactoring.

  1. Are there good IDEs available for the language?

So I hear. Some of my coworkers use Wing.

  1. If you do use an IDE for Python, how do you use it effectively?

N/A. I tried using Wing a few times but found that it interfered with my normal development process rather than supporting it.

Vicki Laidler
+9  A: 

IDEs arent very useful in Python; powerful editors such as Emacs and Vim seem very popular among Python programmers. This may confuse e.g. Java programmers, because in Java each file generally requires boilerplate code, such as a package statement, getters and setters. Python is much more lightweight in comparison.

If you're looking for an equivalent to Visual Studio or Eclipse, there is... Eclipse, with Pydev.

Emacs and Vim are very powerful and general, but have a steep learning curve. If you want to use Emacs, I highly recommend python mode; it's much better than the default Python mode.

Bastien Léonard
Well, I prefer the default python mode in Emacs 23. But Emacs/Vim is for sure the way to go!
fengshaun
+4  A: 

A matter of habit and personal preferences. Me, I use vim (I have to admit emacs is at least as powerful, but my fingers are deeply trained by over 30 years of vi, and any other editor gives me the jitters, especially when it tries to imitate vi and never really manages to get it 100% right;-), occasionally an interactive environment (python itself, sometimes ipython), and on even rarer occasions a debugger (pdb). A good editor gives me all I need in term of word completion, lookup, &c.

I've tried Eclipse, its plugins, eric, and Kommodo, but I just don't like them -- Wing, I think I could get used to, and I have to admit its debugger is absolutely out of this world... but, I very rarely use (or need!) advanced debugging functionality, so after every rare occasion I'd forget, and have to learn it all over again a few months later when the need arose again... nah!-)

Alex Martelli
+1 for a fair review of the landscape
Jarret Hardie
A: 

(1) IDEs are less important than for other languages, but if you find one that is useful, it still makes things easier. Without IDEs -- what are doing? Always running Python from command line?

(2-3) On my Mac there's included IDLE which I keep always open for its Python shell (it's colored unlike the one in Terminal) and I use free Komodo Edit which I consider to be well-suited for Python as it doesn't go into the language deeply but rather focuses on coloring, tab management, parsing Python output, running frequent commands etc.

ilya n.
+1  A: 

In contrast to the other answers i think that IDE's are very important especially for script languages. Almost all code is bad documentated and an IDE with a good debugger gives you much insides about what is really going on what datatypes are assigned to this values. Is this a hash of lists of hashes or a list of hashs of hashs.

And the easy documentation lookup will save you time.

But this is only important for people who need to count there time, this normally excludes beginners or hobbyists.

Lothar