Ten years against division of labor in software

06/01/2025

URL: Ten years against division of labor in software

This is a really persuasive post in favour of not using libraries. The thesis statement is this: “[software libraries] promise to be abstractions, but end up becomming services. An abstraction frees you from thinking about its internals every time you use it. A service allows you to never learn its internals. A service is not an abstraction. It isn’t ‘abstracting’ away the details. Somebody else is thinking about the details so you can remain ignorant.” [and this is bad from the point of view of becomming a better programmer]

The author talks about this in terms of division of labour; using a library divides the labour. He wants to avoid this for the above reason.

Using a library is like saying you want to “work with someone, then making an interface and working on either side of it, apart. That’s no fun.” Instead, work together all over it.

He’s done lots of work designing languages, systems &c. that enable this sort of thing. e.g., a programming language Mu and associated OS that have extremely low-level testing capabilities. So if you pass the tests, you have compatibility with the OS, so you can port your code anywhere it passes tests. This (not sure how) makes it easier to not have a trunk and increasingly complex branches, but a “wavefront” of forks with different combinations of features and so on.

“The golden mean may be on a stack that isn’t ‘lumpy’, where between you and machine code there are many gossamer-thin layers, any one of which can be easily peeled back to understand how it works.”

irl division of labour is an extremely mature state of society. aiming for it prematurely is counterproductive. does computing even need it in the first place?

abstraction vs. service => subordination of detail vs division of labour

Copying and privately forking libraries encourages you to get familiar with them, making you better able to improve them. Using a library blindly helps nobody except you, in the very short-term.

this is all pretty tadi, isn’t it :P

my thoughts