Live data from Hacker News

The Unix Philosophy

catb.org

91–100 of 269 posts

Re: The Unix Philosophy

#91
post #69
post #63

Earlier quoted context omitted.

http://www.theonion.com/article/no-way-to-prevent-this-says-...

http://www.cbsnews.com/news/copenhagen-cafe-attack-free-spee... https://en.wikipedia.org/wiki/Anders_Behring_Breivik https://en.wikipedia.org/wiki/Charlie_Hebdo_shooting

so you are saying there is a correlation between guns-per-capita and gun-deaths-per-capita?

Re: The Unix Philosophy

#92

I keep wondering about what seems to be the most important component of Unix philosophy: write many small programs that do one thing well and interface using text streams! Yes, modularity is important. However, in some cases, this philosophy has resulted in the "tangled mess held together by duct tape" kind of systems architecture that no one dares to touch for fear of breaking things. I think Unix philosophy is stru…

Recently I've been exploring the idea that small programs should consist of two parts; a "backend" that you can communicate with via a strict message protocol like protobuf. It can handle multiple requests because it is a mini server, the message format is locked to a "type" and you communicate with it via RPC.

The second part is a "frontend", a command-line client that does all the unixy stuff with text streams etc; but is just another RPC client to the backend.

This provides flexibility; for quick duct-tape situations you use the front end and pipe anf ilter to your hearts content. Then when stuff needs to get serious, you can bypass the command-line front end and connect directly over RPC using a strict message format which has the ability to handle a couple (doesn't have to many) of concurrent requests.

Of course this is early doors yet, but I think it might have legs in the flexibility in the text streams/hard message format debate, for very little additional work.

Re: The Unix Philosophy

#93

Earlier quoted context omitted.

I guess everyone and every group finds certain truths uncomfortable. It's especially sad that the theory of evolution seems to make literally everyone uncomfortable. "Of course humans and chimps have a common ancestor! We have looked at the genetic code, and found that more than 95% is shared. Give up, it's over." The right will hate you for saying that. "Of course there is inherited variation in intelligence, no mat…

Evolution doesn't necessarily have a direct link with intelligence; nor even does natural selection which is the theory that, I think, you're basing your argument on.

That's a pretty weak objection. It's implausible that intelligence wouldn't be influenced by any evolved traits.

Re: The Unix Philosophy

#94
post #50

> Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new features. Which means that no program is more un-UNIX-y than Emacs...

Emacs is an example of a complex application written consistent [more or less] with the Unix philosophy. One might argue [anything, it's the internet after all] that Emacs four decade shelf life demonstrates the robustness of its embedded Unix philosophy [at the risk of being a bit circular].

Where it butts against contemporary practice is in places like threads where it is still not proven that YAGNI doesn't apply.

Re: The Unix Philosophy

#95
post #55
post #4

Earlier quoted context omitted.

That's really bizarre. A person's political views have no bearing on the validity or usefulness of what they write.

Except if he writes anything about politics, economics, society, etc -- in which case his political views have quite a bearing on the validity or usefulness of what they write.

Can't you evaluate his claims on their own merits? Unless he's saying "trust me, I won't expose my reasoning but it's solid", or unless you are outsourcing your thinking, such things would seem to be irrelevant.

Re: The Unix Philosophy

#96

I keep wondering about what seems to be the most important component of Unix philosophy: write many small programs that do one thing well and interface using text streams! Yes, modularity is important. However, in some cases, this philosophy has resulted in the "tangled mess held together by duct tape" kind of systems architecture that no one dares to touch for fear of breaking things. I think Unix philosophy is stru…

> in some cases, this philosophy has resulted in the "tangled mess held together by duct tape" kind of systems architecture that no one dares to touch for fear of breaking things.

Pretty much, just as Booch's philosophy has given us tangled messes of class hierarchies with cross references pointed every which way. And just as The Gang of Four gave us AbstractedTangleMessFactorySingleton.

The distinction with the Unix-style pipe mess is that it exists and works an order of magnitude faster than other examples of bad code.

Re: The Unix Philosophy

#97
post #37

Earlier quoted context omitted.

What do you mean by "text"?

Exactly. That's one of the biggest problems with text-only interfaces.

Maintaining IPC/RPC as text has the significant advantage of keeping the programs involved honest, approachable, and easier to debug. Just being able to see the interface by running the program (or reading the config file) makes it a lot easier to learn[1], and bugs in text formats can often be seen visually (or marked in an editor).

The alternative - binary structures - require complex data definitions where you have to care about stuff like exact byte lengths when you have to convert between big/little endian. Some people like to claim that binary is faster, but your bottleneck is not going to be strtol(3). As for advantages in parsing - you still have to parse the binary structure you just read. I suspect most people that think "parsing text" is difficult are confusing the parser with lexer; the latter is the only part that changes when you switch between text and binary formats.

In the long run the initial investment in a text interface can be cheaper than wasting time debugging binary structures. Even more important when thinking long-term: it is a lot easier to inspect a text interface from the outside without the consent or availability of the original author. If you have an old program binary that was used in production for years and no source code or documentation, which would you rather try to debug? An opaque binary file? Or something in JSON or INI format?

[1] however, this is not an excuse to skip proper documentation

Re: The Unix Philosophy

#98

Earlier quoted context omitted.

Regarding [2]. So I guess this quote is the problem: > And the part that, if you are a decent human being and not a racist bigot, you have been dreading: American blacks average a standard deviation lower in IQ than American whites at about 85. [...] And yes, it’s genetic; g seems to be about 85% heritable, and recent studies of effects like regression towards the mean suggest strongly that most of the heritability i…

I think the problem is, its a bit more complicated than that. There are a myriad of factors that might influence that IQ score, and I haven't looked at the studies. Lack of wealth/opportunity I think is definitely a factor in the healthy development of the grey matter, as is access to good education. Long/short, not sure. I'd be surprised if the colour of your skin objectively made a difference in IQ. Same with gende…

[deleted]

Re: The Unix Philosophy

#99
post #82

People will hang shit on ESR, but The Art of Unix Programming is one of my all time favourite books. If you haven't read it, even if you're not a *nix developer, do yourself a favour and just skim the table of contents... something may pique your interest and you may learn a thing or two. It's also free online: http://www.catb.org/esr/writings/taoup/html/

"People will hang shit on ESR" An example "Reading it, it looks like a total hack job by a poor programmer." https://news.ycombinator.com/item?id=923660

That's not hanging shit on ESR, that's just a valid critique of poor code.

A better example might be this post, where ESR is implied to be racist when his actual post is a reflective one about correcting irrational racist reactions: https://news.ycombinator.com/item?id=6884767

Re: The Unix Philosophy

#100
post #13

This should be taught in any programming class. > Rule of Diversity: Distrust all claims for “one true way”. Although, does the python rule "There should be one-- and preferably only one --obvious way to do it." contradict this one ? > Rule 5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are ce…

>I wonder what rob pike has to say about OOP or java, I wish I could listen to it. “object-oriented design is the roman numerals of computing.” - Rob Pike ( http://harmful.cat-v.org/software/OO_programming/ ) Some other gems from that page: “Object-oriented programming is an exceptionally bad idea which could only have originated in California.” – Edsger Dijkstra “The phrase "object-oriented” means a lot of things. H…

I would love to throw those quote at any programming class that promotes OOP.
Post reply on HN