원문 캡처 · harmful.cat-v.org
원문 캡처 · harmful.cat-v.org

1983년 USENIX 여름 학회에서 롭 파이크(Rob Pike)는 ‘UNIX Style, or cat -v Considered Harmful’이라는 발표를 했다. 파이크와 브라이언 커니핸(Brian Kernighan)은 이 발표와 함께 논문 ‘Program Design in the UNIX Environment’를 썼으며, 논문은 1984년 10월 AT&T Bell Laboratories Technical Journal 63권 8호 2부에 실렸다.

발표는 UCB의 cat을 사례로 들어 유닉스가 불필요하게 비대해졌다고 지적한다. cat은 파일을 이어 붙이는 도구이며, 줄 번호를 붙이거나 연속된 빈 줄을 줄이거나 출력 불가능한 ASCII 문자를 보여주는 기능까지 맡아서는 안 된다는 주장이다. ls가 한 열의 목록을 여러 열로 나누는 코드를 가져서는 안 되며, mailnews에 more 기능이나 암호화 코드가 따로 들어가서도 안 된다고 덧붙인다.

자료는 파이크가 당시 4.2BSD가 Version 5보다 규모는 열 배 정도 크지만 열 배 더 낫지는 않다고 말했다고 전한다. 발표와 논문은 이후 두 사람이 쓴 책 ‘The Unix Programming Environment’의 토대가 됐다. 자료는 이 책을 오늘날 유닉스의 ‘바이블’로 여겨진다고 소개하며, 두 사람의 조언이 무시돼 유닉스가 경고했던 실수에 휩싸였다고 비판한다.

부록: 원문 예시

text
Bell Laboratories

Murray Hill, NJ (dec!ucb)wav!research!rob

It seems that UNIX has become the victim of cancerous growth at the hands of
organizations such as UCB. 4.2BSD is an order of magnitude larger than Version
5, but, Pike claims, not ten times better.

The talk reviews reasons for UNIX's popularity and shows, using UCB cat as a
primary example, how UNIX has grown fat. cat isn't for printing files with line
numbers, it isn't for compressing multiple blank lines, it's not for looking at
non-printing ASCII characters, it's for concatenating files.

We are reminded that ls isn't the place for code to break a single column into
multiple ones, and that mailnews shouldn't have its own more processing or joke
encryption code.

Rob carried the standard well for the "spirit of UNIX," and you can look
forward to a deeper look at the philosophy of UNIX in his forthcoming book.