
In the Beginning Was the Command Line (1999) - ohjeez
http://cristal.inria.fr/~weis/info/commandline.html
======
leoc
Reproducing an ooold comment from elsewhere
[https://www.reddit.com/r/programming/comments/hwnm/unix_the_...](https://www.reddit.com/r/programming/comments/hwnm/unix_the_hole_hawg/ci4x8)
:

The real problem with Stevenson's account is that the command line is no more
the True Reality Behind Appearances than the GUI is; it's just another shadow
on the cave wall. ( _Especially_ on Unix, where the shell is just another
user-space program.) Eben Moglen identified the problem with the GUI (as we
know it)
[http://www.cabinetmagazine.org/issues/1/i_moglen_1.php](http://www.cabinetmagazine.org/issues/1/i_moglen_1.php)
more precisely:

> What I saw in the Xerox PARC technology was the caveman interface, you point
> and you grunt. A massive winding down, regressing away from language, in
> order to address the technological nervousness of the user. Users wanted to
> be infantilized, to return to a pre-linguistic condition in the using of
> computers, and the Xerox PARC technology`s primary advantage was that it
> allowed users to address computers in a pre-linguistic way. This was to my
> mind a terribly socially retrograde thing to do, and I have not changed my
> mind about that.

(Which seems a fairer comment on the Lisa or Macintosh than the [2016 edit:
LRC work] at PARC, where they were trying to teach children to program
[http://portal.acm.org/citation.cfm?id=155364&dl=ACM&coll=por...](http://portal.acm.org/citation.cfm?id=155364&dl=ACM&coll=portal)
.)

In Doug Engelbart's words
[http://www.technologyreview.com/read_article.aspx?ch=infotec...](http://www.technologyreview.com/read_article.aspx?ch=infotech&sc=&id=11992&pg=4)
:

> Here's the language they're proposing: You point to something and grunt.

~~~
qwertyuiop924
I disagree. True, command lines are another shadow on the cave wall, but
they're a _sharper_ shadow: they show more of what's actually happening, and
they give you tools to get more information about, as Stephenson would put it,
"the tangled nam-shubs beneath." This is arguably not inherent to the command
line, but it's definitely inerent to how GUIs work: GUIs cannot compose, are
harder to script, and cannot show the kind of info CLIs can, if they wish to
remain accessible (there's a reason there's no graphical method to get the
inode number of a file). I think Stephenson expressed this quite well.

~~~
rer
How would _you_ do GUIs to make them compose, script, and show the kind of
info CLIs can?

~~~
Fr0styMatt88
I'd point to the work done on tangible UIs and programming environments for
that.

For example, the work on tangible UIs eg- Self:
[http://www.selflanguage.org/](http://www.selflanguage.org/)

This is a good demo of what could be done in the Self environment:
[https://www.youtube.com/watch?v=Ox5P7QyL774](https://www.youtube.com/watch?v=Ox5P7QyL774)

GUI and non-programmability are tangential things. I don't think they're
implicitly bound together.

~~~
rer
Mmm I don't know. Self looks like yet another overdesigned thing at 100k+
lines of code that doesn't compile. After 3 mins on the site, I can't figure
out the main thing it does.

Sure, the adaptive compilation is nice, and message sends and type inference,
but how well do the UIs work?

It's sort of cool to see Urs Hölzle and Craig Chambers in the papers section.

[http://bibliography.selflanguage.org/_static/urs-
thesis.pdf](http://bibliography.selflanguage.org/_static/urs-thesis.pdf)

~~~
qwertyuiop924
Self is the language that invented prototypical inheritance and the Morphic UI
framework, one of which (morphic) is now used in pretty much all modern
Smalltalks, and the other of which (prototypical inheritance) got picked up by
a little language called Javascript, which you may have heard of. In addition,
Self provides provisions for multiuser networked UI, kind of like Google Docs
does.

Given, it's not exactly usable for modern projects, but it's worth studying.

~~~
rer
I didn't know this, thanks! It looks like one can have composition after all.
[http://ftp.squeak.org/docs/Self-4.0-UI-
Framework.pdf](http://ftp.squeak.org/docs/Self-4.0-UI-Framework.pdf)

------
chias
This is wholly tangential to the thesis, but

 _When Ronald Reagan was a radio announcer, he used to call baseball games by
reading the terse descriptions that trickled in over the telegraph wire and
were printed out on a paper tape. He would sit there, all by himself in a
padded room with a microphone, and the paper tape would eke out of the machine
and crawl over the palm of his hand printed with cryptic abbreviations. If the
count went to three and two, Reagan would describe the scene as he saw it in
his mind 's eye: "The brawny left-hander steps out of the batter's box to wipe
the sweat from his brow. The umpire steps forward to sweep the dirt from home
plate." and so on. When the cryptogram on the paper tape announced a base hit,
he would whack the edge of the table with a pencil, creating a little sound
effect, and describe the arc of the ball as if he could actually see it. His
listeners, many of whom presumably thought that Reagan was actually at the
ballpark watching the game, would reconstruct the scene in their minds
according to his descriptions._

I'll be damned if Ronald Reagan wouldn't have made an amazing Dungeon Master.

~~~
gumby
Reagan wasn't the only one doing this; this is how radio broadcasting worked
(essentially they functioned as human repeaters, and decompressors of lossy
compression).

I always think of this when I hear about programs that generate news stories
from game statistics or financial reports (companies like Narrative Science or
Automated Insights)

~~~
macintux
Maybe this should be the real Turing test: can you fool a baseball audience by
reconstructing every play of a game from its stats?

~~~
Retric
Seems relatively easy to fake. Remember nothing has passed the actual touring
test which is very open ended, but lesser versions have been beaten.

~~~
pessimizer
[http://www.npr.org/2011/04/17/135471975/robot-journalist-
out...](http://www.npr.org/2011/04/17/135471975/robot-journalist-out-writes-
human-sports-reporter)

------
qwertyuiop924
IBWCL is dated, true, but it's still an excellent essay, and I would argue
required reading for anyone learning about programming, computing, and/or
UX/UI. If nothing else, it provides an excellent understanding of what
abstractions are, and what sort of tradeoffs you make by using one, while
still being more or less comprenhensible to the layman, unlike Steve Yegge,
who covers more programming-specific topics, although often of the same
nature.

Knowing this stuff is important, because in computing, abstractions are pretty
much what we do. We build them, manipulate them, argue about them, consider
them harmful, and continue to travel up and down the endless stack of turtles.
Knowing why the endless stack of turtles exists is important and useful, and
that's part of what this essay provides.

------
Kadin
I actually find this version, with commentary added in 2004, somewhat more
interesting than the original:

[http://garote.bdmonkeys.net/commandline/index.html](http://garote.bdmonkeys.net/commandline/index.html)

The 2004 comments are now of course 12 years old, so they're not much newer
than the original text, but it's interesting to have two datapoints to draw a
line between (1999 and 2004) and see where the trajectory of the future seemed
to be headed over that period, versus where it actually landed.

------
krylon
The description of emacs never fails to make me smile: "emacs outshines all
other editing software in approximately the same way that the noonday sun does
the stars. It is not just bigger and brighter; it simply makes everything else
vanish"

~~~
jefurii
This sentence made me want to try Emacs, all those many years ago.

~~~
throwanem
Same here. When I finally did so, a decade later, I was pleased to discover
that he'd been quite correct.

------
zwass
This essay set me off on an Odyssey of discovery and exploration. I learned
emacs, Bash, gained an appreciation for abstractions in a mindset strongly
influenced by this philosophy.

If you enjoyed his essay, it is well worth reading Neal Stephenson's novels. I
would start with Cryptonomicon or Snowcrash.

~~~
mroll
I recommended Stephenson to a friend today and suggested they start with the
same two :)

------
GrumpyYoungMan
From a Slashdot interview with Neal Stephenson in 2004:

" _I embraced OS X as soon as it was available and have never looked back. So
a lot of 'In the beginning was the command line' is now obsolete. I keep
meaning to update it, but if I'm honest with myself, I have to say this is
unlikely._"

[https://slashdot.org/story/04/10/20/1518217/neal-
stephenson-...](https://slashdot.org/story/04/10/20/1518217/neal-stephenson-
responds-with-wit-and-humor)

~~~
chippy
Many people since 2004 have "embraced" the whole Apple ecosystem of tools,
hardware and software.

They actually cannot look back now. It's literally almost impossible for
Stephenson and many other of our contemporaries to look back and choose
another way. To do so is literally more pain than is worth. To even
contemplate an alternative means negating the investment in Apple. To turn
your back on the investment of time, money, effort would mean the benefits of
change would need to be greater (or the pain of staying would be worse). It's
not going to happen: those who embrace Apple remain within Apple's bosom.

~~~
throwanem
What? Did Sierra stop being Unix and nobody's mentioned it before now? Or is
there something about owning a MacBook Pro that makes it impossible ever to
buy a Thinkpad again? Something about owning an iPhone that makes Android
unimaginable?

Perhaps you'd argue that there is. In order to do so, you'd need to explain
why there is a distinction to be made here between Apple and literally every
other software and hardware manufacturer on the planet. That such a
distinction exists constitutes an implicit prior in what you've said above. I
don't agree even that that is true, let alone that it's self-evident. You have
the opportunity to convince me otherwise.

~~~
digi_owl
Yes and no.

Yes the core is BSD derived unix, but OSX is also a massive layer of libs on
top that is proprietary to OSX.

So unless the developer takes outmost care to not touch anything that makes
OSX, well, OSX, its damn hard to transfer anything over to a _nix from OSX.

~~~
throwanem
In other words, writing portable software is harder than writing non-portable
software. Fair, but I don't see what it has to do with the matter at hand.

------
coldcode
What I think in the beginning was a stack of cardboard with holes in it. I
remember talking with old programmers in my first job who started out
programming with switches, who by that point in the early 80's were using
terminals to write batch programs with one compile-run cycle per day (they
usually worked on multiple apps at a time this way). You won't catch me
lamenting progress.

------
gopher2
Dang. What great writing! Descriptive, interesting, inspiring. It just makes
me smile and I'm glad this was shared. It seems like a classic that lots of
people are familiar with, but I've never read it before.

------
phjesusthatguy3
I first read this essay as an ebook on my Newton (what was the 3rd party tool?
Paperback?), and the title mislead me to believe I was reading Cryponomicon,
so I was highly surprised when I read the _actual_ Cryptonomicon.

Man, this Android phone I'm carrying around now is such a step down from that
Newton.

------
Esau
I remember this essay fondly because, at the time, I was using BeOS. Seems so
long ago now.

------
hossbeast
Quoting from the end,

I think that the message is very clear here: somewhere outside of and beyond
our universe is an operating system, coded up over incalculable spans of time
by some kind of hacker-demiurge. The cosmic operating system uses a command-
line interface. It runs on something like a teletype, with lots of noise and
heat; punched-out bits flutter down into its hopper like drifting stars. The
demiurge sits at his teletype, pounding out one command line after another,
specifying the values of fundamental constants of physics:

universe -G 6.672e-11 -e 1.602e-19 -h 6.626e-34 -protonmass 1.673e-27....

------
marmot777
I upvoted this for the title alone. Classic!

------
dang
Lots of submissions:
[https://hn.algolia.com/?query=In%20the%20Beginning%20Was%20t...](https://hn.algolia.com/?query=In%20the%20Beginning%20Was%20the%20Command%20Line&sort=byDate&dateRange=all&type=story&storyText=false&prefix&page=0)

But no major thread in a long time, it looks like:
[https://hn.algolia.com/?query=In%20the%20Beginning%20Was%20t...](https://hn.algolia.com/?query=In%20the%20Beginning%20Was%20the%20Command%20Line%20points%3E3&sort=byDate&dateRange=all&type=story&storyText=false&prefix&page=0).

So by HN's standards this isn't a dupe:
[https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html).

