Being part of a company that uses Python, I have a friend who loves PyDev, an eclipse plugin that basically adapts the functionality of the eclipse IDE to Python. Even though I’m still an Emacs greenhorn, I swear my devotion to the text editor wouldn’t waver.

Until I saw what PyDev is capable of.

It’s actually quite amazing: PyDev basically provides practically every useful eclipse feature for python. The list includes, but is not limited to:

  • smart code completion with documentation
  • refactoring
  • code coverage
  • unit testing
  • automatic generation of methods and classes

Seriously, cheers to the devs who make this plugin: It’s fantastic. It’s definitely a tool that I would use completely if all I did was code Python.

But then I thought about why I was so vehement about switching from Emacs, even when I was faced with a simple, easy to use tool that does all the heavy lifting for me. And I realized it’s because I don’t just code Python.

In any given work day, here’s my list of things I do:

  • write services and tools in python
  • manage configuration files in XML and YAML
  • test deploys and verify using a bash shell or ssh

So all in all, authoring python code is not the only thing I do. It’s arguably not the major thing I do with my days either. What I need is a text editor that is complex enough to assist me with modifying files with complex regular expressions and easy file navigation, but also versatile enough to do quick file discovery, and run commands in a shell. Emacs can do all that. And if something else pops up in the future, maybe Emacs isn’t the best solution, but I know it’ll have something that’ll do the job. The advantage of having a single set of hotkeys, a single environment do all of my daily task from, outweighs the advantage for me of using a specified IDE. And if some day I switch languages, Emacs will most likely contain a suite of tools, that I can just plug and play, or I can write my own with a fully-featured programming language.

And I think, ultimately, this is why anyone really uses Emacs. It’s not only the problems your facing now. It’s knowing that you’re investing time into an environment that’s flexible enough to face your diverse challenges in the future.