Emacs Has No Learning Curve

Paul E. Johnson is a member of the Political Science Department at the University of Kansas. As such, he’s not a canonical Emacs user but he has a provacative set of slides that suggests that, in fact, Emacs doesn’t have a steep learning curve. Or, at least, it needn’t have one.

His thesis is that one can use Emacs with more or less “standard” keybindings by using the arrow and other special purpose keys and by turning on CUA mode to make Emacs input more like “modern” apps.

That’s all true, of course, but it strikes me as riding a bicycle with training wheels. Yes, you can ride around and do bicycle-like things but you can’t really call yourself a bicycle rider. Even Johnson recognizes this and notes that you’re going to want to learn at least some of those native Emacs commands.

When I learned to ride a bike, I didn’t use training wheels and I don’t recommend them for new Emacs users either. Sometimes you just need to grasp the nettle and push through the pain. The benefit is that at the other end you can ride a bike or use Emacs well.

Still, Johnson has a point. It’s possible to start using Emacs without having to learn all those bespoke keybindings. The question is whether that’s the best path forward. I think not but obviously others disagree and I’m willing to stipulate that they may be right, at least for some people.

Posted in General | Tagged | Leave a comment

Emacs Popups In macOS

A couple of weeks ago, I wrote about Protesilaos Stavrou’s excellent post on triggering an Emacs popup from anywhere in your system. It’s perfect for Org capture and other things you might want to do when you’re in some other app. I have something similar specialized to Org capture and Phil in the comments said he also has a few bespoke popups. The advantage of Prot’s framework is that it’s easy to invoke any Emacs command from outside of Emacs.

Grant Rosson liked the idea but found that Prot’s Linux based code didn’t port directly to macOS and he presented the code for the minimal changes required to get things working on a Mac. Despite what some folks seem to think, Mac users are a significant portion of the Emacs community so his changes are welcome for those of us using macOS.

Rosson gives some examples of commands other than Org capture that may give you some ideas. What I really like about Prot’s and Rosson’s frameworks is that they help you move as many chores as possible into Emacs. A lot of that simply boils down to being able to enter text in a reasonable—by which I mean Emacs—environment.

If you’re a Mac user and interested in being able to popup a temporary Emacs frame to do whatever you need to do, take a look at Prot’s video and Rosson’s post. You’ll be glad you did.

Posted in General | Tagged | Leave a comment

Why Emacs: The View From Vim

As every Irreal surely knows, I’m a die hard Emacs user but I was, for a long time, a Vim user and still consider it one of the two best editors. It’s long been my view that Emacs and Vim serve two different constituencies and aren’t really the same type of application. The TL;DR is that Vim is for people who want a small, fast, editor that excels at editing and doesn’t bother with anything else. Emacs, on the other hand, is for people who want a unified operating environment that—sort of—recapitulates the Lisp Machines.

Nicholas Bernstein is a committed Vi/Vim user who more or less agrees with me. Like me, he thinks that Vi/Vim and Emacs are distinct types of applications that serve different needs. He has a nice nice video that discusses this and makes the case that Emacs is all about providing a consistent interface for text based applications.

I think that that’s true but doesn’t tell the entire truth about Emacs. Yes, it does provide a consistent interface for text but it offers much more. It is, as I’ve often said, a light weight Lisp Machine that provides an integrating environment for all your computing needs. If you’re happy with a text-centric browser, Emacs can be the center of all your needs. Even if, like me, you use a standard browser for the dealing with the Web, Emacs can still provide almost everything else.

As I’ve said before, I spend almost all my time in either Emacs or Safari. I have to say, it’s a pretty nice environment. Bernstein makes the same case from the point of view of a Vi/Vim user.

Posted in General | Tagged | Leave a comment

After Action Report: Helene

Just a quick note to let you know what’s happening at the Irreal bunker. We got through the passage of Helene without mishap but just as the storm had moved to the North of us and we were out of the last band, we lost power. That was about 8:30 PM. It came back on at 3 AM so pretty much no harm no foul. But: all our cable TV services, including the Internet went down sometime after we lost power and hasn’t come back up yet (7:11 PM as I write this).

I’m guessing that the servers are in Atlanta, which isn’t used to dealing with hurricanes and got clobbered by Helene. Our ISP tells us they are “working very hard to restore service” and I believe them. Apparently, they’ve brought in technicians from all over the country to help.

That basically means that the bunker is limping along until we get our service back. In the meantime, Irreal offerings may be a bit attenuated. I’m going to push this post out by using my phone as a hotspot—broadband is still working fine—and will try to push something out everyday until things get back to normal.

Posted in General | Tagged | Leave a comment

Hy 1.0.0

Eight and a half years ago, I wrote about the Hy language and John Kitchin’s experiments with it [1, 2]. The TL;DR is that Hy lets you write in a Lisp-like language while having access to the power of Python. At the time, I really liked the idea but I doubted it would gain much traction.

That goes to show what I know. The Hy project has just announced the release of Hy 1.0.0. Hy, it seems, has some traction after all. I still doubt that it’s going to be anything but a niche language but for those of us who prefer writing in Lisp, it’s a great way of accessing all those batteries that come with Python.

The project has its own website complete with documentation if you want more information. As I said, I doubt that Hy will ever be anything but a niche language but if you prefer writing in Lisp, it’s a great way to access all the power of Python from a Lisp environment.

Posted in General | Tagged , | Leave a comment

Hurricane Headsup

Just a heads up. Hurricane Helena is coming up the Florida coast and is predicted to be huge and strong (a Cat 4). Fortunately for the Irreal Bunker it will be pretty far offshore from Tampa but given its huge size, it’s not unreasonable to predict that the bunker could lose power. If Irreal disappears for a day or two, don’t worry. We’ll be back and pursuing our goal of world domination without delay.

Posted in General | Leave a comment

Emacs Doc Bling

As most of you know, Irreal doesn’t think much of editor-connected bling. We much prefer simple efficiency to flashy accouterments that, in the end, simply get in the way of a decent editing experience. That’s true even though they can, arguably, make it easier to get started with a new editor.

It feels a little odd, then, to be writing favorably about these reformatted Emacs documents that, while they have the same content as the official documents, have been reformatted to look a bit nicer and, more importantly, be easier to navigate. It’s probably not accurate to describes the results as “bling” especially since the point of the change is better navigation.

The two major changes are a sidebar that essentially recapitulates the table of contents so that it’s easy to get an overall view of the document and an improved search function that makes parsing the search results easier.

Irreal does think that these documents are a worthwhile addition to the Emacs document stack and wouldn’t object if, arguendo, they were adopted by GNU. Still, the Irreal bunker is probably going to continue to use the “official” documents but doesn’t object if others make a different choice.

The documents that are available are:

  • The GNU Emacs Manual
  • The GNU Elisp Reference Manual
  • The Org Manual
  • The AUCTeX Manual
  • The Magit Manual

Take a look at one or more of them and see what you think.

Posted in General | Tagged | Leave a comment

Casual EditKit

Charles Choi has another Casual app on offer. This time it’s a comprehensive set of menus, Casual EditKit, that capture the various editing commands. On the one hand, these are commands that you really need to know to become proficient with Emacs. On the other hand, as Choi says, the menus serve as a means of discovering those commands.

The problem is that Emacs has such a rich set of commands for editing text that it can be hard to learn them or even know that they exist. For example, I am always seeing comments from people expressing surprise about the transpose-chars and transpose-words commands. I use them everyday and wouldn’t want to live without them, yet there are lots of folks who don’t even know they exist. There are a bunch of other transpose commands that I don’t have bound but that I know exist so I can invoke them—with the help of fuzzy command completion—as named commands when I need them.

This all works because I know these commands exist and it’s not hard for me to invoke them even if I don’t remember their bindings or they have none. The advantage of Choi’s Casual EditKit is that helps you discover these commands and once you know they exist, they’re easy to invoke even if you can’t remember all the details.

Choi just announced Casual EditKit so I obviously don’t have any experience with it but my snap judgment is that its main benefit is teaching a new user what editing commands are available. But, in the long run, every user is going to have to learn those commands. Still, I suppose the menus could be useful for little used commands such as, say, the rectangle commands.

In any event, Casual EditKit is a welcome addition to Choi’s wonderful collection of Emacs menus.

Posted in General | Tagged | Leave a comment

Holding The Program In Your Head

Paul Graham has a very interesting post that considers why it’s so hard for most corporations to produce good software. Actually, his post isn’t quite about that. Rather, it discusses why it’s so hard and so important for a programmer to hold a program in his head. Graham gives a list of 8 prerequisites for enabling programmers to do that. He says that:

  1. It’s amazing how often programmers manage to to achieve all eight on their own.
  2. It’s amazing how often corporations mange to do all eight wrong.

I agree very strongly with everything he says. I program the way he describes and I hate having anyone else touch the particular piece of code I’m working on. I also believe in small teams with a minimum of interference from above. Every manager’s nightmare.

Plenty of people will, of course, disagree but Graham’s article got me thinking about a discussion I had with Perry Metzger in an Irreal comment about pair programming. Metzger had observed that Emacs wasn’t very useful for pair programming and I made a snarky remark about pair programming. Metzger responded that he really enjoyed it and that he’s never been so productive.

That seems to directly contravene what Graham said and it certainly runs against my inclinations. The thing is, Metzger is a serious and accomplished computer scientist as well as a long time Emacs user so nothing he says should be dismissed out of hand. I suppose that this is another case of different strokes for different folks so we can only agree to disagree. In any event, take a look at Graham’s post and Metzger’s comment to see what you think.

Posted in General | Tagged , | Leave a comment

Phrontisterion

A few days ago, I wrote about Trevor Hopkins’ site and his hosting of some very nice material concerning Iain M Banks’ Culture universe. My post was about a detailed description of the Culture and how it works that was written by Banks but I also noted that Hopkins also had some of his own stories written about the Culture.

I finally got around to reading one of his short stories, Phrontisterion. It’s a nice story that faithfully reproduces the tone of Banks’ writing. I won’t spoil the story by describing the plot but one nice feature is that explored the idea of group minds that have sublimed. Banks mentions the concept in several stories but never explained how it worked or what it was like to be part of one.

Much of Phrontisterion explores that question and gives us a flavor of what it might be like to be part of a group intelligence. If you’re familiar with the Culture novels, you’ll almost certainly enjoy this story. It’s not, to be sure, the Master but Hopkins does a good job and wrote an enjoyable story. If you’re a Culture fan, you’ll almost certainly enjoy it. Take a look; it’s short and won’t take you long.

Posted in General | Tagged | Leave a comment