Now for some of my cows

/2007/Mar   thoughts, notes and mooo...

<  March 2007  >
SuMoTuWeThFrSa
     1 2 3
4 5 6 7 8 910
11121314151617
18192021222324
25262728293031
misc.

Fri, 23 Mar 2007 Changing editors?   >>

Big dilemma. Ditch J for Emacs?

J's been my text and code editor for like, more than seven years now. That's a long time. You can say J's editting features are engrained in my muscle memory by now. Quite literaly actually.

However, J is an obscure editor. Noone knows it. Well, except for a handful of adept users, sure, but nowhere near being surounded by a "community". The last official release was somewhere in 2004. And although there's still some development going on and I am working with a more or less up-to-date version from CVS, the main developer spends most of his attention to an Lisp implementation in Java.

And that's ok! I mean, there's no obligation to me for keeping the editor up-to-date of course! But the fact there's no real development anymore makes me feel a bit uneasy every now and then.

Then there's the Java issue. Well, it's not really Java issues per sé of course.

First of all, starting J is not particularly fast. Whenever an JVM instance has been started not too long ago (like, within the last couple of minutes), a new J instance launches roughly within 1 to 2 seconds. But whenever the filesystem cache lets go of the files that are in play, it can take as much as 10 seconds.

Second point is more of usability. It could very well be that I'll be working more in a Mac OS X environment, when I start at my new job. And J-on-OS-X is not very elegant. I remember from using J on my old Powerbook I was constantly fighting with fonts and menubar-locations and the Ctrl key versus the Command key (for cut/copy/paste/undo etc.)

I'm sure Java-based applications can be made to behave more elegantly on OS X, but it'll need some work. And then there's some other usability points as well: I'd like to have a better CSS mode, a better Javascript mode. Will the Python mode see an update now that Python-2.5 is released? I'd like to see improvements if it comes to buffer management (the buffer list on the left hand side doesn't cut it, and it takes up screen real estate, that I think can be used more efficiently)

And yet, there's the things I just do naturally: inserting elements in XML mode, it's just so easy. The great automagic indentation of code and markup works almost perfectly. The little things like Shift+<arrow down|up> to select the complete line, even if the cursor is not at the beginning of the line, Shift+<delete> to delete the complete line, regardless of cursor position, Alt+<arrow left|right> to move from buffer to buffer, Alt-x to easily invoke commands on the buffer, or just on a selected region in the buffer. Things I do and use without thinking about it anymore. And there's probably a bucket load more of these features - Ah, right! I remember one more now: the smart Home key: it does not just go to the beginning of a line, but it goes to the beginning of the text on the line. A subsequent Home keypress then brings you to the absolute beginning of the line. That's so convenient, especially in Python mode...

It is these things that make it so very difficult to change "my editor of choice".

But I'm trying anyway.

I'm typing this in Emacs now.

(let the Editor War commence :-)

To convince me (myself) to use Emacs from now one for all my text editting and programming work, I need to see whether:

  • The fact that Emacs is usuaslly either already installed or easily installable on most OSs
  • The fact that Emacs can be reconfigured ad infinitum to make it behave and work like I want it to
  • There're a lot of Emacs resources, like editting modes (this is being authored in ReStructedText mode, what editor can say it has a ReST mode? Well, yes sure, the editor from hell can probably too), documentation, tutorials, scripts to make Emacs work in different ways, etc. etc.

...is enough to overcome having to:

  • Learn a new command and key binding set
  • Learn a new sets of editting modes, especially for XML
  • Make Emacs have some of the key bindings that I definitely want to keep, like the Shift-<delete> and Shift-<arrow up|down> and common shortcuts like Ctrl+X, Ctrl+C, Ctrl+V. etc. etc.
  • Get to know the insanely complex key mapping system
  • Get over sentiments for J

But, it's the first time since ever that I'm actually seriously trying something else. All other attempts to try a different editor have miserably failed just after a couples of minutes.

Time will tell, if and when I'll be running back screaming to my beloved J.

p.s. I have filed some resources that proofed useful in setting up Emacs to my needs.