Live data from Hacker News

Kernighan and Pike were right: Do one thing, and do it well

medium.com

141–150 of 256 posts

Re: Kernighan and Pike were right: Do one thing, and do it well

#141

Earlier quoted context omitted.

>But ... firstly, let's stop with the Unix worship. They didn't deliver, even in the domain of the terminal. My copy of `ls` has at least 40 flags GNU is Not Unix. I count 13 flags on both Unix V10 [1] and on Plan 9 [2], its spiritual successor. [1] http://man.cat-v.org/unix_10th/1/ls [2] http://man.cat-v.org/plan_9/1/ls

This is a version of a No True Scotsman argument: the True Unix did not have these flags and therefore these flags are not part of the Unix Way. The extra flags were added over time because the One True Unix did not provide the functionality that people needed in real world use. They couldn't be added in a composable way because of failures in the shell programming model (unstructured text + sh is terrible). The Unix…

No that’s literally what GNU stands for.

Re: Kernighan and Pike were right: Do one thing, and do it well

#142
There's irony in using K'nex as an analogy. I hated those toys as a kid; sure, they're flexible in all directions, but all that flexibility means there's no structural integrity. To build something that doesn't twist and collapse, you have to overbuild all the connections and consider all the possible vectors of movement (gravity or applied) that need to be guarded against.

Re: Kernighan and Pike were right: Do one thing, and do it well

#143
post #92

You don't need a damn network between two pieces of code just to "do one thing and do it well", for God's sake, I'm so sick of this rampant cluelessness in the industry. Do you saturate the resources of one machine and need to split things off? Do you have multiple teams each taking care of their own stuff? Do multiple services, it's fine in those cases. For almost any other reason you are just adding complexity, boi…

This. So much this. We are 5 years into a microservices wank-fest. So far the net ROI is negative, the user experience sucks more than ever, the complexity is so high that people can't get things done, nothing works properly any more and no one owns anything because they have washed their hands of it all. But this is still promoted as a success because no one wants to be accountable for the fuck up. Our team spend mo…

The code reflects the organisation, that's one of the laws of computing (Fred Brook's law maybe?). Microservices work well in a sufficiently large org, with autonomous entities working on different parts of the system, extremely well-defined interfaces between the services, and someone high up having a bird's eye view of the system.

If your organisation doesn't look like that, you can only fail at microservices. Either the company restructures around the code, or the code looks like the company. Trying to make pasta from mash potatoes is doomed to fail.

Re: Kernighan and Pike were right: Do one thing, and do it well

#144

The basic point is right, but I think a lot of the details are off. The core idea is composition. A system is compositional if you can build it from small reusable parts. It's one of the key ideas in functional programming, and it's somewhat core to object-oriented programming. (OO is too big to be able to claim their is a consistent philosophy behind it.) But ... firstly, let's stop with the Unix worship. They didn'…

>But ... firstly, let's stop with the Unix worship. They didn't deliver, even in the domain of the terminal. My copy of `ls` has at least 40 flags GNU is Not Unix. I count 13 flags on both Unix V10 [1] and on Plan 9 [2], its spiritual successor. [1] http://man.cat-v.org/unix_10th/1/ls [2] http://man.cat-v.org/plan_9/1/ls

I hold in my hand a "Unix Reference Card," second edition, March 1979.

There are 10 options listed for "ls":

l, f, a, s, d, r, u, c, i, f, g

My recollection is that this card was for Unix V7.

Re: Kernighan and Pike were right: Do one thing, and do it well

#146

The basic point is right, but I think a lot of the details are off. The core idea is composition. A system is compositional if you can build it from small reusable parts. It's one of the key ideas in functional programming, and it's somewhat core to object-oriented programming. (OO is too big to be able to claim their is a consistent philosophy behind it.) But ... firstly, let's stop with the Unix worship. They didn'…

Yes, ls does have a lot of flags, but how did it get them, and what are the alternatives? It got them to satisfy real needs, and using flags, especially when combined with having man at your fingertips, was (and is) a highly effective interface for interactive work. If there is anything to be learned from the proliferation of command-line flags, it might be that one should not attribute too much significance to a vague aphorism such as "do one thing, and do it well."

Re: Kernighan and Pike were right: Do one thing, and do it well

#147
post #83

Came looking for insights, found none. Instead I got platitudes like "sometimes microservices work well, sometimes not" and some copied together cartoon graphs, with a topping of meme pics. The conclusion is: "There are no easy answers". I wish I was kidding.

Correct. Even in this thread, it’s just a bag of opinions. Most are elaborate and well articulated, all correct, all wrong nonetheless. No wonder this topic is always such a pile of patchwork. It’s as diverse as developers are.

Re: Kernighan and Pike were right: Do one thing, and do it well

#148
post #54

Earlier quoted context omitted.

The core of COM is about allowing binary code to be used from any language through a standardized interface. As pjmlp mentioned, this part was very successful and all new Windows APIs are based on it. The COM which failed and which you are thinking about was related to OLE and the idea of embedding Excel sheets inside Photoshop drawings, ...

> the idea of embedding Excel sheets inside Photoshop drawings, ... that's still a thing isn't it?

Microsoft ported OLE 1 to Macintosh, but never OLE Version 2, because Apple guidelines forbid programes to start other programs. Because of that Photoshop had a not supported version of OLE. I don't know if it is still available in up to date Photoshop.

On Windows it works both ways with OLE 2.

Re: Kernighan and Pike were right: Do one thing, and do it well

#149

Good article, but to me it seems to be co-opting the term enshitification in a strange way: > Large codebases will eventually reach an “enshittification point” — the point at which bugs are introduced faster than they can reasonably be fixed. I think of enshitification primarily as an organisational/business phenomenon rather than a technical one. It doesn’t necessarily emerge “bottom up” as the result of technical d…

Is that a first case of metaenshitification?

Re: Kernighan and Pike were right: Do one thing, and do it well

#150

Good article, but to me it seems to be co-opting the term enshitification in a strange way: > Large codebases will eventually reach an “enshittification point” — the point at which bugs are introduced faster than they can reasonably be fixed. I think of enshitification primarily as an organisational/business phenomenon rather than a technical one. It doesn’t necessarily emerge “bottom up” as the result of technical d…

> I think of enshitification primarily as an organisational/business phenomenon rather than a technical one.

The other two important criteria implied by this new term are that it is deliberate and that it is taken for the benefit of the “author” (company) at the expense of the user.

Bugs are inadvertent and have no intent so don’t match either criterion.

Google’s so-called “integrity” system is DRM for the benefit of advertisers (and thus Google), not users. Intel’s on-chip security manager isn’t for the user’s benefit and adds security risks.

Encrusting photoshop or Word with a million features or back-compatibility with a mistake made decades ago may make the program worse, but are in service of giving customers what they want. It may make the application worse in some ways but the motivation is pro-customer, regardless of the ultimate result. (Note: I chose these two programs bc I don’t even like either)

Post reply on HN