Live data from Hacker News

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

medium.com

181–190 of 256 posts

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

#181
post #178

Earlier quoted context omitted.

That is a very strategic and appropriate use of this pattern, and it's not even "microservices" - it's just goddamned "services"!

It also seems like an intentional wielding of Conway's Law.

Compartmentalization.

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

#182
post #31

Earlier quoted context omitted.

Suggestions for a term for the phenomena? Emshitifaction?

crushed by technical debt

Or "defaulting on technical debt".

That'd also play into the whole metaphor of technical debt.

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

#183

Why not use Python, or any other normal language, instead of all this bash nonsense?

Bash is already there. Also, if you really wanted something more powerful than Bash for a shell scripting context, Ruby or Perl would be a better fit.

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

#184
post #89
post #69

Earlier quoted context omitted.

> I think of enshitification primarily as an organisational/business phenomenon rather than a technical one. I will second this. I can't count how many projects were started with a clean design and clean early releases (what worked well), to be later messed up with business changes because the original (business) idea didn't work. And those sudden changes are expected to be implemented usually "yesterday", which adds…

> to be later messed up with business changes because the original (business) idea didn't work If the point of a project was to run a business, I would argue the project was messed up from the start if it could not adapt to the changes. Very little software survives contact with the real world.

If you buy apples only later to realize you need oranges the apple project wasn't a failure. Part of running a business is trying what works. Now if you were unsuccessful finding apples than the apple project failed. The overall business might fail but the apple project went off smoothly

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

#186

I take issue with the pasta diagram. I was there, in the 1990's, as a working professional not a hobbyist. The popular architecture was, for better or worse, structured as layers, not spaghetti. Some software from the 80s might meet that definition, but I think it's uncharitable (almost to the point of insulting) to assert that until the 2000s most programmers didn't know how to write anything but spaghetti code.

Proper spaghetti code, in my mind, has always been pre-structured code. Which generally means assembly.

C is rough to refactor sometimes, but it's nowhere near the kind of "push a couple return addresses and jump into the middle of a function" that used to exist.

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

#187
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.

I think the core thesis is that "do one thing and do it well" is about small components that are connected together.

The classic example is shell pipelines, but they are actually quite shit because they only deal with unstructured data (there's finally some work to fix that in Powershell and Nushell but it took many many years).

A better modern example of doing one thing and doing it well is apps that support plugins.

----

I think the whole "do one thing and do it well" is terrible advice. A "thing" is not well defined. It's equivalent to "don't have too many features" which of course leads to "how many is too many" and you're on your own.

It's one of those bits of advice like "premature optimisation" that is more often used to excuse thoughtless design than to motivate good design.

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

#188

Why not use Python, or any other normal language, instead of all this bash nonsense?

Bash is already there. Also, if you really wanted something more powerful than Bash for a shell scripting context, Ruby or Perl would be a better fit.

is there something like copilot for CLI? Remembering endless switches is tiresome.

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

#189

These tools are not composable once you venture outside of a shell, and if I have to write anything beyond 5 lines, I'm not using one. There needs to be a way to make these applications usable as software libraries, and no, invoking them as a separate process from the main application does not count. This is the reason the functionality of these tools have been reinvented many times over and why they get extra cruft…

I agree. The reason small tools are simple and have few bugs is that they don't do the whole job! They say "here are your modules! now you do the last bit of programming to integrate them and do all the integration testing please. good luck!"
Post reply on HN