Hacker News new | past | comments | ask | show | jobs | submit login

Last I checked almost all source code is "just lines of text". Convention is what gives speech / words / code / user interfaces meaning. The Unix command line interface was designed for programmers, and in particular systems programmers; as the old joke goes Unix _is_ user friendly, it's just particular about who its friends are.

In the end though Unix doesn't concern itself with lines of text, it could hardly care, what Unix cares about (at the user interface as opposed to the kernel interface) is files with a stream of bytes. "lines of text" belongs in the domain of application programs.




A lot of the criticisms of UNIX in the UHH come from LISPers with fond memories of the LISP Machine which (like HyperCard) had virtues orthogonal to the virtues of most programming environments today.

Much of the remaining criticism is of its command-line interface. The people who wrote the book were and are very much programmers and systems engineers, so the "UNIX is to 133t for too" argument is off-point. This isn't a bunch of people who think learning Microsoft Word is computer science complaining than reading man pages is too hard.

E.g. I don't know of _any_ UNIX user who hasn't been bitten by a typo with rm.

Anyway, UHH is a fun book to read, and it was nice to be reminded of Ritchie's anti-forward.

I love this line from Don Norman's actual forward:

"Unix survives only because everyone else has done so badly."


I think you misunderstand me. Program composability is the property of being able to compose programs together, not to write a program from scratch. And the philosophy of unix command line is that pretty much everything is a CSV or fixed-width data file. Which is fine until you try to do something with a config file. Basically, the unix toolchain has a really nasty text processing gap between awk and yacc, which perl, to a certain extent, filled. Filled at the expense of throwing away the unix philosophy.

As they said in the UHH, Unix doesn't have a philosophy, it has an attitude. :)


These lines of text have very strict rules limiting what they are allowed to be.

If you try to process source code with the unix tools built with the "just lines of text" model, you won't get very far.

If you use a parser with rich data types -- you can do so much more.

Unix is not just a kernel -- Unix includes the "application programs" and criticizing their weakness is criticizing Unix itself.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: