Wednesday, April 02, 2008

Real Python IDEs

After reading a blog post titled "The Abysmal State of Python IDEs" (which I won't link to because it's minformative, but it's easy to google by title), I wondered how the author managed to pick such a lousy group of IDEs to try. He tried "ActiveState" (does he mean PythonWin?), DrPython, SPE, and ScrIDE, only one of which is in the top 10 google hits for Python IDE.

The google top 10 include Eric, Wing IDE, Radio Userland, SPE, PyDev, and Komodo. The Yahoo and MSN top 10s are similar. Except for Radio Userland, this is a much better group to start with, and one that in fact does include what I think are the only 3 Python IDEs worth trying.

So how does a newbie end up picking such a lousy group of IDEs to try? The only likely possibility seems to be that he went to the top google hit, the python.org wiki page. Or possibly he went off of the top MSN hit, the c2 wiki Python IDE page. Both are (rather, were) heaping wads of products that mostly weren't IDEs at all, or were IDEs for other languages that happened to include Python syntax coloring.

Syntax coloring and maybe a Run button doesn't qualify you as a Python IDE in 2008, guys. (Sorry, IDLE.) Integrated means you need to integrate something nontrivial, preferably a debugger, although gui builders can also count.

So I organized the python.org IDE page by feature set and moved the non-IDEs to the Editors page, even if a pedant would note that they were IDEs, just not really for Python. That's not what 99.9% of people are looking for when they go to a Python IDE page, so let's be useful rather than pedantic. I also elided the non-IDEs from the c2 page.

26 comments:

Anonymous said...

Good job, thanks!

Brian Luft said...

FYI - ActiveState is the company that produces the Komodo line of products.
Personally I think Komodo Edit is pretty slick, although it's not an IDE.

projecktzero said...

Komodo comes in a couple of flavors: Komodo Edit which is free and Komodo IDE which cost $$$. Check out the features at the Activestate site.

Anonymous said...

which do you think are the best for development on Linux - other than vim/emacs

Patrick Braga-Henebry said...

out of curiousity, what are the 3 best IDEs that you mentioned, and what is your preference among those?

Jonathan Ellis said...

Brian: Yes, Komodo would be a logical conclusion at first but if you read the comments he did not try Komodo until later.

Patrick: I consider the ones in the top category on the new page (introspection-based completion and debugger) to be the best, so (alphabetically) Komodo, PyDev, and Wing. I use Wing myself but if you are on a budget I think it is hard to beat Komodo Edit, and for $30 PyDev + Extensions is very compelling if you can put up with Eclipse.

Anonymous: any of those three work well on Windows, OS X, and Linux. The only caveat is that Wing requires X to run on OS X (but not Windows).

Patrick Braga-Henebry said...

thanks much,
much of my classwork is in Python and I've been jumping back and forth between IDLE and Notepad2, and it sure is painful.

Alcides said...

So textmate counts as an IDE?

Anyway, Visual Studio is also a cool IDE for Python, but it will only be useful if you pick IronPython flavour. Although today not all Python programs run on IronPython, that is one of the targets.

Jonathan Ellis said...

> So textmate counts as an IDE?

I may be mistaken, but my impression is that textmate does not have either introspection-based code completion or an integrated debugger or an integrated gui builder. So no.

Bill Mill said...

Do you consider IPython to be an IDE? I do, just a non-traditional one that offloads editing.

Jonathan Ellis said...

IPython is very useful but it is not an IDE by any reasonble definition, even ones much more permissive than mine. :)

Tim said...

One can run Eclipse + PyDev for $0 and it's actually a rather good python IDE. I know a lot of people really hate Eclipse, which I can understand (although I think it's gotten a lot better recently), but personally I do lots of java and not as much python, so it's perfect for me. I haven't tried the PyDev extensions, but just plain PyDev is free and is really useful on its own.

Paul R. Potts said...

"So how does a newbie end up picking such a lousy group of IDEs to try?"

Well, this newbie* doesn't necessarily want to try to reconstruct the chain of Googling that led to picking these, but it had something to do with the Google search terms "python IDE macos X free." I did definitely look at python.org Wiki.

I had previously been using PythonWin, which is what you get from ActiveState if you look for a Python tool that isn't Komodo, but it isn't cross-platform.

Anyway, kudos for putting together yet more resources. My original post certainly brought out a surprisingly large number of comments.

*It feels a bit odd for this 40-year-old software engineer to be termed a newbie... but to Python, I guess it is technically correct.

Stephan Deibel said...

Thanks for cleaning up those wiki pages. That was sorely needed!

Anonymous said...

Great Job, but you make PyScripter sound as if it's something just for Delphi. It's not, and its my IDE of choice right now, and I have tried just about everything going (Non Commercial).

What really suck, are the gui builder IDE's. BOA is the only (open source) one of note, but the project seems to have died :-(

francois said...

""" What really suck, are the gui builder IDE's. """

I agree...

I've seen so many people coming to Python, loving the language and then ask where the GUI designer is ("you know like in Visual Studio"?)
I understand it is very hard to make a reasonable GUI designer but strangely the Python community doesn't seem to care.

As much as I love Python/WxPython when it comes to make rich/complex GUI there's no way to stay competitive "with deadlines" while staying with Python. I found that learning C# and use Visual Studio C# express made me lose much less time for GUI centric projects. Ironic. I think Python won't gain lots more adoption in the future because of this lack.

Concerning Python IDEs I was using SPE but moved away since there's no more support/builds on windows. Tried PyScripter which was fine but had problems to kill properly python scripts/app launched from it. Tried komodo edit which lacks many features I need.

I've finally settled to the free pydev which I really find excellent.

I didn't use Eclipse before so It was a little weird to install properly first (Eclipse was made for static languages) but after that it was just happiness. Also the next version of PyDev will have the missing interactive console in the IDE (thanks Fabio!).
http://pydev.blogspot.com/2008/03/interactive-console-in-pydev.html

Would be paradise with a GUI designer :)

Steve L said...

"""Would be paradise with a GUI designer"""

Francois: Since you like PyDev show much, and are hankering for more (like a GUI designer), you should consider supporting the author by actually paying for PyDev Extentions.

This isn't a comment to you specifically, but I think it bears repetition every now and again. Good work should be rewarded, even if it's being given away for free.

Dan said...

Nice job! It's little things like this that make a difference.

Anonymous said...

Just a note on Komodo Edit (after reviewing the editors page), it is Free and Open Source, largely under the same tri-license as Firefox, except that we use a lot of 3rd party components that are under various OSI licenses. "OpenKomodo" is just the project with the source repositories, Komodo Edit is the build from that.
Regards,
Shane Caraveo (ActiveState)

francois said...

@ steeve L:

I agree (I made a donation to stani SPE when I used it), and intended to do so for PyDev that I use now, in fact I've just done it :)

Never-the-less, for such a complex/strategic task as building a good GUI designer I think that the PythonSoftwareFondation should also promote/support it in a way or another if we want it to happen.

Anonymous said...

@francois:
What do you mean by SPE not being supported on Windows? I'm running SPE 0.8.4.d on windows right now.

francois said...

@ Anonymous

""" What do you mean by SPE not being supported on Windows? I'm running SPE 0.8.4.d on windows right now. """

Yes me too I was but as I said above : " there's no more support/builds on windows."

Unless I'm mistaking the last build for Windows is version 0.8.3 from october 2006:
http://developer.berlios.de/project/showfiles.php?group_id=4161

If you know of a newer one please let me know.

Stani switched to Ubuntu a year ago I think. So obviously it's still possible to svn checkout the code but it doesn't have the same level of 'OS integration' as a proper installer and also SPE was the Python IDE I was advocating to beginners (who don't yet know what a svn is).

francois

Ralf Schoenian said...

Please consider Ulipad (http://code.google.com/p/ulipad/) for your IDEs. It is a great editor dedicated to Python and supports anything you need - except gui building. Some of its features:
Syntax colouring/check, autocompletion, calltips, class browser, integrated shell, bookmarks, easy memo, code snippets,sessions, subversion support, ftp client, live regular expressions, debugger, todo list, ...
I use this great editor for private projects and also at work

Sean said...

So is there any decent ide that incorporates a gui builder? Free, open source or not, I don't care.

I am looking to learn a new language, but I am frustrated by the lack of ecosystem and decent ides for Python et al.

jonathan lim said...

Thanks for the info.

riots said...

"So is there any decent ide that incorporates a gui builder? Free, open source or not, I don't care.

I am looking to learn a new language, but I am frustrated by the lack of ecosystem and decent ides for Python et al."

Me too. Any suggestions?