Editors and IDE’s
A while ago, I switched from Vim to Emacs. I did this for a couple of reasons. Mostly I was hoping to learn elisp which would enable me to make the editor do what I want, and avoid frustration with limitations. You can do similar things in vim, but vim script is uglier than home made sin. I wanted to avoid that if I could.
I didn’t exactly throw myself into elisp, and as a result had trouble making it do even minor things.
Yesterday I got to spend some time with David. He’s the only person I have ever met who is more chronically dissatisfied with software than I am.
We discussed some of our frustrations with emacs, and by the time the conversation was over, I had decided to play around with some other editors and see what is out there.
To be more specific, I don’t want just an editor; I actually do want an IDE. I have eschewed them in the past, but after using Eclipse and RadRails and most recently ecb with emacs, I really want a decent file browser. I’d also like integration with version control and perhaps some other things. Most of all, I want to script it in a language that I know, or could know pretty easily. I’d also prefer that language not be Python (that’s right, I’m a hater :).
This led me to looking at free IDE’s.
Recently it appears ActiveState made their Komodo Edit editor open source. I installed that last night and played with it until about 2:30 in the morning. It’s actually quite cool.
At this point I have only done a small sub set of tasks in it, so I am unprepared to give it a ringing endorsement, but it’s quite usable.
One of the things I find frustrating with IDE’s is the editor portion is usually quite poor. OpenKomodo has a vi mode which gives you access to a lot of the vi(m) commands you already know. That is clutch.
I still have a lot of things I want to explore, but so far I give it a Nathan Powell “Not horrible” award. I will try to put together something a little more coherent later. I just wanted to scratch out my first impressions here.
P.S.
I think I have found a bug though. In using Visual Block Mode (in command mode: C-v) the cursor highlights properly, but when you operate on the region it behaves like Visual Line. That’s too bad, as I like that feature in vi(m) a lot. Maybe I am mistaken and if you know what I am doing wrong, please leave a comment.
From a lazy programmer perspective, I only want to learn one editor. It should be able to do whatever I want, and its large community should support growth and diversity. The community should show surprising strength over time as I want this editor to be supported fifty years from now.
That means choosing from either emacs, vim, or eclipse. All three have huge, entrenched, warfare-ready communities of support which encourage users to customize their installation and support it. Beyond these three, the drop-off in numbers of users seems rather cliff-like.
Since the community encourages you to customize your setup, put the editor’s config in some form of version control. This also flips the “project” bit in your head, so that you start to view the setup as a project that you’re actively working with. If you use a client/server or distributed version control system, you automatically have remote backups for your increasingly valuable config.
Choose one editor for life and keep its config under version control.
Thanks for the note on OpenKomodo. I’ve recently heard of it, but didn’t realize it had been open sourced. I’m going to go try it out.