Talk:Unix philosophy

From Wikipedia, the free encyclopedia
Jump to: navigation, search


This page needs a serious cleanup, I have started to remove irrelevant fluff and try to make the page clean and more in line with the unix philosphy itself ;) Specially the section about "worse is better" needs a big cleanup/rewrite, but I will leave that for later.

OK, any suggestions for a cleanup? To me the article pretty much fits the UNIX philosophy. A one sentence introduction, and a few bullets each by a person or type of philosophy. So, does this need more text? Also, I would like to hear comments on the "no news is good news" aspect of the UNIX philosophy.

I think a safer approach - rather than typically going out on a limb and trying to contentiously define something - would be to report on what others have said, pointing out there is quite a lot of talk about the "Unix philosophy" and many people have expressed it in many ways over the years. I'd take pains to make that very clear from the outset - that the article is about the growth of the concept of a "Unix philosophy". —Preceding unsigned comment added by (talk) 03:06, 15 March 2009 (UTC)

I'm removing the clean-up tags since nobody bothered cleaning-up. If somebody actually wants to contribute to the discussion and do something about the article, feel free to re-tag for clean-up. Breadtk (talk) 04:42, 7 January 2012 (UTC)

McIlroy Inventor[edit]

McIlroy did NOT invent pipes - he SUGGESTED them. Ken Thompson and Dennis Ritchie invented them.

Such semantic significance seems spurious/superficial. Richard Taytor (talk) 02:21, 23 October 2009 (UTC)

Pike's Notes[edit]

Pike's notes don't belong in a discussion of Unix philosophy. They pertain to "engineering philosophy" perhaps but there is nothing in them to make them specific to Unix. Nothing. Also: Thompson didn't rephrase the Aussie's rules - it's the other way around.

Please sign your post by typing four tildes (~~~~)! And yes, that was my reflection too: Pike's notes belong to a pretty universal programming philosophy, but they cannot easily be reinterpreted as being part of Unix philosophy. Rursus dixit. (mbork3!) 08:54, 1 May 2010 (UTC)

No news is good news[edit]

Yes, in agreement with the cleanup part, I also believe that a missing UNIX philosophy is "No news is good news". Things like cronjobs should not spit out a bunch of verbiage unless there is an error. Programs like grep will be quiet AND exit with a non-zero status if the filter does not find anything. Utilization of stdout and stderr. Putting all irrelevant information in /dev/null when necessary.

I believe this is a very important UNIX philosophy that seems to be disappearing over time. I believe it is worthy of a mention in the main article.

Yes but it's equally borne out of the fact they were using teletype printers and didn't want excess verbiage there. Thompson is beautifully cryptic but there were other factors. —Preceding unsigned comment added by (talk) 02:52, 15 March 2009 (UTC)
This is mentioned in the Eric Raymond section of this article ("if a program has nothing surprising to say, it should say nothing"). 20:09, 29 August 2006 (UTC)

"Learning from mistakes"[edit]

I was about to correct the grammatical weakness in:

  • "It is surprising that both the X Window System (led by one of the main Multics contributors) and the EMACS editor, were designed by former MIT graduate students after the Multics system had failed, that makes some Unix hackers wonder if MIT systems researchers ever learn from their mistakes"

but then I realized that this statement is unnecessarily pejorative towards MIT researchers and adds nothing to the discussion of Unix Philosophy. I'll remove it unless anyone objects. --Steve Summit 03:51, 14 July 2005 (UTC)

I think it fits the Unix philosophy quite well... Lost Goblin 20:09, July 14, 2005 (UTC)
Is that an objection to removing the sentence? Anybody else? Steve Summit 14:13, 16 July 2005 (UTC)
Yes, I object, but I agree that maybe it can be made less POV, but then, Unix philosphy is a very subjective thing and it's not suposed to be inpartial. --Lost Goblin 16:15, August 1, 2005 (UTC)
Ok, I wrote those paragraphs. The problem with UNIX today is that the MIT researchers and projects such as GNU are destroying The UNIX Philosophy. These paragraphs were my attempt to be critical of this perversion of UNIX.
UNIX was an attempt to get away from the MIT philosophy and bloatware of Multics. Now the GNU project and its minions have written 7 out of 9 of the largest (bloatware) software packages for UNIX/LINUX (see for details.) --Don Gillies 14:45, 12 Sept 2005 (PST)
What's so bad about Emacs, X Windows et al? They're pretty modular, stable, and understood. Plus, they work darn well. --Maru (talk) 03:20, 13 September 2005 (UTC)
What's so bad about Emacs? LMAO You need to study and absorb more Unix philosophy! Modular, stable, understood? Reread your McIlroy. Concentrate on the bits about 'small programs working well together'. Then look at BWK's work with Lorinda Cherry. And with Aho on awk. And so forth.
I'm not going to comment on the quality of those various projects, that is not really what this page is about; but one things is clear to anyone that has even a basic knowledge of Unix philosphy: those projects are in direct conflict with the most fundamental Unix principles. Dont take my word for it, here is what ken has to say: "The X server has to be the biggest program I've ever seen that doesn't do anything for you." Lost Goblin 19:40, 13 September 2005 (UTC)

I have removed the paragraph about GNU vs. Unix entirely. It is simply too POV to be salvaged. At most, perhaps a sentence along the lines of "GNU software, which replaces many common Unix utilities, is often considered too large and complex to fit into the Unix philosophy". Haikupoet 20:27, 17 October 2005 (UTC)

I think many people would consider "GNU software does not fit into the Unix philosophy" as an observation rather than an opinion. Most adherents of the unix philosophy would even say that GNU goes directly against the Unix philosophy. Of course the Unix Philosophy can be considered a POV, but there is a clear disagreement between Unix philosophy and GNU. So if what we are descriving here is the POV of the Unix Philosphy, I would think it should be acceptable to mention how it sees GNU software. Lost Goblin 22:13, 19 October 2005 (UTC)
Yes but 'Unix philosophy' itself is an opinion!
Wellllllll... What it comes down to is that the section that was written was POV and had to go -- it was a rant, pure and simple. It is fundamentally true that many GNU programs don't really stick to the Unix philosophy in terms of design, though there's a world of difference between pointing that out and outright accusing it of being "bloatware". I'm not aware that there is a non-POV definition of the term -- a raw count of KLoCs such as was cited in the rant certainly isn't a particularly useful demonstration of what is and isn't bloatware (something I would associate with unnecessary features, in which case you'd have a case for Emacs, and excessive layers of abstraction). Point is there's no place for value judgements in an encyclopedia unless you have solid definitions and quantitative proof. (I point out the article that I wrote at long range locators -- such devices have been tested and examined and can be fairly conclusively proven to all but true-believers that they are incapable of functioning as claimed.) And one could easily argue that the Unix philosophy in its purest form is obsolete, but it wouldn't belong here either. What it comes down to is that if the basic point is to be restored in the article, it has to be stated as the opinion of some observers and/or a direct quote from someone like Richard Stallman who is responsible for the design principles for such programs. Haikupoet 03:31, 20 October 2005 (UTC)
I still think you are missing the point, this article is about the Unix Philosophy, and I think it's up to the adherents of such philosophy to decide what they think of GNU software; and the rant(I agree it was a rant) was rather representative of the views of adherents of the Unix Philosophy, hence relevant even if not very well articulated. If you want "quantitative proff" do a survey among people that believes in the Unix Philosophy and see what they tell you about GNU, I know quite many such people, and what they will tell you won't be pretty Lost Goblin 16:43, 20 October 2005 (UTC)
Of course any such comments should not be presented as facts here, but as the result of applying the unix philosophy to GNU software, obviously other people and other philosophies will have very different views of GNU software. Lost Goblin 16:45, 20 October 2005 (UTC)
While we are at, why don't we cadge shamelessly from Raymond and Gancarz and the others, and present their opinions on VMS, DOS, Windows, Macs, the BSDs etc. degree of adherence to, and implications for, the classical Unix philosophy? We could have a whole section with subheading for each different family of OSs! It could practically double the size of the article, adding mountains of valuable content! --Maru (talk) 17:41, 20 October 2005 (UTC)
Are you volunteering? And GNU deserves special treatment because it is very closely related to Unix and has misleed many people about the Unix Philosophy. --Lost Goblin 21:04, 20 October 2005 (UTC)
Not at all. My point was that any such sections are hopelessly POV, and that a compare and contrast with other OSs would probably not be productive. Even if it was, it would belong on OS advocacy, not here. Now, an (more) example(s) of Unix philosophy from Unix or Linux would be good, but I don't have the time to add any. Besides, the references contain plenty of those. --Maru (talk) 23:56, 20 October 2005 (UTC)
You're half right. GNU could be considered worthy of special treatment because of its Unix connections. As far as it misleading people about the Unix philosophy, that's less a neutral statement than a bucket of kerosene to throw on a flamewar that, for the most part, is not currently being fought. In any case, one interesting point about GNU is that its ethos developed separately from the Unix world -- Emacs, most notably, is not, never has been, and never will be an exemplar of the Unix way; it's a naturalized citizen of that world. GNU may be part of the Unix world, but it comes from the world of ITS and TOPS-10. Just some comments that might be of use in the debate... --Haikupoet 02:32, 22 October 2005 (UTC)
Actually, one of the interesting things is (I've added this to Editor war as well) that Emacs could be seen as an unorthodox example of Unix philosophy, since it is deliberately structured as a core interpreter with a few utilities, and all the extra stuff bundled up into modules that can be loaded and unloaded as needed (unlike vim, where the extra functionality has to be written into the core program itself, leading to a pretty large program.) Just to provoke some thought. --Maru (talk) 03:37, 22 October 2005 (UTC)
A fair point -- then again, my text editor of choice is BBEdit so I don't have a whole lot of familiarity with Emacs :-) In some ways it's very much a matter of perspective. The fact remains that an encyclopedia article is not the place to push an anti-GNU agenda -- words like "perversion", "bloatware", and "misled" have been thrown around here, and I don't think that such loaded language is a good sign for the future of the discussion. On to a new section -- this is nested way too deep. Haikupoet 04:19, 22 October 2005 (UTC)

Framing the GNU debate (from one perspective)[edit]

As I see it what we have here is a difference of opinion over what is an appropriate level of discussion within the article over the differences between the GNU and Unix methodologies. The sticking point is what appears to some to be accusatory and emotional language within the article deriding GNU for not sticking closely to the Unix philosophy. Unfortunately there seems to be an element of zealotry involved here -- the anti-GNU partisans (for technical reasons, thankfully) seem determined to expose GNU software as a waste of resources, while those opposing the language in the article oppose it on POV grounds rather than any particular espousal of the opposite side. I do think there is a way of stating that GNU software doesn't always measure up to the Unix philosophy as the opinions of some members of the community, and I don't have any objection to restoring at least that much of the original section if there's some way to write it that we can all agree on. It also occurs to me that given the widespread use of KISS techniques in the original Unix kernels, the Unix philosophy, such as it is, would also take a very pragmatic attitude towards tool use. As a last point, I might state that nobody's ever bothered to rewrite the syntax of dd(1) over the years even though it's a hideous joke created by a prankster with IBM on the brain -- for whatever reason everyone chose to leave well enough alone. The Unix philosophy, above all, seems to be very accepting of strangeness and cruft as long as it doesn't cripple the design. Haikupoet 04:19, 22 October 2005 (UTC)

I'm sorry but I think you are still missing the point. "sticking closely to the Unix philosophy", more like being directly opposed to the core values of the Unix Philosophy. And this has nothing to do with resources, after all once of the Unix core values is "when in doubt use brute force"(Ken). And yes, pragmatism is one of the Unix Philosophy core values, that is why there are no universal rules in Unix, except keeping things simple, and sometimes keeping things simple means that things are ugly("worse is better"). GNU on the other hand builds and builds, and changes everything at every release with total disregard of simplicity and any other Unix principles.(which is perfectly fine, but puts it directly at odds with the Unix Philosophy) Lost Goblin 08:45, 22 October 2005 (UTC)
The 'brute force' bit was a JOKE for JH Chrissakes. DUH.
The smartass answer to this is to point out that "GNU's Not Unix". Haikupoet 04:30, 23 October 2005 (UTC)
Playing games with acronyms is not helpful. From "The GNU Project was launched in 1984 to develop a complete UNIX like operating system which is free software: the GNU system" Lost Goblin 10:05, 23 October 2005 (UTC)
There can be several interpretations of 'not Unix' of which yours is only one.
If you want an article entitled 'GNU Philosophy' then by all means put it in. Otherwise mention of GNU in the context of Unix is definitely not appropriate. Reeks more of jihad thinking than anything. —The preceding unsigned comment was added by (talk) 23:28, 13 January 2007 (UTC).
Agree as to inappropriate with GNU in this article.

esr book section[edit]

The ESR book section is pretty long, particularly because of the list of rules. Would anyone object if I moved them to the main article at The Art of Unix Programming, and summarized the book in a more concise form here? --Jon Dowland 23:39, 9 November 2005 (UTC)

Nope. Now that there is an article for it, the rules should probably go there. I'd suggest keeping one or two in the summary tho'. --Maru (talk) Contribs 01:20, 10 November 2005 (UTC)

The ESR rules are still there 3.5 years later, and I suggest they stay. The book is by the most readily available text on Unix philosophy available today; anyone researching the Unix philosophy will encounter them. JöG (talk) 17:21, 11 July 2009 (UTC)


Isn't the premature optimization quote normally attributed to Donald Knuth, of The Art of Computer Programming fame? —Preceding unsigned comment added by (talkcontribs)

It is not clear to me to whom this quote is attributed. See —Preceding unsigned comment added by (talk) 14:19, 10 June 2009 (UTC)


I think a citation is necessary if it's going to be claimed that 'Elements of Style' has a direct influence on Unix. I think in such case the citation would be directly attributable to Ken. I think in such case most of us would have heard of it by now. I think in lieu of such a citation that the reference be removed. —Preceding unsigned comment added by (talkcontribs)

Sorry but this is downright ridiculous. BWK can't cite influences as he had nothing to do with creating the system - he only proselytised it.
I am sure Brian mentions Strunk&White as a very strong influence, I'm not so sure about others being so specific, but it certainly was a popular book at the labs. --Lost Goblin 00:00, 14 January 2007 (UTC)
Right. If you believe this to be true then find a reliable reference. Otherwise you might as well cite Lewis Carroll.

Software Tools[edit]

There should be mention (more than a mere mention) of BWK's Software Tools series. This series serves to elucidate the Unix 'idea' and get it 'out there' independent of OS or programming language. What would BWK think if he saw this page and saw that Software Tools wasn't even mentioned? (I know what he'd think: he'd shrug it off with a chuckle.) BWK is one of the finest human beings to come out of that era at Bell Labs and one of the finest pedagogical talents ever and without a significant section on his contributions this piece cannot be considered complete. —Preceding unsigned comment added by (talkcontribs)

I agree. --Lost Goblin 02:57, 14 January 2007 (UTC)
Me too. But still no mention of it? Software Tools - along with BWK's work on the C book - is what got the message out. It's what proved the "Unix philosophy" wasn't something limited to Unix.
Possb somewhat hard to assert with proper extrefs, else danger of WP:OR, but List of Unix utilities, a list of progs to be considered. Rursus dixit. (mbork3!) 17:29, 21 March 2010 (UTC)
I made a search for Unix philosophy on WP to add links from articles towards this article, to find stuff in the line of this philosophy one may use what links here for the article. Rursus dixit. (mbork3!) 17:51, 21 March 2010 (UTC)

Contextual Design[edit]

I replaced "contextual design" with "monolithic design". Unix's composability is completely compatible with contextual design. I saw no cite for the sentence I changed, so I have no idea where the idea that composability and contextual design are somehow at odds. In fact, I would hold up Unix as a paradigm of contextual design, since it's creators clearly were focused on human-centered design when they created it. --Nick (talk) 18:36, 19 September 2014 (UTC)

Influence of the Unix philosophy on other systems?[edit]

Would it be good to add some contents on influence of the Unix philosophy on other systems?

Such as to Windows: Beginning from Windows 2003, Microsoft has added more command line tools to Windows, some of which can already cooperate. Also, with the introduction of PowerShell, many parts of Windows, such as the file system, the registry and the Windows Management Instrumentation (WMI) can interact. This might be indirectly influenced by the Unix philosophy.

To Android, the "Share" button promotes inter-application cooperation. Although this is often a manual operation, and in fact still most of the applications do not cooperate programmatically, it is still positive influence to the design of the applications.

Robbie.fandecheng (talk) 01:27, 9 January 2015 (UTC)

Only if the connection to Unix philosophy is backed up by reliable sources, see WP:V and WP:OR if you haven't read them already. -- intgr [talk] 03:43, 9 January 2015 (UTC)
Unix has existed for the entire history of Windows (and Microsoft). MS taking notice of Unix philosophies 30 years later can be more directly attributed to the security disaster that was Windows 2000 and the appearance of Linux as a threat. In other words, market-driven concerns not an appreciation for unix. — Preceding unsigned comment added by OMPIRE (talkcontribs)

Cognitive engineering?[edit]

What exactly does cognitive engineering have to do with the Unix philosophy? I'm not seeing the connection here at all, and it isn't made clear in the article either. I'm not sure, for example, why someone saying that most things in cognitive engineering are bullshit, has any real connection to the Unix philosophy. Huihermit (talk) 13:20, 14 December 2015 (UTC)

@Pratyeka: Pinging the editor who added this all. -- intgr [talk] 16:32, 14 December 2015 (UTC)
I added a lot of material when I discovered an interview with the author of those quotes. Basically he was the guy that gave the machine time to the others to develop Unix. He ran a department and moved in to software from a physics/electrical engineering background. I understand it may seem tangential but given the "origin" section I think including comments and an explanation of the academic background of early criticisms of Unix's interface and the reactions they generated are definitely relevant. At present the content doesn't hang together very well, a good way to solve this is to add more cited content from that period. prat (talk) 07:34, 15 December 2015 (UTC)
The problem in my view is that this is not an article on the history of Unix. It is an article on a very specific philosophy used when developing Unix software (mostly about small software tools that can easily work together through pipes, plain text, etc.). I agree that some of the material in that interview could be useful, but I think it would have to be used carefully and with enough context, maybe in an article like History of Unix. Or possibly something about the Unix shell, or command-line interfaces. Best regards. Huihermit (talk) 09:27, 15 December 2015 (UTC)
I think the fact that there was a semi-formally established school of thinking 'cognitive engineering' was indicative of the time and place and therefore tangentially relevant to the origin of the unix philosophy. However, the contemporary published, direct, analytical attacks on the design of unix that cognitive engineering practitioners made and any published responses from those involved in its early design and use are, in my view, certainly relevant. Therefore overall I think the addition of the material is a good one. I agree the current state of the article is less than ideal. I agree that the History of Unix article could probably benefit from the interview's material, probably substantially more than the current article, however the total lack of criticism or contemporary quotations in this article is really a bit of a problem here and deserves some application of effort. Do you think you can find any more quotations or pithier reducible statements from those involved in Unix's early days about how the design philosophy differed from previous and contemporary systems? Personally I believe this is what the article lacks. prat (talk) 10:31, 15 December 2015 (UTC)
Is this article just for collecting material that might be "tangentially relevant" to the Unix philosophy? I consider myself to be pretty well-read on the history of Unix, and even I for the life of me can't figure out why these ideas about cognitive engineering would be appropriate for an overview of the Unix philosophy. Does an encyclopedia article on this subject really benefit from a quote about someone saying that most of cognitive engineering is bullshit? Why does this even exist in the article? It's beyond confusing and I'm sure other readers would be confused by it too. And of course there is the fact that the person being interviewed never worked as a developer of the early Unix versions in which the Unix philosophy developed. Huihermit (talk) 12:05, 15 December 2015 (UTC)
I agree 100% that particular quote is unnecessary and confusing when considered alone, however it is enlightening as a contemporary response from the Unix crowd to the criticism raised in the Truth About Unix (cognitive engineering crowd). If you can find a better response quote, let's use it. I don't think being well read really helps, this sort of thing is essentially modern history / contemporary so facts are still coming out. The person interviewed was responsible for very important hardware in the history of Unix such as the first digital telephone switch, and worked directly with the authors in the early days of the system. prat (talk) 23:43, 15 December 2015 (UTC)
Since it's accompanied by no context and the origins of the Unix philosophy are in the 1970's, citing a 1980's criticism of Unix in the section that is supposed to introduce the Unix philosophy is not helpful. This article is not about the Unix user interface. It is about the Unix philosophy of building software tools. Just because someone worked in the same company as Ken Thompson and Dennis Ritchie does not mean that this quote is appropriate for the page or has any relationship to the subject. You have stated yourself that these quotes are only tangentially related to the subject, if they are related at all. Furthermore, from your earlier edits to the cognitive engineering article, it is clear that you are not even familiar with the subject of cognitive engineering or its origins. You are assuming that there is some relationship between early Unix and cognitive engineering, but even the interview with Condon states that Unix preceded cognitive engineering and did not use the concepts of cognitive engineering. Trying to insert materials about cognitive engineering in the section on the origins of the Unix philosophy is anachronistic and unrelated. These quotes and sources should have some clear relationship to the subject but they don't. Huihermit (talk) 03:03, 16 December 2015 (UTC)
Also, please see: Wikipedia:Relevance of content. Articles should also use Wikipedia:Reliable sources, published materials about the subject of the article, and mainly secondary and tertiary sources. There should not be presumptions like "maybe Ken Thompson and Condon influenced each other and so cognitive engineering must be some influence on the Unix philosophy." That's sloppy original research and inappropriate for an encyclopedia article, in which content must be on-topic and verifiable. Huihermit (talk) 03:20, 16 December 2015 (UTC)
Thanks for your re-ordering edit, I think that was a great improvement. Regarding your statements here, I do believe 1981 can be considered part of the origin period of Unix's development. Cognitive engineering was, as far as I can tell reading, a vaguely defined engineering philosophy and *not* an interface-exclusive philosophy at that time, though it's major proponent went on to have a successful career in human-computer interface theory and thus it appears that cognitive engineering's popular meaning has, as a result, been 'bent' in that direction. This is why it is important to take actual sources - period quotations or reflections from the horse's mouth - rather than hand-waving when looking backwards. I do fundamentally agree with you that the link to some of this content (not all, eg. the "unix philosophy is x" quote) is linked via a pretty weak tangent right now relative to the other general content, however I would hope that this will improve over time as additional information is published and added about the period. Regarding your second paragraph, there is no original intepretation here, Condon quotes specifically about his involvement with Unix and about Unix philosophy itself in the cited interview. Probably I have made a poor summary, feel free to revisit and do a better job if you so desire. prat (talk) 09:29, 18 December 2015 (UTC)

It's not at all true that the 1980's were part of the origin of the development of Unix. The Unix philosophy was in place by Version 3 Unix (1973). By the end of the 1970's, Version 7 Unix had spread throughout academia, with hundreds of Unix installations all around the world, and had spun off into BSD and other variants. All the really important and fundamental development of the Unix philosophy was in the early 1970's. Furthermore, it's clear that Condon played no part in Unix development at Bell Labs, so I'm not sure what the relevance is. Huihermit (talk) 11:47, 18 December 2015 (UTC)

To us standing here in (almost) 2016, a 1981 article regarding the design philosophy of Unix up to that point is pretty much discussing the 'origin' period. If you can find an earlier critique of the the design philosophy of Unix and a response, then by all means add it. prat (talk) 22:32, 18 December 2015 (UTC)
OK, I've removed the second quote and reworded, also re-ordered the 'stay out of assembler' thing up under the first statement (small tools) which flows better to my mind. What do you think? prat (talk) 22:44, 18 December 2015 (UTC)

Unix Philosophy[edit]

(one of my favorite though many are valuable)

"everything is a file" — Preceding unsigned comment added by (talk) 02:13, 5 March 2016 (UTC)