A lesser Emacs?

2003-01-16
2013-03-07
  • Ian Bicking

    Ian Bicking - 2003-01-16

    I gave THE a try yesterday, and while I thought it was interesting, it seemed like a distinctly less powerful Emacs.

    LEAP is actually very similar to incremental searching in Emacs (C-S and C-R for reverse searching). 

    The modal nature of Emacs (where you don't have to hold down a key while typing your search term) is definitely easier on the fingers (typing multiple characters with the shift key down is annoying). 

    Emacs also allows case-sensitive searching, which is very useful.  Perhaps that's more the case in programming, where I know if I search for a capital letter I'm going to get to a class definitition faster (since in programming case is more meaningful than normal text).  Note also Emacs is only case sensitive if you type at least one upper case letter.

    Emacs' incremental search also works well for finding things off the page.  It seems necessary to disambiguate your search with LEAP -- but when I'm looking for all instances where a function is used, I don't yet *know* the context of my search.  So I have to do multiple LEAPs, I can't use LEAP as a skimming or proofreading tool.  In Emacs you hit C-S (C- means Control) and it goes to the next instance (like C-G in Netscape).

    I use incremental searches often in Emacs to navigate, even just to navigate on the same line.  It's a great idea, but I think THE should pay much more attention to Emacs and the maturity of its interface.

    Emacs also does not use dialog boxes.  It has a status bar on the bottom which is used for input and message display.  It's very close to THE's transparent messages, only not nearly as distracting or obscuring.

    Lastly, Emacs has long-form commands.  By typing M-X you get access to all the commands in Emacs.  Really it's an excessive number of commands.  And there isn't an obvious mapping between command names and key bindings (though you can look up the commands for bindings, and Emacs suggests bindings when you type in a command).  Though Emacs could use some editorial consideration in the commands it exports, the commands are as powerful as THE aspires to.  Emacs embeds a large number of applications, which are accessible through these commands.  The menus are actually sadly inadiquate for most work.

    Emacs seems to be what THE aspires to be.  It's a mail client, news reader, web browser, etc.  Certainly it has significant flaws.  I would love to see an editor inspired by Emacs written from scratch in Python.  The key bindings might change among other things, but learning from the lessons of Emacs (and avoiding the problems of elisp).

    Have the developers of THE used Emacs significantly?  If not, I fear they will just make a pale imitation of a wonderful program and environment.  The lessons of Emacs could well stand to be popularized and improved upon, but 25 years of development and improvement by people who use a program so intimately as developers use their editors -- that deserves a lot of attention from anyone interested in user interface.

     
    • Jay McGavren

      Jay McGavren - 2003-01-17

      >The modal nature of Emacs (where you don't have
      >to hold down a key while typing your search term)
      >is definitely easier on the fingers (typing
      >multiple characters with the shift key down is
      >annoying).

      I'll agree that having to hold down shift while in command mode seems like it would be awkward.  But it's a necessary concession in order for THE to work with commonly available keyboards.  I believe the elimination of mistakes caused by modal search dialogs will more than make up for having to give my pinky fingers a workout.

      >So I have to do multiple LEAPs, I can't use LEAP
      >as a skimming or proofreading tool. In Emacs you
      >hit C-S (C- means Control) and it goes to the next
      >instance (like C-G in Netscape).

      Wouldn't the LEAP AGAIN command do what you need?

      >I use incremental searches often in Emacs to
      >navigate, even just to navigate on the same line.

      LEAP to a space, then LEAP AGAIN repeatedly, and you're moving the cursor from word to word.  LEAP to a Return, then LEAP AGAIN repeatedly, and you're moving from line to line or paragraph to paragraph.  I don't know what else you use Emacs incremental search for, but I bet LEAP can do it.

      >Emacs also does not use dialog boxes. It has a
      >status bar on the bottom which is used for input
      >and message display.

      The Humane Interface points out a potential problem with this.  A status bar at the bottom of the screen is very far from your locus of attention while you're typing.  You're likely not to notice any important messages that come up.

      Not to say that even a transparent message right at the cursor wouldn't be potentially annoying if misused.  The content of the messages and the events that trigger them must be chosen carefully.

      >Though Emacs could use some editorial
      >consideration in the commands it exports, the
      >commands are as powerful as THE aspires to.

      I'll agree with that; Emacs has far too many commands.  I'd rather have THE's smaller but more versatile command list; I can keep the whole thing in my head at once.

      >Emacs seems to be what THE aspires to be. It's
      >a mail client, news reader, web browser, etc.

      I think that through carefully designed extensions, THE can be all of these things as well, yet use just one interface for all of it.

      >Have the developers of THE used Emacs
      >significantly?

      I would be surprised if they hadn't.  I have not, however.  Nor does its documentation make me want to, particularly.  I'm not saying there's nothing to be learned from Emacs, but I'd rather not be the one to dive in and learn it.

       
      • Ian Bicking

        Ian Bicking - 2003-01-17

        How did you get all the quoting?  I don't have the patience to do it manually, I'm afraid, and I don't know another technique.  (Sucks there's no mailing list)

        Anyway, re: use of the shift key --

        I don't get why the shift key is necessary.  Sure, other applications use control or command or the other keys.  But THE doesn't, and it's not like you need those keys to enter in text.  You could save yourself from having to hit the space each time if you used command or control.  People would just have to get over their previous habit of using one-key shortcuts with those modifiers.

        Re: modal dialogs in Emacs --

        There are only a very small number of modal dialogs boxes in Emacs.  In fact, I don't think Emacs has any, only XEmacs does.  Modal queries are usually done in the status bar, not unlike THE.  But they are truly modal, so you don't have to keep any key depressed while you are typing.  I've almost never been confused by this, and certainly not inconvenienced.  I like to use all my ten fingers for typing, and modal input lets me do that :)

        Re: status bar vs. transparent text --

        Perhaps it's just because there are display problems with THE (e.g., transparent text hanging around after it should have disappeared), but I found the transparent text to be very distracting and confusing.  In most cases in Emacs I don't even need to look at the feedback from the status bar (like when doing an incremental search) -- it's only when I become distracted or make a typing mistake that I need to check myself against that feedback.  So I think it's a feature that the status bar is out of the way.

        Re: LEAP AGAIN --

        LEAP AGAIN is much, much harder to type that C-S.  We're talking between one and two keystrokes for C-S (one if you keep the control key depressed).  LEAP AGAIN takes seven, and they aren't seven easy keystrokes (like hitting the arrow key seven times is easy).

        Re: number of commands

        You note that you prefer THE's smaller set of commands.  THE gets away with a smaller set because it does so very, very little.  Emacs has 100x the functionality of THE -- which is to be expected, because it's much older and has wider use.  What I read about THE, they want it to be the basis of many complex applications, just the way Emacs is the basis of many applications.  If THE becomes that powerful foundation for applications, then it will have the same problem Emacs does (perceived bloat, redundant features, and it's hard to find the feature you want).  It's a challenging problem, but certainly not an impossible obstact.  I don't see much distinction between THE and Emacs at this time, except in size. 

        Re: using Emacs

        I actually wouldn't be that surprised if the developers had not used Emacs.  I've noticed surprisingly insular experiences from Mac people -- especially when it comes to the Unix world, Mac people seem to know very, very little.  Anyway, you can't *really* appreciate Emacs until you use it a lot (like a lot of the best Unix applications and environments).  It's not hard to learn -- it comes with an easy enough tutorial -- but you have to commit to it before you'll really love it.  Or you have to be programming Lisp, and then nothing else will do ;)

        I think there's something deep in the Mac/Unix split -- I think some of the people who pioneered the Mac have become frustrated by the stagnation of the interface.  The Mac interface hasn't grown, and it was originally designed for beginning computer users.  Not only have these individuals grown, *all of society* has grown.  Interfaces shouldn't be designed for newbies -- they should be designed for people who spend eight hours a day at a computer, like so many of us do. 

        But the Mac people need to realize that while they were pioneers in making the easy interface, they are not pioneers in making the advanced interface.  Programmers use computers more than anyone else, and we uniquely have the ability to directly effect our interfaces.  And of course Free Software gives us even more power to do so -- and it's in this environment (which coincides with the Unix and Linux environment, the programmer's operating system) that the advanced interfaces have developed.  (and crappy interfaces, too)  Emacs is the pinnacle of this -- the text editor is the application a programmer will use more than any other, the intermediary for all of their work.  So it's not surprising that Emacs has created something incrementally and unconsciously that Jef Raskin has come up with analytically.

        Anyway, Emacs is big, but when you realize what it really is (not just an editor), you might be able to appreciate why it's like it is.  If you spend a lot of time typing text you should learn it -- it's worth it.  If not you'll probably never get fully used to it, and won't be able to appreciate it.  Emacs will never take over the world, and that itself is a sign its ideas need to be taken in different directions and popularized -- but it's also got something really good going.

         
    • Russ Nelson

      Russ Nelson - 2004-08-15

      Emacs has a lot of similar ideas to THE, however THE's interface is actually being *designed* rather than *evolved*.  As such, THE fixes a lot of things.  For example, to search forward for abc, you have LEAP\abcLEAP/, whereas in Emacs you have CONTROL\sCONTROL/abc, which is a whole extra key down and up, plus then you're in an ambiguous state.  Depending on what you type next, the search is either abandoned or accepted.

      Also, isearches leave you at a different place depending on whether they're forward or reverse searches.  That's just plain icky, and I find myself having to type a lot more just to get me what THE would give me for free.

       
    • David Filskov

      David Filskov - 2004-11-06

      THE is not made for advanced users. But it doesn't hold any design concepts that make it less efficient than Linux, Windows and MacOS for advanced users. On the contrary in fact. But its humane design will of course by far benefit basic users mostly - advanced users have learned the current modal applications and OSes and are able to use them very efficiently. But there are no reason why advanced users shouldn't enjoy the non-modal humane design.

      |I don't get why the shift key is necessary

      THE is written for a keyboard that makes use of BOTH your thumbs contrary to normal keyboards which uses only ONE single key for BOTH thumbs. In this case using the shift key on normal keyboards is a substitue for a new set of thumb keys to avoid modes (which is believed to be more important to avoid than sparing one of your pinkies). You should read the documentation on THE to understand it better. THE avoids ANY mode at ANY time. This means that no matter what you see on the screen anything you do will ALWAYS work as you expect. The only thing you need to look at the screen for is to see the content you create and the OS feedback. You should'nt need to look on the screen to know HOW to do what you want.
      In any other OS today you must know which state/mode (also called application) the OS is in before you do anything. Today's OSes can be in thousands of states/modes where the keys you hit or the mouse movement will almost never produce the same result. If you just sit down at a PC and do something without looking at the screen the outcome is pretty unpredictable. You probably know how much visual feedback you need when you help your parents over the phone (what do you see? Can you see this and that?). With THE you'd ONLY have to make sure that they are not holding down any keys or clicking the mouse (which is higlhy unlikely anyway). You only have to make them do what you say to get the computer to do what you want. Think of how many different kind of ways there is to do the same thing - each programs has their own way to do the same thing - THE unites that.
      THE always reacts the same way. That is why the Shift key is used - to avoid a mode (and thus unpredictability) which will be more humane for both basic and advanced users in their daily work. If there was a key below Space on a normal keyboard THE would have used that instead of Shift to avoid taking up your pinky and make use of the thumb instead. Emacs has adapted/been developed to the normal legacy keyboard and that's just one reason why it needs modes.

      I personally use this keyboard: http://www.kinesis-ergo.com/advantage_pro.htm which doesn't waste the use of the thumbs like normal keyboards do. Also it's symmetrical contrary to ordinary keyboards which aren't even symmetrical in their layout of the normal letters (Eg "qwert" is positioned differently from "yuiop" if you compare how the two hands access them and the rest of the keys. The rows aren't mirrored properly due to some legacy mechanical reasons I believe).

      | other applications use control or command or the other keys.
      | But THE doesn't, and it's not like you need those
      | keys to enter in text.

      No to enter text content in THE you just start typing. At ANY time it will produce text as most people would initially expect from a humane tool. You only need quasimode keys (command key for instance) to make sure that entering text will not produce content but actions/commands/orders to the OS. In a normal OS today just typing away will only sometimes create conent, sometimes it will answer yes or no or whatever to an unexpected pop-up about Gods know what - sometimes just typing away can even ERASE content (when the computer is in a mode where selected content is deleted once you start typing) and imagine if you were in a disk tool program that program was in a certain Format menu - you could format your harddrive simply by typing your name! No wonder some people are afraid to try computers.
      This kind of unpredictable behaiour would _never_ happen in THE. THE on a normal keyboard uses Shift and space because it's more important to invoke quasimodes (to avoid mistakes) than to spare the one finger holding down the key (for the THE Leap keyboard it's one of the thumbs which is not even used on a normal keyboard http://humane.sourceforge.net/main/the/img/THE_keyboard_horiz.gif ).
      But admittedly THE is written for maximum "humanism" which needs different kind of keyboard. Normal keyboard layout aren't very good for avoiding modes.

      | you don't have to keep any key depressed while you
      | are typing. I've almost never been confused by this

      But it would be more humane if you could be distracted for a moment and just start working again wihtout paying attention to the screen or which state Emacs or KDE is in. Humans can work nicely with modes - but modes naturally requires more consciouss effort - for no good reason at presetn time (other than the software legacy and awkwardness of keyboards).

      | I like to use all my ten fingers for typing

      On the Leap keyboard THE will let you use all 10 fingers whereas normal keyboards practically allows for only 8 fingers in that the thumb are used for only _one_ key instead of 3-4 .ike the rest - and this inconceivably goes for _both_ thumbs sharing the same key.

      | In most cases in Emacs I don't even need to look at
      | the feedback from the status bar

      Sure. That's the same in THE - the text dissappears as soon as you start typing (but is never lost - you can look it up the OS message history) and the initial feedback is even transparent so you can just ignore it if you don't need to know what it reads.

      | LEAP AGAIN is much, much harder to type that C-S.

      Leap again is invoked by pressing Return (in Leap quasimode). You can read about this in the documentation.

      | THE gets away with a smaller set because it does
      | so very, very little.

      Actually THE will probably have hundres and hundreds of commands for a user like you - per default only the basic most used ones will be installed but a programmer will be likely to install a bunch of special commands for her purpose.

      | I don't see much distinction between THE and
      | Emacs at this time, except in size.

      Contrary to Emacs a basic user is still be able to use THE just like she's used to even when it has thousands of commands for advanced users. An advanced user will still be able to use a basic installation of THE for basic tasks the way he's use to do basic tasks. THE will not only be able to do what Emacs does but it will have commands for alot more like editing media and browsing the net and so on. It's meant to be alot more powerfull than Emacs and at the same time work for both advanced and basic users in a more humane and less consciouss demanding / more natural way. For basic users THE will be lightweight (extra third party commands will not be installed) - for advanced users it will hopefully only need more harddisk space and maybe more memory.
      Even when an THE installation has been upgraded for an advanced user the basic tasks would/should be as quick as before. It's specifications are based on humane reaction (it will never make you wonder if it's rendering a task or not - it will provide timely and precise feedback never popping up an unpredictable progress indicator most people will think is counting linearly when it's infact not - THE will let you know exactly when it will be finished or exactly when it doesn't know when). In theory (and let's hope in reality) it will never feel unaccepabtly slow or unresponsive.

      | Interfaces shouldn't be designed for newbies -- they
      | should be designed for people who spend eight hours a day

      THE is designed for both advanced and newbies because there are no reason why a design should be only in favor of one type when both are humans. Simple things should be simple. Advanced stuff is advanced and that's the way it is but simple tasks shouldn't be hard to do just because the OS is capable of doing advanced stuff also. THE tries to accomplish this. And I think it's the best design out there for that so far.

      | Mac people need to realize that while they were
      | pioneers in making the easy interface, they are
      | not pioneers in making the advanced interface.

      Agreed. Apple's current interface is practically as complex and comprehensive as Microsoft's. THE is the current pioneer I'd say (if it was only finished available).

      | If you spend a lot of time typing text you should learn it

      I don't doubt that Emacs is unprecedented for it audience. Let's hope THE will be that too - it's audience is everyone. I agree with Jef that if THE turns out the way he intends - much more efficient than MacOS and Windows for basic users (the majority), the big companies will not be able to affort not to use it, when compettitors start using it.

      | Emacs will never take over the world

      But it could. If designed in a way that made it suitable for both pros and laymen. THE seems to be designed in a way that is just that without loosing any advantage - but of course that was never Emacs's purpose contrary to THE.

       
    • David Filskov

      David Filskov - 2004-11-08

      All this said - I know the team is working hard to make THE work very will with regular keyboards.

      There is focus now on bringing all of the advantages of THE to regular keyboard users - instead of requiring a custom Leap keyboard.

      --David

       

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks