The missing semester of CS education
&gt; Vim avoids the use of the mouse, because it’s too slow; Vim even avoids using the arrow keys because it requires too much movement.<p>I&#x27;m sorry, it isn&#x27;t my intent to start an editor war.  Use whatever you want, I don&#x27;t care.  Just don&#x27;t lie about it.  I expect far more from MIT than this nonsense.<p>VI and VIM are what they are because keyboards of the era --and the entire UI-- looked like this:<p><a href="https:&#x2F;&#x2F;retrocomputingforum.com&#x2F;uploads&#x2F;default&#x2F;original&#x2F;1X&#x2F;d4ee796ce7397d62b975d7ab03a8e0975146b330.jpeg" rel="nofollow">https:&#x2F;&#x2F;retrocomputingforum.com&#x2F;uploads&#x2F;default&#x2F;original&#x2F;1X&#x2F;...</a><p>Notice the location of the Ctrl key.  It used to be where the Caps-Lock key is today, making it FAR more convenient and comfortable for entering Ctrl sequences.<p>This is from a Tektronix terminal, which I used in the early 80&#x27;s.  Here it is:<p><a href="https:&#x2F;&#x2F;www.computerhistory.org&#x2F;revolution&#x2F;input-output&#x2F;14&#x2F;349&#x2F;1826?position=0" rel="nofollow">https:&#x2F;&#x2F;www.computerhistory.org&#x2F;revolution&#x2F;input-output&#x2F;14&#x2F;3...</a><p>The VT-100, if I remember correctly, introduced four cursor keys:<p><a href="https:&#x2F;&#x2F;www.computerhistory.org&#x2F;revolution&#x2F;input-output&#x2F;14&#x2F;349&#x2F;1849?position=0" rel="nofollow">https:&#x2F;&#x2F;www.computerhistory.org&#x2F;revolution&#x2F;input-output&#x2F;14&#x2F;3...</a><p>I also used VT-100&#x27;s and clones during the &#x27;80&#x27;s.<p><a href="https:&#x2F;&#x2F;www.computerhistory.org&#x2F;revolution&#x2F;input-output&#x2F;14&#x2F;349&#x2F;1697?position=0" rel="nofollow">https:&#x2F;&#x2F;www.computerhistory.org&#x2F;revolution&#x2F;input-output&#x2F;14&#x2F;3...</a><p>Notice the total absence of anything even resembling much more than a simple typewriter.  No mouse, function keys and other modern facilities.<p>So, yeah, if you were writing a text editor at the time, you would be well served to do such things as implement modal view&#x2F;insert operation for more reasons than just the archaic keyboards.  These terminals were used to connect with remote systems at VERY LOW BAUD RATES.<p>It&#x27;s hard to imagine that BAUD 300 or 1200 was great speed at some point in history.  In that context, cursor keys or grabbing a scroll bar with a mouse to yank it around with abandon made no sense.  You were literally only able to receive from 30 to 120 characters per second...and a screen with 80 characters by 25 lines had 2,000!<p>This is another reason for which escape control commands had to be invented.  You had to be able to address you 80x25 canvas and place text where needed rather than to refresh the entire 2,000 character screen.<p>This is why, quite frankly, I hate the &quot;cult of vi&quot;.  Cult members are, for the most part, people who have no historical connection to where this tool came from and why.  We, at the time, would have KILLED for a graphical UI with a mouse.  Yet that was impossible at the time due to both machine and connection speed limitations.  You literally could not have used it even if you had it.<p>So, yes, at the time, if you had to write a text&#x2F;code editor (I wrote a few) you had no choice but to use a bunch of Ctrl-&lt;something&gt; codes and perhaps even implement a distinction between reading and inserting code.  I still remember sequences like Wordstar&#x27;s &quot;Ctrl-k-x&quot; running on an 8080 S-100 system with, yes, a VT-100 terminal attached.<p>Yes, the VT-100 introduced four cursor keys, but if you were writing software at the time you could not make the assumption that the user had access to cursor keys, most keyboards did not have them until much later.  That assumption was not safe when VI was created.<p>Like I said above, use whatever you like, I truly don&#x27;t care.  Just don&#x27;t lie to yourself about it, particularly when the truth is a matter of history.  I think most people who came up through that era of computing laugh at the vi&#x2F;vim cult because from our perspective --not yours-- it is complete nonsense.  This text editor had NO CHOICE but to be as it is due to being written for crappy computing hardware and environments of the time.  If you had to use one of those systems today you would be horrified.  If you had to write a text editor back then you would write it exactly this way.  And the minute a decent an ubiquitous GUI showed up you would drop it like a hot potato and try to forget the nightmares.<p>MIT Computer Scientists ought to know history and not print nonsense like that.  That entire paragraph about VI is basically wrong, historically wrong.  You can leave it like that and perpetuate a fantasy or correct it and at least show some respect for history.<p>And then do everyone a favor and explain that the speed of text entry is of no consequence whatsoever.  MIT should not propagate that cultist belief.  The time devoted to things having nothing to do with text entry is, in some cases, orders of magnitude greater than text entry.  Not everyone is a PHP script kiddie.  Some of us are writing real and complex software, some of it with life&#x2F;death potential, and code entry is so ridiculously low in the scale of where time is spent and what things are important that it is absolutely laughable to talk to someone who has become religious about text editors because of stuff like this out of a respected university.  Do you really think code entry speed and efficiency is important at all when working on the code for an MRI machine, a space capsule or an implantable insulin pump?  Exactly!<p>If coding is factory work, then, sure, mechanize as much as possible and count strokes.  That would be the day I become a gardener.