I could reply in detail, but you missed my core point, so I'll pick out just a couple of the more relevant ones to reply to:
vi on the other hand has the advantage of being universal.
Which is what we were told in the lab too. But how sad is that? I shouldn't have to "make do" with a shitty text editor that's saddled with the lowest-common-denominator limitations of the 37 year old systems it was originally developed for, in 1976!!! This is the problem with both UNIX and Linux: they haven't really changed, at their core, for three or four decades. Sure, there's GUIs and whatever on top, but a soon as you want to build real systems, it's time to roll the sleeves up and get elbow deep in decades old crap, with all the limitations and inefficiencies that implies.
Sure, there might be some sort of masochistic pride in learning how to use a text editor that basically no first-time user can even exit without a cheat-sheet, but I have better uses for my time.
Type "top". When it comes up, type the letter "M" (for memory). Five keystrokes, and you get it updated continually.
Did you not read the bit where I said that the whole single-letter option thing is insane, because nobody can possibly guess what commands mean based on just one symbol?
The whole two- or three- letter commands with one-letter options isn't a good thing, it's a legacy from the ancient times when tab complete didn't exist, and "terminals" were typewriters. In that era, every character saved improved administrator efficiency measurably.
Here's a hint, in case you've been living under a rock for the last four decades: those times are over. I have a 1920x1200 LCD screen, and my phone gets 10 megabits. I don't need to be shaving a few hundred bits off my commands so that it will transfer faster over a 300 baud link, because those exist only in museums.
So back to your "example": So great, I can sort by "memory" by pressing "M". Awesome. Here's the columns I could sort by in Windows:
> Get-Process | Get-Member *memory*64 | select -ExpandProperty Name
NonpagedSystemMemorySize64
PagedMemorySize64
PagedSystemMemorySize64
PeakPagedMemorySize64
PeakVirtualMemorySize64
PrivateMemorySize64
VirtualMemorySize64
First of all, that command line made perfect sense to you, right? You can understand what it means, without having to look up any of the commands in help.
For Linux, I have no idea how what memory statistics are available for a process, but Google came to the rescue with what looks like the likely set:
vsize - The size of virtual memory of the process.
nswap - The size of swap space of the process.
cnswap - The size of swap space of the childrens of the process.
size - The total program size of the process.
resident - Number of resident set size, this includes the text, data and stack space.
share - Total size of shared pages of the process.
trs - Total text size of the process.
drs - Total data/stack size of the process.
lrs - Total library size of the process.
dtp - Total size of dirty pages of the process (unused since kernel 2.6).
Answer me this: Which one is "M"? What are the letters for the other ones? Do you know off the top of your head? If you see some random "top" command-line, would you be able to immediately identify every single option from memory? Can "top" sort by any of those columns? What about every other Linux command with a single-character options? Have you memorised all of them too?
PS: right after I finished typing all of that up, I actually read through the Wikipedia "vi" page. I love this bit:
"Joy used a Lear Siegler ADM3A terminal. On this terminal, the Escape key was at the location now occupied by the Tab key on the widely used IBM PC keyboard (on the left side of the alphabetic part of the keyboard, one row above the middle row). This made it a convenient choice for switching vi modes. Also, the keys h,j,k,l served double duty as cursor movement keys and were inscribed with arrows, which is why vi uses them in that way. The ADM3A had no other cursor keys. Joy explained that the terse, single character commands and the ability to type ahead of the display were a result of the slow 300 baud modem he used when developing the software and that he wanted to be productive when the screen was painting slower than he could think"
Haha... that's just gold!