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

yeah, calling it less may have been fun at the time, but its poor ui design. if you call a method 'add_one', having it multiply by three might be what you intend, but its not very intuitive.

Heh, all the basic UNIX tools reek of geek design and bad UX.

cat -> from the obscure verb "catenate". A regular user would never, ever find the connection unless someone points it out. It should be "join" or "merge" or "unify" or something.

dd -> "data description". Really? It should be "blockcopy" or something.

grep -> "globally search a regular expression and print". Again, really? It should be "find" or "search".

ls, mv, cp, rm are kind of ok but in this day and age they should definitely be list, move, copy, remove by default (with aliases if need be). Heck, 99% of Unix commands are too short for their own sake.

cron -> "Chronos". Really?, third edition. It should be "scheduler" or something.

I mean, at this point we've all moved on and have memorized all these commands and parameters, but a lot of brain cells have died for no real benefit to humanity.

concatenate: link (things) together in a chain or series.

This is a word that perfectly describes exactly what cat does. Cat doesn't merge; that's ambiguous. Is a merge an interleaving? Sometimes yes. What does unify even mean in the sense of chaining data streams? Join? Close, but still unclear what it does. Does it operate on files? And what would happen to the already widely deployed join command that does something completely different?

Concatenate is a great word. Great words deserve to be used. I'm sorry that some of us haven't seen the crushing need to reduce our vocabulary to the double plus good amount of words in the newspeak lexicon.

What I'm not sorry about is that new users have to spend time to learn the system they're mucking around in before they can be useful with it. That's not a design flaw; that's a feature.


Actually, you are wrong. In the 1972 2nd version of Bell Labs Unix the cat source code says "cat -- concatinate files"(sic). And, in the Bell Labs "Unix Programmers Manual", Second Edition, 1972 it is "Concatenate (or print) files". There goes those them "elitists" trying to be accurate again... And where do you get the idea what it's "supposed" to be anything? Approachable, or not approachable, it is what its founders made it; not what you decide it should be. Talk about arrogance.

Cat seems fine to me, since for most usages the con- is not necessary, and is redundant. Which makes it unfortunate that concatenate is the de-facto standard term, over catenate.


You're probably right but English, as well as UNIX, has conventions which are widely used. Going against them requires a lot of work and I'm not sure that the benefits are worth it.

"concatenate" is a lot more known than "catenate". And I'm pretty sure that even "concatenate" is quite low in usage compared to a more common verb (or set of verbs) which could be used to describe what cat does ("show", "join", "merge", "unify", etc).

Anyway, I was mostly ranting since at this point both "concatenate" as a de-facto standard term and "cat" as a default UNIX tool will probably outlive me and most likely my descendants as well :)

Join is a pretty cool utility -- it's the text file equivalent of a sql join.

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