Forgot your password?
typodupeerror
Unix Operating Systems Software IT

The Birth of vi 459

Posted by Zonk
from the please-keep-emacs-trolling-to-a-minimum dept.
lanc writes "Bill Joy, co-founder of Sun, tells the story of how he wrote the vi editor. The article at The Register delves into his motives, who instigated the project, and some of the quirks of leaving a 'gift to mankind'. From the piece: '9600 baud is faster than you can read. 1200 baud is way slower. So the editor was optimized so that you could edit and feel productive when it was painting slower than you could think. Now that computers are so much faster than you can think, nobody understands this anymore. The people doing Emacs were sitting in labs at MIT with what were essentially fibre-channel links to the host, in contemporary terms. They were working on a PDP-10, which was a huge machine by comparison, with infinitely fast screens. So they could have funny commands with the screen shimmering and all that, and meanwhile, I'm sitting at home in sort of World War II surplus housing at Berkeley with a modem and a terminal that can just barely get the cursor off the bottom line.'"
This discussion has been archived. No new comments can be posted.

The Birth of vi

Comments Filter:
  • by messju (32126) on Saturday January 06, 2007 @06:21AM (#17486758)
    (I'm using Emacs, BTW.)
    • by 91degrees (207121) on Saturday January 06, 2007 @06:24AM (#17486766) Journal
      I hate them both.

      I'm not popular amongst Unix users.
    • by donaldm (919619) on Saturday January 06, 2007 @07:10AM (#17486890)
      Oh dear back to the eighties.

      I think the easiest way to sum up Emacs vs Vi is "vi" is for System Admins and people who want to get the job done quickly and efficiently without having to learn Control and Esc commands (if you look "vi" commands they are surprisingly logical compared to "Emacs"), while Emacs is for people who either have dedicated terminals or have a masochistic streak. This is not to say "vi" is better than "Emacs" in fact it is the other way round and if you are prepared to learn it then it is extremely powerful and can make you much more productive. Of course I am generalising but I do remember the first "vi" vs "Emacs" wars.

      If you want a graphical editor there is "gvim" or "xEmacs" both great if you have a GUI, however if you are moving between different Unix machines you have to remember that "xEmacs" or even "Emacs" as well as other so called "free" editors may not be installed so that is why most Systems Admins learn "vi" rather than learn "Emacs". Of course if you are a Systems Admin you should at least be aware of how to use "ed" as well.

      To sum up. If you like and can use an editor (not just "vi" or "Emacs") productively then go for it.

      Now bring on the "car" analogies. Please no "edlin" since you should be marked as "funny" or "troll"!
      • by Anonymous Coward on Saturday January 06, 2007 @08:20AM (#17487102)
        XEmacs isn't the X version of Emacs - it's a completely separate fork.
      • by billcopc (196330) <vrillco@yahoo.com> on Saturday January 06, 2007 @11:23AM (#17488266) Homepage
        Ok here goes nothing. I'm a DOS veteran, and I treated my DOS like most people treat their Linux, using extensive modifications and addons to improve usability and productivity. Way back there was Edlin, which even in 1984 felt really ghetto. Its saving grace was that it could be easily scripted for batch usage. Some people used Wordstar, but I personally couldn't stand it. Sure enough, I trivially coded my own full-screen editor in BASIC, and all was well. Then came MS-DOS 5.0, with its flashy Dos Shell and Edit.com, which was really just QBasic minus the Basic part. It worked, it had a cutesy little drop-down menu like Windows apps did, and its usage was obvious to even the most ignorant of users.

        So then one day I get my hands on Slack 2.0. BLECH! Where's the simple full-screen editor I've grown so fond of over the past decade ? :P vi didn't make any sense to me, and Emacs seemed like a huge mess of plugins that ate up more disk space than the OS itself. Now I'm obviously lacking in history when it comes to the Linux/Unix world, but why the hell do so few apps make use of the Function keys ? It's always Ctrl-something.. I'm fine with Ctrl-X and whatnot because they're where my hands would sit, but how hard would it be to just alias F1 to Help, F2 to Save, F3 to Open, in addition to the classic shortcuts.. It would certainly make it much easier to teach.

        And then there's the matter of arrow keys... sometimes they work, sometimes they don't. Ctrk-V or Y for pageup-pagedown, and something else for top/bottom. Now I agree that Unix came first and those shortcuts were probably in use way before Dos ever came along, but why hasn't anyone taken the liberty of adding the "idiot" shortcuts so that Joe Random Switcher can actually try Linux without spending 3 days in complete darkness trying to get a friggin cursor to move ? It's not like those movement keys have anything better to do, most of the time they just spew meta-characters like ^Q^1 or whatever.

        If a text editor does anything more complicated than receive text input and save it to disk, it's no longer an editor in my book. Type setting ? it's a word processor. Syntax highlighting ? it's a development environment. Kinky macro processing and pseudo-hypertext Info-page fornication ? it's a dirty old man's poor excuse for an OS. I'm talking about you, Mr Stallman.

        • by Chris Mattern (191822) on Saturday January 06, 2007 @02:30PM (#17490146)
          > I'm obviously lacking in history when it comes to the Linux/Unix world, but
          > why the hell do so few apps make use of the Function keys ? It's always Ctrl-
          > something.. I'm fine with Ctrl-X and whatnot because they're where my hands
          > would sit, but how hard would it be to just alias F1 to Help, F2 to Save, F3
          > to Open, in addition to the classic shortcuts..

          Pretty damn hard, actually. DOS editors had the advantage of knowing they'd always
          be sitting on an IBM-standard PC, with the same scan codes for the functions keys.
          But function keys aren't standard. Control-letter codes are. UNIX utilities therefore
          have real difficulty with function keys. You have to use termcap/terminfo, and
          make sure that it's correctly configured. Control-something will always just work.

          Sometimes it is set up for you, and it's always been possible to set it up for
          yourself. But most UNIX programmers have never cared that much because most
          UNIX programmers are touch typists...and touch typists hate function keys (and
          arrow keys, and mice) because they take your fingers off the home keys. Much
          better to use ctrl- or alt- codes that don't interrupt your typing.

          Chris Mattern
        • by evilviper (135110) on Saturday January 06, 2007 @02:50PM (#17490368) Journal
          but why the hell do so few apps make use of the Function keys ?

          They're used, just not for what you want...

          I call them the "insert random garbage every time I reach too far" keys.
      • by Anonymous Coward on Saturday January 06, 2007 @11:54AM (#17488632)
        Now bring on the "car" analogies.

        Okay: vi is a car, Emacs is a full cdr.

    • by wakejagr (781977) on Saturday January 06, 2007 @07:58AM (#17487040) Journal
      screw you guys, I cat everything through sed, and I like it that way!
      • by Dirtside (91468) on Saturday January 06, 2007 @12:08PM (#17488742) Journal
        sed?? You pussy! REAL men write the file once, through cat, and never have to change it, thus no need for an editor.

        Let me take care of the ObSequenceOfReplies:

        cat?? You pussy! REAL men open a file handle manually through /dev and type in hex!

        /dev?? You pussy! REAL men write the data directly to RAM by tapping exposed wiring to the DIMM contacts!

        wires?? You pussy! REAL men use huge electromagnets to manipulate the electrons inside the RAM directly!

        magnets?? You pussy! REAL men push the electrons into place using sheer force of will!

        I think that about covers it. Someone want to add a Chuck Norris variant?

    • by Anonymous Coward
      All code that doesn't fit an 80 column terminal was written by failures.
    • by h2g2bob (948006) on Saturday January 06, 2007 @11:53AM (#17488616) Homepage
      "VI VI VI - the editor of the beast" - RMS
  • by tuxlove (316502) on Saturday January 06, 2007 @06:26AM (#17486772)
    I think in vi. When editing, commands just happen like thoughts. They are so ingrained in my brain I don't even remember the actual key sequences. When a vi newbie asks, "how do you do XYZ in vi?," I have to stop and think hard, because I don't even know the commands any more.

    Vi is the ultimate editor, for one main reason. It's a modal editor, so commands can be mnemonic. With editors like emacs, you're always having to hit ^X before commands, or with MS word you're always having to lift your hand off the keyboard to move the silly mouse around. With vi, you don't need a steenking mouse. Your hands never leave the keyboard. And commands make sense and don't require that you hit some yucky control sequence to initiate.

    I love my vi.
    • by daddyrief (910385) on Saturday January 06, 2007 @06:34AM (#17486796) Homepage
      I second you, I'll even double it -- I love my vvii :P
    • by Scarblac (122480) <slashdot@gerlich.nl> on Saturday January 06, 2007 @06:39AM (#17486824) Homepage

      Ironically, it doesn't really matter all that much if a command is mnemonic or makes sense in some other way, precisely because, as you say, "they are so ingrained in my brain I don't even remember the actual key sequences."

      And from the point of an Emacs user, it doesn't seem so different to need to hit C-X before some commands, than to hit ESC and :.

      That said, they're both fantastic text editors. Programmers do their daily work with text, and these two text editors really reward the time you put into learning them. Who cares about a learning curve if this is the sort of tool your career is built around; you need power.

    • by martin-boundary (547041) on Saturday January 06, 2007 @07:40AM (#17486982)
      The Emacs command set is mnemonic as well ("mnemonic" here means that keystrokes are designed to be easy to remember). The basic Emacs commands exist on several logical levels.

      There's the character level ("C-f"orward, "C-b"ackward), and line level ("C-p"revious line, "C-n"ext line, "C-e"nd of line, "C-a" beginning of line, can't use C-b you see, so might as well use the start of the alphabet). That's when you think of text as rows and columns of characters.

      If you think of text as words and paragraphs, then you replace "C"ontrol with "M"eta (which is the Alt key on modern keyboards). "M-f"orward word, "M-b"ackward word, and so on, at least in fundamental mode.

      You can also think of text as regions within matching parentheses or other delimiters, then you can use the "M-C" commands (both Meta and Control + some mnemonic key) to move: "M-C-f"orward one expression, "M-C-b"ackward one expression, etc.

      What makes all this powerful is that emacs can recognize what kind of file you're editing, then it chooses good defaults for the various levels. So if you're programming in C, when moving around one word at a time, emacs doesn't get confused by the punctuation, and if you like to use something like CamelCase, then there's a minor mode which changes for "M-f"orward and "M-b"ackward word commands so the cursor stops before each hump inside an identifier instead of jumping to the next word.

      Unfortunately, emacs has so many commands that there's not enough keys on a keyboard to have simple mnemonics for all the things it can do. That's why we get things like "C-c C-o C-1" in esoteric modes. But if you use specialized modes, the idea is that you should select a key that you like and map the function to it. Usually, the functions keys F1-F12 are completely free to use for anything.

  • by BarneyRubble (180091) on Saturday January 06, 2007 @06:32AM (#17486788)

    > It was a world that is now extinct. People don't know that vi was written for a world that doesn't exist anymore

    I use vi everyday but i've long stopped recommending it to most people i introduce to linux.
    it really doesn't seem worth steep learning curve for most people.

    Do you recommend vi to all new *nix users now?
    • Re: (Score:3, Informative)

      by menkhaura (103150)
      I usually walk them through gvim, and slowly introduce the keyboard commands. If the person isn't a doorknob, she will learn at least keyboard navigation and basic search and replace in no time. Besides, with syntax highlighting, auto-indenting, multiple (split) views on the same window (which OpenOffice to this day can't do) and other goodies make me want nothing but vim, even when I'm on a Microsoft platform.
    • by Aladrin (926209)
      Depends on who you define as a 'new *nix user'.

      If I gave a Kubuntu system to my mother (I wouldn't, because all she does is play those silly Windows-based games) then I would definitely not even show her the command line.

      When we hired a new programmer at work that had very little *nix experience, I immediately told him to learn and love vi.
      • Re: (Score:3, Funny)

        by lanc (762334)
        Depends on who you define as a 'new *nix user'.
        If I gave a Kubuntu system to
        Ahhh. Linux Is Not Unix Xohdontyouunderstandit

    • by larien (5608) on Saturday January 06, 2007 @06:43AM (#17486836) Homepage Journal
      vi is worth knowing at least the basics of, simply because it's installed by default on 99% of Unix & linux systems. The only other editor you can pretty much guarantee to be installed is ed, which is even less user-friendly than vi.

      While emacs, pico etc are installed on most linux systems, you won't find them on Solaris, AIX or HP-UX.

      For an end user, they probably shouldn't worry too much as they'll have kedit or something in the GUI, but *nix admins should know vi.

      • I got used to using pico for years. It was installed on all the UNIX systems I worked with. Fast forward many years when I had to edit a config file on a UNIX server that didn't have pico installed. -- I had to google for vi commands...
  • Speed of vi (Score:5, Interesting)

    by larien (5608) on Saturday January 06, 2007 @06:33AM (#17486792) Homepage Journal
    The legacy of how vi was written is pretty much evident in the terse commands it uses - commands are short, to the point but an absolute bitch to figure out without some reference. However, the short commands are still useful in today's gigabit ethernet world with Gigahertz CPUs - the short commands are quicker to type and for plain text, I'm much faster with vi than any other text editor around.
  • by neongenesis (549334) on Saturday January 06, 2007 @06:41AM (#17486834)

    This is good history to remember. Those who weren't there find it hard to appreciate the tremendous leap forward of Unix Version 6 and ed on a PDP-11. We had been using teco on our PDP-10 and the cousin of ed that was on Multics, but we had been getting into PDP-11s for more and more things. Comparing ed on Unix with the line editors available on PDP-11 DOS/BATCH and that new-fangeled RT-11 thing was amazing. Along with all the other tools available on Unix, the PDP-11 went from a toy to a state-of-the-art (for then) development environment. We were mostly on DECwriters and TI-Silent 700s runing hardwired 1200 baud at work and 300 baud from home over the modems. We started to get VT-100s about the time vi was being released and it was again a great leap forward.

    Thanks Bill Joy! I have used your work in the BSDs and Suns and all the followons over the years, but vi was a most important gift at an important time.

  • by frisket (149522) <peter AT silmaril DOT ie> on Saturday January 06, 2007 @07:06AM (#17486882) Homepage
    Just confirms my {subliminal:emacs} unshakeable {subliminal:emacs} prejudice {subliminal:emacs} that vi had its heyday some decades ago.

    The time for dual-mode editors (where you have to press something before you can begin to type, and then press something else when you stop typing) is long since gone, thank goddess.

    • Re: (Score:3, Insightful)

      by Ragica (552891)
      Many of the elements that made vi usable at 300 baud are what continue to make vi such an incredibly fast and productive to use today, on fast net connections and locally. Once you've gotten over the initial learning curve of course. (But if you use Emacs then editor learning curves are likely the least of your problems.)
  • From TFA: (Score:4, Funny)

    by smitty_one_each (243267) * on Saturday January 06, 2007 @07:14AM (#17486906) Homepage Journal
    finally there was ex
    And there was much ejoycing.
    (ay)
  • by jlherren (1025754) on Saturday January 06, 2007 @07:26AM (#17486946)
    vi was a horror when I started using UNIX systems and I couldn't understand why anyone would want to use such a strange editor. So I went with emacs and was happy. But after a while (dunno how this happened) I went back to vi(m) and invested the necessary time to learn it. I took me about a year before I could say that I'm able to use it efficiently, so the learning curve is pretty heavy. But at the end I don't regret it at all, because I feel a lot more efficient with vi(m) than with any other editor. I couldn't live without it now.

    Good tools are hard to master.
    • Re: (Score:3, Interesting)

      by Cheapy (809643)
      A screwdriver isn't hard to master, and that's a pretty damn good tool if you ask me.
  • Brief (by underware) is better.

    I use both VI and Emacs and I just miss Brief. I thing is that the code was sold to Borland which last I looked became Impress (which isn't impressing me) and the code base is shelved. Can we OSS the code base?

    I understand the issues. What I do not understand is why the HUGE advancements in VI for instance are so obscure that I use it at only a very primative level. Then we have Emacs and xEmacs.

    I think we need some courses put together for kindergarten kids. The biggest issues is that most people are not willing to spend endless hours digging through unorganised and disjointed documentation. So we don't learn what our tools can do.

    This is sad.

    Here is what I think. I think editors have been around for 40 years at least. Some have horrible personalities. But the issue is not the personality... it is the person who loves the personality.

    So perhaps we need to ask why I cannot ask Emacs to present the full "Brief" personality. I know that Emacs can do this. I've programmed a number of elisp commands. The issue then becomes.. how do we work as a community?

    I am certain there are at least a billion answers. I kinda think there is a lot of code laying around that the authors of which pained over and they have "given up".

    I do not know all the things VI can do. I wish I did. I wish I could rent a lecture that showed me. Numbers I got are that this costs $1000 a minuet.

    Maybe this is why its not there.

    Alas
    • by brocktune (512373) on Saturday January 06, 2007 @12:27PM (#17488924) Homepage
      Up until recently I worked at Borland. My whole team was informed by teleconference that our work was offshored. Anyway, I used Brief in the 90s at other jobs, both before and after Borland bought it. So naturally, I assumed it would be easy to get a copy of Brief to do my development, given that my employer owns the program. Sorry, the help desk doesn't know anything about Brief and can't help you. So, I stared googling for a bootleg copy, from my Borland workstation, of Borland software.

      Any wonder Borland is about to go bankrupt?
  • by bl8n8r (649187) on Saturday January 06, 2007 @07:42AM (#17486984)
    I've been using them since 1993 and have never gotten used to them. I got hooked on the Borland 3.1 IDE and IMHO it was a better text editor. I appreciate the efficiency of nano and others when logged in over a serial line, but I really miss BC. One of the biggest problems has been keyboard sets. A Sun keyboard gives different scan codes than a PC and if the terminal settings don't take this into account, things get wacky. You end up with a complete evolution of keys and combinations in each editor just to cut and paste a line of text *ugh*. Nothing the same between them. Another problem with vi (and maybe others) is their growing dependancies on system libraries. I recently tried and install of vi which complained of a gtk dependancy; sheesh. This one [0] is from an embedded arm system (debian). Why do I need gpm when running vi? All I want is a simple, independant text editor that fits in a small space. The mouse isn't even useful in vi (directly). Another curious feature of these text editors is people seem to fancy themselves l33t h4x0r5 when they master the hjkl keys of vi or other un-intuitive keyboard combinations. People, you've not cracked a Gibson here; it's just a text editor. Go fix Bind, then we'll all be impressed.

    [0] vim.basic: error while loading shared libraries: libgpm.so.1: cannot open shared object file: No such file or directory
    • by jgrahn (181062) on Saturday January 06, 2007 @09:50AM (#17487544)
      Another problem with vi (and maybe others) is their growing dependancies on system libraries. I recently tried and install of vi which complained of a gtk dependancy; sheesh. This one [0] is from an embedded arm system (debian). Why do I need gpm when running vi?

      You mean libgpmg1. That's not related to GTK in any way (thank god).

      Personally, I am happy with nvi(1), "a 'bug-for-bug compatible' clone of the original BSD vi". No strange dependencies there. But then I use emacs for all longer editing sessions.

  • by icedivr (168266) on Saturday January 06, 2007 @07:47AM (#17487008)
    The article has definately triggered some nostalgic moments, but it's an article from September 2003 that reports on the content of an interview conducted in 1999. It isn't really news any longer.
  • by GreatBunzinni (642500) on Saturday January 06, 2007 @08:08AM (#17487066)
    I may be a young whippersnapper with only a couple of years of non-MS Windows experience under my belt but if there is one thing that I really felt in love in the unixy-way of doing things then that thing is vi (or vim). Sure, it has a very steep learning curve. After a lifetime of notepad-like editors, who in their right mind finds all those modes and obscure commands palatable? Yet, after a bit of teeth cringing in front of a terminal editing text then all those obscure commands start to sink in, make sense and even getting indispensable. The vi way of editing text is such a time saver that starts to be indispensable. As I see it, anyone with a reasonable vi experience is able to become much more productive at writing text than the regular way. All the operations the user will ever need are literally a couple of keypresses away. You don't need to waste time reaching for and using a mouse, resort to finger gymnastics to use modifier keys... Everything is just there at the tips of your fingers. And even if you need any custom task you can bind any custom operation to a key shortcut and you are ready to go. So many thanks Bill Joy. Your work is much appreciated. Kudos!
  • by B5_geek (638928) on Saturday January 06, 2007 @08:28AM (#17487142)
    I haven't found vi or emacs to be hard enough.

    That why I port edlin to every box I work on.
  • by zakezuke (229119) on Saturday January 06, 2007 @08:30AM (#17487146)
    "My PID is Inigo Montoya. You kill -9 my parent process, prepare to vi. "

    modded down in three, two...
  • by Ambitwistor (1041236) on Saturday January 06, 2007 @09:01AM (#17487274)
    I see so-called "hardcore" Unix geeks advocating 'ed'. Nonsense! The ultimate Unix editor is "cat >filename". All the others are for indecisive wimps who don't know what they're going to write, or incompetent losers who make mistakes.
  • by Chrax (782154) on Saturday January 06, 2007 @09:02AM (#17487282)
    :w saves!

    I actually want that on a t-shirt. I would do it myself, but I don't think my stenciling skills are up to the task.
  • Old networks (Score:3, Interesting)

    by Mostly a lurker (634878) on Saturday January 06, 2007 @09:54AM (#17487568)
    '... meanwhile, I'm sitting at home in sort of World War II surplus housing at Berkeley with a modem and a terminal that can just barely get the cursor off the bottom line.'
    I feel his pain. I can remember, even in the early 1980's, travelling around Europe in a support role with an acoustic coupler (300 bps, sometimes less depending on line quality) to talk back to head office. Those who have never done it cannot imagine what 3270 eumulation across a line at this speed is like. Watching grass grow is exciting in comparison. It did have occasional advantages though: if you mess up the programming of your 3270 data streams, debugging by watching the data slowly paint on your screen is surprisingly useful!
  • my story (Score:3, Interesting)

    by gsn (989808) on Saturday January 06, 2007 @09:55AM (#17487578)
    When I was young and foolish I used notepad.
    When I was forced to learn unix, I chose pico.
    When I learned more about the GPL and linux I chose nano (a whole three orders of magnitude better).
    When I figured out that most of the physics and astronomy I do involves coding, I tried Emacs.
    When I found machines that didn't have Emacs or a network connection, I was shocked and horrified
    (these are remarkably common in the astronomy world though you wish they weren't)
    With no other recourse, I forced myself to learn vi(m). The vimtutor and docs were my friend.
    Now I do not need them. I learned the keys. Then I forgot them. My fingers remember though...
    J'y suis, j'y reste.
  • by drfuchs (599179) on Saturday January 06, 2007 @12:17PM (#17488824)
    Sorry, Bill, but your memory has dropped a few bits. Even back in the 1970's, EMACS was very careful about doing only the absolute necessary screen updating, and worked quite well at 1200 baud. The code made all sorts of effort to take advantage of whatever capabilities your particular terminal had for moving text around on the screen by itself (such as inserting a character within a line without re-sending the whole line; ditto for inserting a new line without having to re-send the lines below it). See "The Display Processor" section of Stallman's "EMACS: The Extensible, Customizable Display Editor" 1981 paper for the ACM Conference on Text Processing http://www.gnu.org/software/emacs/emacs-paper.html / [gnu.org] for more info on the optimizations involved.

    I remember once getting really fooled by this. I'd accidently created a file with two sequential copies of the text I thought I had. I searched for "foobar", which worked as expected; then I searched again. The screen didn't change, and the cursor didn't move. So, first I checked if the mainframe had crashed, but that wasn't it. It took many minutes of fooling around to realize what had happened: EMACS had figured out that the screen already looked right, so no need to do anything (except perhaps update a character or two on the status line). I wonder how many other people had similar experiences back in the day.

    So, sure EMACS may have been too big to run fast on Bill's machine, but bandwidth to the terminal had nothing to do with it.

  • by Animats (122034) on Saturday January 06, 2007 @12:25PM (#17488900) Homepage

    Long before Bill Joy, UNIX had a good full-screen editor - the RAND editor [rand.org]. The RAND editor dated from the early 1970s. [faqs.org] I used it at Ford Aerospace, and it was much nicer than "vi". But it wasn't free. You had to pay RAND for each copy.

    The RAND editor was much closer to "what you see is what you get" than "vi". It was a full-screen editor with all the commands on function keys. All the keys like "insert", "delete", etc. did what you'd expect. Labels were provided to show what each function key did. So it was far more user-friendly than "vi".

    The RAND editor was modestly portable from terminal to terminal. It worked best on HP terminals of the period, and was table driven so that it could support different devices. But you had to change the tables in C and rebuild to add support for a new device.

    The RAND editor had fewer "mode" issues than "vi". What you typed went in at the cursor position. For a few special commands, like "find", a special line at the bottom of the screen was used. But you could always see visually what was going on. Much better look and feel than "vi".

    Those of us who had both available used the RAND editor.

    Some of what Joy is credited for in the early days of UNIX reflects the fact that he worked for a tax-funded organization working under a contract that allowed them to give software away.

  • by PhotoGuy (189467) on Saturday January 06, 2007 @01:24PM (#17489424) Homepage
    One thing Joy didn't mention, but I think is probably safe to imply, and one of the reasons that vi is still my favorite editor: because of its modes, you don't have to rely upon special keys (arrows, function keys, etc.), because the navigation is done with the standard alphanumeric keys (which the typewriter keyboard was designed for, not for taking the hands off the home position to reach for arrow keys and such).

    One can edit in VI very efficiently without moving the keys from the home position, and doing unnatural stretches for odd keys.

  • by petrus4 (213815) on Saturday January 06, 2007 @04:41PM (#17491366) Homepage Journal
    I've trolled about vi myself a couple of times in the past, but installing FreeBSD a few weeks ago finally convinced me to take the time to pick up at least a very rudimentary degree of mobility in it.

    If nothing else, the one thing which it gave me which I'm actually grateful for is that it disrupted my old habits/patterns (if only temporarily) and forced me to have to think. Vi is a thoroughly alien interface compared to virtually anything else I've used, and although with the tutorial (which is surprisingly good) it's discoverable, I don't feel it would have been without it.

    I'm still undecided as to whether or not I feel the interface has actual technical merit, or whether it's simply something vestigial that certain people are so fond of for whatever reason that they've been unable to force themselves to throw it away...although if it's true as Mr Joy says that the editor was originally designed for, and works in, extremely low-bandwidth environments, then that element at least is something which I feel is very much worth keeping.

    One thing which I find extremely distressing these days is that many people seem to feel that the conservatism which motivated the philosophy behind a lot of early UNIX software is an anachronistic attitude and is no longer warranted, given the glut of cpu cycles and other system resources we now find ourselves in. I would urge such people to remember that even under normal circumstances, in some situations (such as embedded/small devices) such is not always the case, and that not only that, were a sufficiently large scale disaster of some kind to happen, it could universally cease to be the case also.

    Conservatism is a good thing to hold onto. Certainly, when the sun is shining and everything is fine, you can feel lulled into believing that not only do you not need it, but that you'll never need it again. If the last few years have been any indication however, some parts of the world are going to continue to face severe environmental catastrophes going forward...and the conservatism of old school UNIX may be one of the only things we know about that could keep computer infrastructure going in such places under such conditions. It is very strange how the past can often end up being the present and the future, especially when we do not expect it.

We warn the reader in advance that the proof presented here depends on a clever but highly unmotivated trick. -- Howard Anton, "Elementary Linear Algebra"

Working...