In The Beginning Was The Command Line, Updated
Unqualified code-monkey Garote submits his annotated version of Neal Stephenson's In The Beginning Was The Command Line, updated to discuss UI design theory and fill in some of the gaps from the last five years. (And yes, he has been granted permission from Neal to do this.) There's plenty more to cover of course: Will the command-line last only as long as the keyboard? How will desktop search technology change our workflow? What about the 3D interface? Scroll to any random paragraph in the essay and you'll find something worth expounding on. What's ahead for the next five years?
I thought in the beginning was the "punch card".
Talk about a bad UI!
"Leo Fender was in a 'state of grace' when he designed the Stratocaster." -- Paul Reed Smith
"I was raised on the command line, bitch"
there's no place like ~
What is this GUI thing you speak of, you young whippersnapper? I'll use a command line 'til my dying day, pounding the keys with my cane if I have to.
What's ahead for the next five years?
Hopefully, some higher power will pick an OSS desktop, create some interface and application standards and we can all start dumping Windows. Until then, my Linux migration ends at the point where I have to pick gnome or KDE (or even something else).
Which one should I pick and why?
More
Keyboard ain't going anywhere. Expect it to exist for as long as there are words to type.
"Evolution optimized homo sapiens for wandering the savannah - moving around a plane - and not swinging through the trees. Today this evolutionary bias shows in comparing the number of people who drive a car versus the number of helicopter pilots: 2D navigation (on the ground) vs. 3D navigation (in the air)."
What absolute, total, bollocks. Cost of helicopters vs cost of cars has not figured into this tit's thoughts, then?
I read this book when it first came out and I have to say that I was quite disappointed.
His insistance that Windows doesn't have a command line shows a deliberate distortion of the truth to try to make his point.
Any REAL Windows Admin knows this is false and it's a prime way to identify an Anti-MS zealot.
Anyway, it hasn't stopped me being a fan of NS, but it did disappoint me in a big way.
Goofy, Geeky Gifts and More!
People use the command line nowadays to control servers by SMS. Spoken commands, as well, are likely to follow a command-line type interface. Just uttering "Tea, earl grey, hot" in expert-mode is a lot less infuriating then "press 1 for tea, press 2 for coffee, press 4 for chocolate milk, press 5 for cola, press 6 for beer" -- (6) "Press 1 for lager press 2 for stout press 3 for ale" (1) "press 1 for hot press 2 for cold" (2) "Press 1 for alcohol free press 2 for alcohol-rich" (2) "Press 1 for carbonated 2 for cat-pee" (and so on)
Visit http://ringbreak.dnd.utwente.nl/~mrjb/growingbettersoftware to download your free copy of the book
The current state of the human interface to computers works well because there is an extremely limited number of commands a computer (or computer program) understands. As computer sophistication improves and functions increase in complexity, the "point and click" interface will become too cumbersome. It is inevitable that the typical user interface will evolve toward the same one used between humans for everyday interaction, e.g. the spoken word.
IMHO
There are many ways to predict the future, I personally think the monitors will be everywhere, from our flat's walls to our clothes' sleeves.
It'll still be flat (2D) and people should now realize that what counts is the input.
For years, we only had one focus at a time and this should change, thus allowing drastical changes (imagine if several networkedusers have a focus on an app at the same time... impossible ? who remembers the Acorn "Spheres of chaos" where 4 users could play on the same machine at the same time ?).
So, I'd go for a more practical approach to a 2D interface (I was thinking of some itnerface that would ban both scrollbars and overlapping windows by magnifying the active zone of each focussed elements while reducing the others thus making these still visible, ergo invokable)...
Trolling using another account since 2005.
When seeing an article like this going on about command line histories and 3D desktops, it's interesting that a major new feature in Microsoft Longhorn will be the completely new shell code-named Monad. Hm. Better late than never, I guess. I wonder why they see a need for it though; aren't they trying to move away from a command line? Maybe it's an attempt to get back users having switched from Windows. Who knows, but that sounds a bit strange too, since it won't be very compatible with a *nix shell either. :-/
IMHO, it's one of the strangest and most surprising moves in Longhorn.
Beware: In C++, your friends can see your privates!
I studied English lit and ancient Greek in college. I gained the best understanding of grammar, syntax and sentence structure from Greek. Breaking down those huge words, looking at a language from scratch -- it has helped me the most in English. It's tough now to not see Greek in English words. I view prepositional purposes from the Greek model and all parts of speech came into light through Greek (queue the "it's all Greek to me" jokes).
When it comes to computing, I started out at the command line. True computing, to me, IS the command line, and I gained the most understanding of computers from it. I prefer to use Linux that way (I don't load a GUI). "Windows is a good terminal" is how I think Richie put it, and although the GUI is here and necessary, real computing will always be from the command line. I will admit Lynx never replaced a GUI web browser for me, but someone who really knows the command line (and therefore the OS) can run circles around the mousey admins....
"All great things are simple & expressed in a single word: freedom, justice, honor, duty, mercy, hope." --Churchill
"The only good thing about windows is I can run multiple sessions of DOS."
Three digits were turning to zero for God's sake! We're lucky to escape with our lives. Remember what happened to people in the year 1000? Of course not - because they did not adjust their computer code to handle Y1K and they all perished.
Interaction with a computer will evolve to the point that we think and the computer picks it up. It's plausable that our very thoughts could someday be tuned in much like you can pick up someone's bluetooth network from a short distance away which leads to major privacy concerns. However if we become closer and more intergrated into machines with enhancements it could very well be that we give up on privacy for the benefits of group mind (What one knows all know).
Let's face it, without OS/2 there never would have been a Windows 95. Rising competition from OS/2 caused Microsoft to release a very cut down version of Cairo, and step up it's anti-competitive strong arming of IHVs and ISVs. Competition from Linux is the only reason stability has increased in Windows, and is driving MS to address security issues. Apple still has very little competitive influence, since it doesn't look to expand much outside of it's niche market. OS X was surgery to stop the bleeding, not a grab at extra marketshare.
I can understand the hype about searching for things on other folks' computers (such as on the internet) because I don't have a priori knowledge about where to find some information.
When I store things on my computer, however, I already (at some point) know where that bit of information is. I created my own "filing system" optimized for the way I think. You might say it's some sort of O(1) function to find something (now, navigating to that something might be a little more difficult). The human brain is way better about managing the location of objects than a computer (so far) in terms of retrieval.
Think about it: the word "search" connotes looking for something you either think or know exists somewhere, but you don't know where. If you know where something is, you don't search for it but just go and grab it.
Now, of course there are times when you haven't used something in so long that you might not remember where it is, and I can see how a search might come in handy for that. But if most people use computers like I use them, they use a small subset of the things on their computer very frequently, and the rest is archived away. I would have to say that less than 5% (that's a 95% confidence interval - it's probably way less than that) of my total computing experience (on my desktop) is spent on trying to find stuff.
Does anyone out there know how "desktop search" is supposed to improve the way I do work when most of the time I am either creating new data (programs, documents, etc.) for a specific purpose or playing games? Am I missing something about the power of "searching" in general?
"There are a dozen opinions on a matter until you know the truth. Then there is only one." - CS Lewis (paraprhase)
as a former windows power user who transitioned completely only about a year ago, let me offer this advice:
Pick up an ubuntu cd, give it a partition, and use it more than the two minutes it takes to conclude it's not windows.
Seriously. Forget windows is even there for a week. Pretend someone stole your old computer and all they left you with is this weird piece of shit doppelganger that sorta looks like your old pc, but everything's just a little "off."
Accept the fact transitions are not always easy, and give this doppelganger a week of your computing life. Then go back to windows.
And make sure you have some clean clothes handy, because you're going to need a shower afterward.
Please no! I find it difficult enough making myself understood to other human beings.
Stick Men
The size of the profit (even if I believe his numbers) is irrelevant without considering both the number of units moved and the size of the profit margin. In MS' case, even if they are only making 10 bucks a copy on XP (which I highly doubt), the marginal cost to make it is like 50 cents, so they can essentially print money. However, he's right about the longterm viability of the operating system business; but if he doesn't think that Apple would switch places with MS from a pure business standpoint, he's wrong.
beware the jabberwock, my son! the jaws that bite, the claws that catch!
1) is a valid point. The thing is, Macs are next to non-existant around here, and software developers like me simply have no choice.
:p
2) One word. "alias".
3) Bash is Turing-complete, and if it's not enough, you can always extend it. I've once made a playlist by mpg123 `perl -e 'xxxxxxxx'` where xxxxxxx was around three screen lines long
On the other hand, show me an explorer.exe/KDE/whatever way to say "change all the filenames in this dir to lowercase". Or even "rename all these files from *.foo to *.bar".
The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
I'm a die hard command line user, yes. I have no delusions about it always being better than a GUI--I use both--but I do a significant amount of work from the command line.
What's peculiar to me is how crusty and stale most command line environments have become. Most UNIX users swear by bash, which isn't even as nice as 4NT for Windows. Feels like there's a lot of room for improvement here. For example, how about capturing all of the output per command, then quickly allowing you to scroll through a list of previous commands and jump to its output? Or getting away from overly static command line windows and instead having something like a simple text editor, where you can move around in a "document" and press Enter at any time, with the output always appearing below it (some language interpreters work like this). And shell scripting languages are irrelevant these days, so a shell doesn't need to be bulked up with such commands. Just use Perl or Python (or whatever) for that sort of thing.
Note again, I'm not trashing the command line. I'd simply like to see it move forward.
When comparing a industrial strength drill (hole-hawg:unix/linux) to a normal drill (consumer-drill:windows/mac) the commenter writes:
What's more powerful, a hole-hawg, or a five-speed consumer drill with large grips, a safety shut-off, and a built-in level? The hole-hawg, obviously. But which would you rather use to drill, say, five hundred chandelier mounts in a ballroom?
I have to go with the tool that has a good chance of drilling 500 mounts. I don't trust fancy consumer drills to survive drilling many large deep holes.
Which, I think, also applies to unix/linux. I don't get all misty-eyed and sniffly at the thought of using a shell and good ol' CHUI tools. Nope. I use them because they consistantly get the job done quicker and easier than other tools.
The problem is that a lot of these nifty tools are scary, in meatspace and in cyberspace. They also require some training before use -- a steep learning curve. Take a bolt extractor (looks like a very corsely threaded thich screw with a square end for the wrench). Hand one to the average person and they won't know what the hell its for. But with a little knowledge and another simple tool (a good drill and a bit for metal) its rather useful to take out a broken bolt. What about a cutting torch? Screw up, and you'll be seeing grandma and Elvis. Learn to use it correctly and you'll be able to remove a drum from a vehicle with rusted out brake hardware, or to cut through thick chunks of iron.
Are these tools a little macho? Perhaps some of them (cutting metal with fire is damn fun). But is that why these tools are in use? No, these tools are used because they get the job done.
I have money in the bank, and I spend enough time in front of a monitor to be able to justify the purchase of software tools if they were able to fulfill a need that OS tools could not (and a certain proprietary OS is an excellent software tool for running proprietary games).
This commenter reminds me of someone who got into OSS because OSS was "cool".
Imagine someone who decides that he'll learn vim because hackers use vi (or emacs). He looks at a cheat sheet, figures out what i, a, hjkl, and :wq does, and is content at being a "hacker" for the next six months. Afterwords, he discovers some nice commercial IDE and, sick of the lack of features he finds in vim, decides to go with the commercial IDE. After all, he knows that vim can't lookup man pages for functions, jump to a function declaration, change its indentation style, edit multiple files, integrate with compiler errors, or a host of many other things that the commercial IDE can do. He sits back convinced that those OS lusers are fooling themselves, the same way he fooled himself.
All this discussion made me think, what is the ultimate UI? An obvious answer is another human or humaniod. We will use all of our natural channels of communications, with negligible learning curve. Obviously such a system requires great break throughs in AI.
In the beginning there were a bank of switches.
AND WE LIKED IT LIKE THAT.
If you couldn't be bothered to translate the error codes from hex and look them up in the manual, who needed ya?
Now scram. It's grandpa's naptime.
"First you get the Linux, then you get the power, THEN you get the women"
> On the other hand, show me an
> explorer.exe/KDE/whatever way to say "change all
> the filenames in this dir to lowercase". Or even
> "rename all these files from *.foo to *.bar".
Krename? http://www.krename.net/Screenshots.11.0.html
For the KDE part that is..
Nobody expects the spanish inquisition!
"If Jakob Nielson's useit.com is ever linked to again on Slashdot, I will add "127.0.0.1 slashdot.org" to /etc/hosts"
;)
3 lines below, AC cuts off the very branch he sits on:
"The UseIt article is 6 years old. The advances in 3D desktops, screen resolutions and HCI devices have improved since then. Link value = 0 --Blade-Melbourne"
Good riddance
The annotator's main point in response to Neal was that the right interface is the one that gets 'whatever work you are interested in' done.
His constant comparisons to cars and drills and toasters miss the mark by a mile. Those appliances are not about extending your mind.
Computers are about amplifying your mind's ability to process information. Large numbers of people agree with each other on how they want their toast prepared, their holes drilled, and their vehicles to work and can safely leave all the decisions about how best to do those things to specialists.
Every person, however, has a different reaction to reading a great work of literature. There is enough overlap between people's experience in reading any given book that people can meaningfully discuss literature with each other, but not so much that we could expect another person to read Moby Dick for us and tell us what it means to us. The only way to know what Moby Dick would mean to you is to read it yourself.
How telling that the annotator didn't want to touch Neal's last section, the left pinky of god, where he points out that this quest for the perfect interface to 'get something done' makes no more sense than a button labeled 'life my life for me.'
You are the only one who can possibly make all the decisions that count as 'living your life.'
I think programming (in the broader sense of understanding the hardware and software's theory of operation well enough to arrange the 'pieces' to carry out an analysis or goal), will become more and more a part of the average person's use of computers, just as reading and writing and thinking in general continue to become and larger part of the average person's life.
Software, on the other hand, is a whole different business. It costs you millions to develop a large piece of software, and that cost is fixed. It doesn't matter if you sell one copy or a million copies of the software, you still have to pay that initial up-front cost.
However, once you have the software written, it's all gravy. You stamp out CD's for 40 cents each and send them in air-filled boxes for just a few cents more, yet consumers are often willing to pay over $100 for that box.
Not only does MS sell more units (than any given hardware company, including Apple) but they make a much larger percentage than a hardware company because they can churn out additional units for nearly nothing. This is why Microsoft makes so much damn money. They've never been foolish enough to get into the hardware business. They stick to software, because that's where the money is.
--This sig is in beta. Please let us know abut any errors you find.
The marginalia referred to in this thread don't amount to much; they lack continuity with the article, and come across as the querulous interjections of an adolescent schoolboy. The commentator has a number of valid points (which I don't dispute), but he has a long way to go before he approaches Stephenson's calibre as a writer.
Bottom line: if anybody is going to "revisit" the article, my preference would be for the original author to do so.
I find that I can do some things more efficiently on the command line while others are much easier with a gui.
For instance, I have a directory, and I need to copy 10 out of a 100 files. There's no commonality between the ten nor are there any distinguishing characteristics. GUI's excel at this.
Now I want to rename a bunch of files and add a old. prefix to them. That's easy on a command line, but difficult to accomplish on the current crop of GUI's, at least that I've used.
So why slam either. Each is a tool with its own advantages and disadvantages.
Keyboard isn't going away until something more efficient comes along. Sure there will be cooler input devices and they'll have strengths, but for general input into a computer nothing beat a keyboard out side of direct neural interface. It would be nice to see more efficient keyboards become mainstream.
-- fiewl diwor dowe wutie er godist phudo
OK I had to try this. Here is the random paragraph:
"The Microsoft Gorilla, on the other hand, cannot be trained. Instead, you must keep rephrasing your directions until the MS Gorilla can comprehend them. He consumes both front seats, lowering the mileage of your car, and blocking most of your view. Though he sounds like a bad deal, MS Gorilla is actually extremely popular, because he looks impressive, drives aggressively, and keeps his mouth shut. If you speak in his limited vocabulary, he will take you Where You Want To Go Today ... especially if he can plow monkeys off the intervening road. However, if you touch anything on the dashboard, or try to haggle with him over the exact route, he may become irritated and casually drive your car into a telephone pole. People learn to not argue."
WOW! What a great image. It does a great job of describing Microsoft's OS too. In fact that is why I don't care for Microsoft. I like to fiddle with the dashboard. I'm always changing the radio station or adjusting the temperature.
Insert Generic Sig Here:
The original author is unable to concede that a GUI can actually be more beneficial than a CLI in enough cases to justify its existence, and the annotator is unable to concede the converse - that the CLI is still a very powerful tool.
The problem with this article, and the computing world in general, is that it has polarized itself into two camps:
- The James Hetfield "Command-line BAD!" camp, who will only appreciate DWIM computer features.
- The super-geeks, who, with their French accents and their four-dollar lattés, sneer at the technologically challenged and take pride in using the most obscure tools to complete their tasks.
Until the most polarized people in both camps can get themselves to realize that both sides are wrong, we will never have the computing renaissance that we all dream of.I pity the foo that isn't metasyntactic
Well, I read about half of it. This guy, IMO, is not a great writer, nor a great bearer of insight into the issues involved (NS is both). A lot of his 'annotations' sound like he's just trying to argue with NS. I think the 'monkey' part was imaginative, but most of the rest was dreck. I don't think this guy was a good choice to update NS's work.
The parent's example is ridiculous. The Windows CLI "can't do" the same thing, supposedly. That's bollocks. Both Unix and Windows CLIs provide for this. It's the *applications* availiable from the command line that this example relies on. There are find, grep and sed implentations for Windows. I think even the $1 can be handled by the DOS "for" command. It's not like the find command is the most usable command around, eh? I've met so many experienced Unix users that had no idea of all it was capable of. (And that {} syntax is so weird).
It's true that the Unix CLI is more powerful but the Windows CLI with DOSKEY is quite reasonable.
Besides, something as complicated as this command line is typically *much* better done as a simple script, IMO -- which is then invoked from the command line, of course.
I'd let him comment on my writing, too. Just because it would make me look great.
His writing is so abysmal that it just makes Stephenson look even smarter by comparison. I stopped after he turned the car dealer metaphor into a monkey metaphor.
Monkeys? Chauffering me around? Dude, I'm freaking out. Car dealers I get. Linux, OS X, BeOS and Microsoft, I get.
Chauffer monkeys? I don't get. Never had one, never want to have one. I don't even want to think about little blue-suit monkey-men driving me around. What kind of world do you live in??
I'm stuck now, because I want to go back and re-read the original, but I can't take more of the monkeys. Google gave me this link: perhaps you all will appreciate it as well. Original Command Line essay without the monkeys.
I first tried it coz Mac OS X doesn't come with ksh, where my previous experience was, but it did come with zsh which was supposed to be like it.
But since then, I've come to love some of its unique features. In particular, the recursive filename completion is just wonderful -- I use it all the time, and it makes things so much easier. All right, you can probably use the 'find' command to do many of the same things, but having it right there in the globbing is so much neater and easier.
Trivial example: to remove a file from the current directory, I might use
To remove it from any subfolders too, I just use But it's much more powerful than that: it's trivial to select files by type, size, permissions, age, &c &c, and there are exclusions and umpteen other possibilities. In fact, I haven't used the find command once since getting the hang of zsh!And zsh has many other great features, too, including most things I recall from bash, ksh, &c. And it's free and open source, and supplied with Mac OS X... I'm really surprised it's not more popular, coz IMO it deserves to be.
Ceterum censeo subscriptionem esse delendam.
far enough!!!
in my day this would have run 18 levels deep and still had time for a quick python reference
bah!*@%!
No. Originally, what became Windows 95 was slated to be released as Cairo in 93. Cairo was too ambitious of a product to get done in the original time frame. Cairo was supposed to be the merging of the Win3.x branch with the NT branch with a bunch of new technologies thrown in to boot (like OFS).
Microsoft was probably still about two or three years away from having a releasable version of Cairo, when they decided to divert resources to produce Windows 95.
OS/2 scared Microsoft enough to drop plans for a much bigger rewrite and instead release Windows 95, and it was based on their fear of losing a chunk of the home market AND the big chunk of the business market that Windows 3.x had finally acquired them.
Microsoft's activities vis-a-vis the IBM PC Company show pretty conclusively that they viewed OS/2 (especially v3) as a threat.
The thing which made it look half-baked (rushed) was the (relatively) last-second decision to drop the old shell and put the Workplace Shell on top instead. OS/2 2.0 with the old Program Manager shell was pretty darn solid and could have actually been released six months earlier. Should have been, in my hindsight opinion.