Live data from Hacker News

The Unix Philosophy

catb.org

141–150 of 269 posts

Re: The Unix Philosophy

#141

Earlier quoted context omitted.

It's both the language and the ecosystem. The language itself is a prime example of a language with features that aren't orthogonal. For example count how many features in Python are solved in other languages just with proper support for anonymous functions.

Python's support for closures is perfectly fine. Its anonymous function support is crappy, but it doesn't stop you from doing what you want, it just looks as ugly as sin.

Python only lets you have one line in a lambda - the return line. In languages with nicer anonymous function support I can make an anonymous function span multiple lines and branches eg. in C# you could assign to a delegate something like myObj.stringToHash = (s) => {int x = 0; foreach(var c in s) x += ... ; return x;}

I find python's restriction in this case fairly strange. If I wanted to do that in python I'd have to just declare a function body for what I want to put in the anonymous function elsewhere, which defeats the purpose.

Re: The Unix Philosophy

#142

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;…

You're sort of describing the design idea common in unix-y areas to build libfoo that does all the work, then a foo frontend that makes tasks useable from the command line. I don't know how widely used this model is, but it's certainly out there.

The difference is that in what I've described, the ABI is the common interface and an RPC server would be just another consumer of the library.

Re: The Unix Philosophy

#143
post #35

Earlier quoted context omitted.

X as a protocol is long gone. Direct memory access, kernel drivers etc are not really compatible with network protocol. Wayland is just streamlining and formalizing current situation.

At my old job (which I left about ten days ago) I ran X servers and clients on different machines daily. Typical example was running my IDE on my desktop, connected to an X server running on my laptop.

The X developers didn't break remoting, but that doesn't mean contemporary gui toolkits still use the features of X that made X "network transparent." As I understand it, most features of the protocol are largely ignored except for the parts needed to pump bitmaps over a network.

Here's an LCA talk by a dude what works on X and Wayland: https://www.youtube.com/watch?v=RIctzAQOe44

Re: The Unix Philosophy

#144

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…

Anyone can make a mess of anything if they are not sufficiently careful. This is not unique to nix.

Personally, I enjoy the nix philosophy of using small programs that do one thing well. Also, I prefer text to proprietary binary formats that _I_ can't do anything with.

As a *nix and Windows developer, I've never understood the mentality of wanting to build huge monolithic applications. But, I do think the tide is turning. I think more and more developers are allowing themselves to be influenced by ideas outside of what they are used to and that's a great thing.

Re: The Unix Philosophy

#145
post #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…

Absolutely, but that doesn't mean we shouldn't try to make some progress.

I think we have actually made progress with HTTP and all the REST. But I feel that the great failure of distributed object systems in the 1990s and 2000s has left a great void when it comes to new thinking about more fine grained sort of interfaces between programs.

Functional programming has influenced so many things but hasn't really arrived in the systems corner of the world yet. Also, looking at the sort of query capabilities of online streaming databases and complex event processing systems I get the feeling that there may be a lot of potential in combining that with Unix pipes and text streams.

Publish-subscribe ala zeromq is also something that could be a core part of modern Unix.

Sorry about the half-baked mess I'm dumping on you here :)

Re: The Unix Philosophy

#146
Can't upvote this enough. My takeaway from this gem is that we need to keep thinking about our craft even as we evolve our technologies, and we need to have the courage to stand up for it. The hardest thing in the world to see is your own point of view because you have to step outside of it to see it.

Re: The Unix Philosophy

#147
post #4

Earlier quoted context omitted.

It's a really great read and did a lot to inform my approach to writing all kinds of software. It's a shame that I cringe to recommend in now due to the politics of its author.

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

Unfortunately, the general zeitgeist of the times seems to be that a person's politics are somehow a litmus test for whether or not they should be listened to at all, about anything.

Normally this would just be a quirk, but the fact is that a lot of technical people here on HN and other places would happily throw the baby out with the bath water just because they disagree with somebody's politics.

It's stupid and unprofessional. With so many companies focusing on such technically boring problems, image management is perhaps legitimately more of a business concern than having the best tech available.

So, unfortunately, we have people with dissenting opinions but excellent work slandered or ostracized...even if their opinions are actually worth considering. Then again, that just means that those of us who are more genuinely tolerant will have an edge during hiring. :)

Also, on ESR in particular:

You have to understand that, rightly or wrongly, his worldview is long-term Culture War. Literally anything which prevents The Right People from breeding faster (homosexuality) or defending themselves (attacks on the 2nd amendment) or arguing (kafkatraps) is suspect. Because he's playing for keeps, he'll do whatever it takes (including, perhaps, being less than perfectly equal in presentations on things) to further his agenda. That's just how it is, and it doesn't reflect on his technical contriubtions or aptitude at all.

Hell, the bitch of it is, he's even arguably correct on some of his cultural points, if he himself (much less his detractors) didn't spend so much time sounding so disagreeable and grumpy and wingnutty.

Anyways, it's just a sign of the times, as I said. It seems that most people are unable to handle a mental model which accounts for biased or unreliable narrators while still allowing the work of those narrators to be taken advantage of.

Re: The Unix Philosophy

#148
post #76
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.

When they constantly mix technology and politics, yes it does matter. Open Source is a political movement, and that requires taking ESR's version of it with a grain of salt.

Who did a lot of the popularization of that term again? Who cofounded the Open Source Initiative?

It's in no small part due to the politicking and goodthink of ESR that we have Open Source as it is today.

Re: The Unix Philosophy

#149

Earlier quoted context omitted.

That's a surprise to me, I hadn't heard any of that. Not that I've followed things that closely. What I found so far is [1], in which he seems to just be doing a bit of a "show me the data" thing wrt global warming (its fairly old I guess in defense). In [2] he's definitely saying IQ is race-related, and gender related to a lesser extent, in my quick readings. I quite like that he doesn't mince his words, sugar coat…

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…

ESR wrote, among other things, this:

"One was: their skin color looks fecal. The other was: their bone structure doesn’t look human. And they’re just off-reference enough to be much more creepy than if they looked less like people, like bad CGI or shambling undead in a B movie. When I paid close enough attention, these were the three basic data under the revulsion; my hindbrain thought it was surrounded by alien shit zombies."

and http://esr.ibiblio.org/?p=4256

Re: The Unix Philosophy

#150
At my place of work, we have a client relationship to a company like ours in a neighbouring country. They develop a software that is of much use to us so we pay a license to them for it. They are nice people but god damnit, there is one thing they just never got right. They only support one platform, one that is certified UNIX, yet no matter how severe an error, their cli tools and scripts exit with 0 no matter what. I'm the guy who writes some smaller tools and scripts on our side integrating with their software so you probably understand why I get a bit upset about this at times. Still, I enjoy my work and as I said they are nice people and also they are a quite small team so I don't want to burden them with these concerns when there are other things that our company need from them more.

Anyway, I've been with my company for a few years and soon my contract expires and I'm going to study the field our company is in and get a degree in that, then I'm going to apply for a position doing our core business. I would still like to be involved with the software my current position is touching on, though, if possible. (Our company has 1000+ employees and several different sub-sections, so even though I might get back into the company, it's not a given that I'll be working with the group of people I am now even though I'd like to.)

I also sometimes think that if possible, perhaps I'd like to work for that other company in our neighbouring country for a few years and be on the dev team of the software. After all, I have experience from the user side which the dev team has not and the dev team has seen some of the tools I've made and a couple of the guys seemed to think that some of that stuff was pretty decent.

Post reply on HN