Earlier quoted context omitted.
> Do you saturate the resources of one machine and need to split things off? No, of course not. We divide a single machine in an uncountable number of virtual ones; write some code to make sure they don't talk to each other; write some code to make them able to talk to each other; write some code make more or fewer divisions on the run, automatically; and write some code so we can set them up automatically too every…
And what if a certain permutation of these hundreds of services goes down or slows down ? What if one service starts generating tons of data and floods another service? Do you have backpressure figured out? Distributed systems introduce a whole new level of complexity and edge cases, but most companies never even hit the scale at which it matters. It's just a pointless, wasteful exercise in "how they do it over at Go…
Kernighan and Pike were right: Do one thing, and do it well
211–220 of 256 posts
Re: Kernighan and Pike were right: Do one thing, and do it well
#212Earlier quoted context omitted.
To me enshittification is when the overall usefulness of a piece of software starts going down as more money is attempted to be squeezed out of its users. Agree that it's not a technical phenomenon
This is why I tend to go for the "open" option (eg. open source software) wherever possible. Not necessarily because it's better. But because the incentive to enshittify it is lacking. Closed / proprietary ecosystems tend to be nice for a while. And then disappear without warning. Or turn into crap, like a big sinking ship taking all its users down with it. FOSS / open platforms tend to fork and/or evolve. And (if th…
Re: Kernighan and Pike were right: Do one thing, and do it well
#213Earlier quoted context omitted.
Let's just be careful what we call Unix though. In SVR4, I don't think "ls" had that many options. It didn't even have colour (not that I would know; my Wyse 60 could only have Green, Orange or White text... and the colour was set in the factory). It's the same for many programs that started small but grew loads of knobs with age. You can't claim that this was the Unix vision, because what we call Unix today isn't ev…
It's still a failing of the Unix philosophy that people found it easier to add all these flags to ls than to string together a few "simple&composable" commands.
Re: Kernighan and Pike were right: Do one thing, and do it well
#214The 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'…
Take big monolith. Refactor into 1001 pieces. Glue together again.
If glue is inflexible, then result is monolith+glue.
If glue is thick, then result is mostly glue + little bits of monolith.
If glue is superb (well designed & flexible), the whole works the same as monolith, but pieces can easily be rearranged as needed (and individually tested!).
Designing good glue is HARD! And then some.
Re: Kernighan and Pike were right: Do one thing, and do it well
#215Earlier quoted context omitted.
This is why I tend to go for the "open" option (eg. open source software) wherever possible. Not necessarily because it's better. But because the incentive to enshittify it is lacking. Closed / proprietary ecosystems tend to be nice for a while. And then disappear without warning. Or turn into crap, like a big sinking ship taking all its users down with it. FOSS / open platforms tend to fork and/or evolve. And (if th…
It happens in OSS too, though maybe the reasons there are different. See Gnome for example.
A good example of the forking / gradual evolution I can live with.
Re: Kernighan and Pike were right: Do one thing, and do it well
#216What the article says about the hub and spoke model, singing praises of Obsidian, couldn't these points just as easily apply to Eclipse (the open source editor)? Eclipse isn't universally beloved. I haven't been following Eclipse development very closely of late, but there were versions released in the early 2010s that were universally derided . This is one example of cherry-picking I noticed in the article. Also lin…
Re: Kernighan and Pike were right: Do one thing, and do it well
#217Good 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…
Am I the only one who thinks that the term sounds far too general given the apparently narrow interpretation that's intended by it? When first seeing the word, it literally just sounded like it meant "the process of becoming shitty", and I never would have guessed that it was intended to be so specific. It seems unfortunate that the term was picked primarily for how evocative it is rather than for its clarity.
Re: Kernighan and Pike were right: Do one thing, and do it well
#218Earlier 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
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
#219I wish people would stop applying the "only do one thing and do it well" to all software. Kernighan/Pike were explicitly talking about software tools in the Unix environment, not about all software in general. It is an idealist, you might even say elitist view of how software should work, which they then realized in Plan9. And as impressive as Plan9 is, there's a reason it never got widespread adoption, and that is n…
Composability lends itself to focusing a tool on a task but doesn't necessarily require it. If you build tools focused on composability i.e. output that is regular and easily parsed and properly using input and output channels, you'll get a system that is very extensible and responsive to end user needs.
If you instead focus just on the "single purpose" tools you'll often end up getting ones that are too limited. They'll end up tightly coupled with other programs/service since their functionality alone doesn't do anything all that useful.
Re: Kernighan and Pike were right: Do one thing, and do it well
#220Earlier quoted context omitted.
It isn't misuse - this is just how language works. Especially with what is essentially a meme word.
Language works through shared understanding.
Let's not pretend this word has decades of deep cultural and etymological history behind it. It's not a technical term or a term of art, it's a meme. It's something Cory Doctorow came up with in a blog post last year that only a few tech people care about. It's a hipster nerd poop joke.
And because it fits cleanly into a description of anything hipster nerds consider to be "turning into shit," it inevitably will, until people get tired of the meme and move on.