In search of an editor/IDE
January 15, 2008 by kapilt
some editors and ide tools i’ve used along the way.
Editors
emacs
python-model, pdbtrack.el and loads of customizations of have suited me well for years. i have most of the keybindings for it wired into my fingers and reflex memory. it has served me well, in projects from large to small, and i’ve always come back to it, after trying out other development environments. the ability to drive multiple shells, and all the integration with standard unix development tools make it for me the gold standard. unfortunately, for all of that i’ve used emacs, i’m not a hard core emacs user. I’m not inclined to hack the lisp nesc, or for me to customize the environment on an ongoing basis to adapt to the way i work, because of my percieved cost of customization, which is what has lead me to explore alternatives.
eclipse and pydev
eclipse is a little strange to get into unless your familiar with the eccentricities of the full blown IDE mentality. whereby the ide sucks your code into some ‘workspace’, from wherever you point it to on the filesystem. customization beyond the builtin functionalities, requires programming the system in java.
for development of java projects, its hard to complain. if emacs is the editor os of the 80 and 90s, it seems that eclipse is destined to become the new os for the next 20 years.
wingide
has one of the best source completions and debuggers available for python. unfortunately its tied to the gtk toolkit, which is a great for single platform usage, but i find pales for anything approaching useable on platforms other linux.
eric3
the most comprehensive of the opensource python editors, its user interface has some notion of tossing in every feature under the sun into the user interface simulatenously. some creative editing of the preferences can mitigate this user interface nightmare, into something a bit more manageable. the source itself is fairly clean, owing i think both to good design and the elegance of the qt api.
supplemental tools
a collection of tools i commonly use when working on projects.
the python shell on steroids, useful tools for tab completion. personally i’ve typically use a lighter weight cousin of ipython, known as rlcompleter2 by holger krekel
buildout
a tool for creating and managing development and deployments. it allows for management of python eggs, as well as compilation of system environments.
ctags
a keyword extraction utility, that builds a symbol database for quick look up of symbols in files.
paster
a set of tools and libraries for wsgi application construction.
TextMate
i wanted to get together a blog entry and collect some ideas on things for extensions on textmate to help me being productive in a python/zope3/plone environment. There is an existing Zope.tmBundle from the collective which i’ve used as a starting point. Its got some good features.
some ideas
- command results dialog
- buildout parts executor dialog
- class browser
- prefix based file search dialog
- needs a corresponding buildout part
- some of the more advanced would require running a code daemon synchronous to the project. something to index the code/symbols, run tests,
- indexed symbol search
- find search
- wrap code for post mortem debugging (done)
- restructured text mode
- automatically run pyflakes when saving python
- open zcml file
- open import definition
prefix based file search dialog
it would needs a corresponding buildout part, to index the source.
ctags based completion
- found this one in the textmate svn bundles, required for zope developers
textmate restructured text mode
- also in the textmate svn bundles


