COMPS | [ Under OPL ] |
![]() |
Emacs: Working @ the Speed of Thought |
Introduction![]() Text editing as an art, science or skill seems to have been forgotten by the masses of people who now claim to be "Computer Literate". The GUI was arguably the most significant facilitator of bringing computing out of the bastions of computer "Labs" where Uber-geeks once used to code away merrily at tiny CRTs displaying sharp green text against the black depths of the screen. The mouse came and worked with Menus and Tool-bars to turn the keyboard into a necessary evil. I'm not a command-line junkie. I can't possibly live without the GUI. I couldn't have given my site the layout and colors you see without previewing it in a color screen, could I? Yet, I love the keyboard, I like to have the power of command-line available to me because typing on the keyboard is significantly faster than dragging and clicking the mouse around. But the keyboard is injurious to the fingers, you say. It's an occupational hazard! Well, do you remember what happened to your fingers after taking notes in the History class for half an hour? Yeah, they used to ache. Why hasn't the Pen been labeled as a weapon of torture to young kids? Why are the latest PDAs coming equipped with a stylus? Because the pen is the most convenient writing instrument mankind has learned to use. Since I've taken up software as a full-time profession, I've started realizing that when it comes to converting thoughts to writing (electronic or on paper), the keyboard works faster for me. When you need to have your thoughts expressed as fast as you think, it doesn't matter whether the result looks pretty or the code is correctly formatted. What you need is to convert your set of thoughts, which is a temporary and volatile state of mind, into material before they get corrupted by interfering thoughts of beautification or refinement, which are more-or-less mechanical tasks. If the quickest medium of expression that you have is the keyboard, the simplest but most effective medium of materialization is text. Plain Text. There are several excellent tools available that break the task of writing documents or software into neat steps. The first of these neat steps is putting things out of your mind and into text. This is essential to aid the process of expressing thoughts first and then acting upon them for further refinement. For most of the "Computer Literate" people, the right place to go and type is "Microsoft Word". I'm sorry, but a WYSIWYG Word Processor is one of the most unintuitive and obstructive means to express your thoughts, whether it be writing books, writing a letter to Mom or documenting an application. Programmers are no better. They use tools with super-flashy features to break their thought process and make them find ways to use each of those super-flashy features while writing code. These tools are often known as IDEs or RAD tools. When you are out to write text, your best friend is a capable "Text Editor". This is an application that basically enables you to write plain text in a computer and perform some actions on it, like deleting a few characters, to mention the simplest. Emacs: Text-editing par excellenceAmong the myriad text editors available, especially in the Unix/Linux environment, the two most popular editors are Emacs and Vi. Yeah, notepad is one but it doesn't stand a chance before those Big Daddies. Both Vi and Emacs have their followers that are faithful to their favorite editor to the extent that their usage is compared to cult, religion and even "a way of life". The reason is that the underlying philosophies of the two are completely opposite. While Vi is a small good-for-only-text-editing application, Emacs has an entire Lisp engine running under the hood with immense capabilities to assimilate (Borg terminology :-p) extra functionality. I have used both the text editors and continue to do so, but I find myself using Emacs much much more frequently than Vi. The reason is that Emacs can not only act as a simple text-editor, it also works as a highly capable IDE, document preparation system and a fairly functional shell. People even use Emacs to send email and browse the web but I'm not that great a devotee as them. I do C/C++ programming and debugging, web development and LaTeX without the need to resort to another program. Here are some of the reasons why I like and use Emacs:
It keeps up with the Unix tradition of productivity through co-operation of tools that do specific functions and do them well. Emacs acts as a glue application (much like Perl is a glue language) for all these tools. The advantage that I get is that for whatever I do, my interface to the computer remains uniform, while I am not restricted in choice unlike the IDE's that each come with their own compiler, debugger, editor etc. Nor am I restricted in functionality like most other Text Editors. Vi proponents say that Emacs can only be operated by Aliens, that it's bloat-ware, that it requires more than 10 fingers to operate etc. The truth is that Emacs is a much more intuitive editor than Vi. It is much more functional than Vi and it requires less keystrokes than Vi to do most jobs. Let me tackle these jibes in succession.
Emacs is not for Aliens Emacs is not bloat-ware: Bloat-ware is software that contains too much functionality within it to be ever used completely. All those extra features add to the complexity of the software and make it bulky to launch and run. Emacs is not bulky. It doesn't carry much functionality within itself. The core of Emacs is still more complex than Vi but that's because of features that are truly essential and frequently used like the option of having multiple open buffers and window splitting. Emacs derives it's functionality from extensions that are written for it. These extensions are not part of Emacs and they are loaded only when needed. Emacs doesn't require more than 10 fingers to work on
This is just one example - one of the most basic. The story for most other commands is similar. My point is that Emacs commands are definitely not more difficult to issue than Vi. Start working at the speed of thoughtTo get yourself started with computing at the speed of thought, you need more than a Text Editor. As I mentioned before, you have to look out for tools that break your tasks down into neat logical steps instead of cramming everything into one big process. Fortunately, for most of the common applications, there are such tools available. As an excellent example of this philosophy is LaTeX for document preparation. It breaks down the task of writing a document into three steps:
Emacs works in tandem with such tools in a most seamless manner to give you an unprecedented level of productivity and speed. Use all that extra time to SlashDot or do your stuff. It's true that there's a learning curve with Emacs but it's scalable. You need not be a Computer Engineer for that and the payoff is immense. Alternatively you can be a cribbing frizzle-nerved Vi user or stick with your Lord of the WPs - MS Word - and be ever confined to darkness. |
© 2002 - 2004 Tahir Hashmi. Unauthorized copying, alteration and redistribution in any media is prohibited, except where explicitly stated as being distributed under the OpenContent License (OPL). Last updated: 21 February, 2021. Update Log. Personal Email: tahir AT tahir.ws [PGP Key: ASCII, Binary]; code_martial AT softhome.net [PGP Key: ASCII, Binary] IM: Yahoo! Messenger [tn_hashmi] |