Giving Emacs another chance

Today, I am going to start using Emacs.

For the past five years, or so, I have been a Vim guy. Vim is a great text editor. I love the user interface. It is the most esoteric piece of software I have ever used, but once I climbed the learning curve, I could edit text more effectively than I had ever done before.

Over the past year couple years, I developed an interest in the Lisp programming language. I was aware that Emacs was a programmable editor and that its programming language was a Lisp. This seemed like an ideal opportunity. I could extend my editor in a language that I really enjoyed programing.

So last summer I decided to give Emacs a try. It was difficult getting started. The learning curve, like Vi, is pretty steep. Furthermore, all the Ctrl-Alt chording was physically painful. I managed to find and use the vip package (a Vi emulator for emacs), which eased some of the pain, but I found I still had to do way too much chording to be comfortable with Emacs. I gave up and went back to Vim.

Now the lure of a Lisp interpreter in my text editor has tempted again. So much so, that I am going to give Emacs another shot. If I can’t get Emacs to do what I want, I guess I will just have to write my own editor, but for now I am going see if I can make Emacs work for me.

Transparency in Computer Science

I have been reading Tanenbaum’s Modern Operating Systems, lately. On design issues in distributed operating systems, he writes,

Probably the single most important issue is how to achieve the single system image. In other words, how do the system designers fool everyone into thinking that the collection of machines is simply an old-fashioned single processor timesharing system? A system that realizes this goal is often said to be transparent.

A system that deliberately misleads its users about what it is doing, eh? I think the term he’s actually looking for is opacity.