Why your python editor sucks

I'm doing a reasonable amount of python-coding work these days. It would help me to have an editor that doesn't suck. My requirements are:

  1. Small & Fast. I'm not after a massive clunky IDE, just an editor with enough smarts to make editing multiple python files easier.
  2. Sensible syntax highlighting.
  3. Understands python indentation, PEP8 style. Specifically, indents with 4 spaces, backspace key can be used to unindent.
  4. Can be integrated with one or more lint checkers. Right now I use a wonderful combination of pep8, pyflakes and pylint. I want the output of these to be integrated with the editor so I can jump to the file & line where the problem exists.
That's it. I don't think I'm asking too much. Here's the editors I've tried, and why they suck:

  1. KATE. I love kate, it's my default text editor for almost everything. However, there is no way to integrate lint checkers. I could write a plugin, but that's yet another distraction from actually doing my work.
  2. Vim. I'm already reasonably skilled with vim, and Alain Lafon's blog post contains some great tips to make vim even better. My problem with vim is simply that it's too cryptic. Sure, I could spend a few years polishing my vim skills, but I want it to just work. Vim goes in the "kind of cool, but too cryptic" basket.
  3. Eric. When you launch eric for the first time it opens the configuration dialog box. It looks like this:
    How many options do I really need for an editor? Over-stuffed options dialogs is the first sign of trouble. It gets worse however, once you dismiss the settings window, the editor looks like this:

    Need I say more?
  4. Geany. Looks promising, but no integration into lint checkers.
  5. pida. Integrates with vim or emacs for the editor component. Looks promising, although the user interface is slightly clunky in places. Pida suffers from exactly the same problems as vim does however, but I may end up using it.
There are a few options I have not tried, and probably won't:
  1. Eclipse & pydev. Eclipse is a huge, hulking beast. I want a small, fast, lean editor, not an IDE.
  2. Emacs. Can't be bothered learning another editor. Doesn't look that much different to vim, so what's the point in learning both?
  3. KDevelop. Same reason as Eclipse, above.

I suspect there's a market for a simple python editor that just works. Please! Someone build it!

6 comments:

Anonymous said...

Check out spyder, http://packages.python.org/spyder/.
I just picked it up a few days ago and it seems to do mostly what you might want from an IDE, there are a few small details missing but the main author is working on them. A nice benefit is that it has ipython integration, which allows for a simpler experience with the IDE. If you are running Ubuntu don't install it from the repository, you want spyder version 2, not version 1. Thanks for listening and give it a try.

Thomi Richards said...

Yes! Thank you!

Spyder is (so far) the best editor I have found. However, it's far from perfect... but with a little tweaking, I should be able to create a simple profile that gives me what I want and nothing more.


Thanks again.

philnext said...

May be PyScripter ? http://en.wikipedia.org/wiki/PyScripter

Thomi Richards said...

I'll be sure to check it out. Right now I'm using spyder, but it requires tweaking on every machine I install it on.

Hernan Grecco said...

I have just wrote a plugin for Kate:

https://github.com/hgrecco/KateCodeinfo

I is still in testing phase, but you could give it a try if you like.

Anonymous said...

I've tried many.
Sublime Text 2 is by far the best I have come across and now my favourite IDE.

http://www.sublimetext.com/2
http://kennethreitz.com/sublime-text-2-love.html
https://www.youtube.com/watch?v=TZ-bgcJ6fQo

The Youtube tutorial is time well spent.

Post a Comment