Salta al contenuto principale


The computing industry is weird about history. People fail to understand it in two opposite ways:

A lot of things just fail to pay attention to the fact that other people have seen and solved the same problem before. You get people not just reinventing the wheel, but ignoring the huge design space of wheels that’s been explored and deciding that cubes are ideal shapes for wheels and concrete the ideal building material. See pretty much every recent GUI for hundreds of examples.

But at the other extreme you get a weird worship of the past. Smart people in the past did something this way, therefore we must do things that way! The fact that their target audience was PhD students and their constraints included a processor that was barely faster than a pen and paper and had 128 KiB of RAM is irrelevant. Early UNIX did glob expansion in the shell not because that’s more sensible than providing a glob and option parsing API in the standard library, but because they didn’t have enough disk space or RAM to duplicate code and they didn’t have shared libraries. If you have shared libraries, the right choice is very different. Similarly, ‘everything is a text stream’ is a good idea when you have a computer that you connect to via a serial terminal because everything that the user produces or consumes is a text stream. When you have a system that has graphical displays, speakers, cameras, microphones, and network connections, it is much less sensible.

Joe Vinegar reshared this.

in reply to David Chisnall (*Now with 50% more sarcasm!*)

i agree in general but specifically with glob expansion we have the other option on display with windows and it is *definitely worse*
in reply to ✧✦Catherine✦✧

I think part of what makes lots of old UNIX decisions still seem sensible is that it has less moving parts. And moving parts means brittle systems /and/ choice to fuck around (e.g., with the API). And people will opt for fucking around – and not in the good way.

I don't think that the UNIX decisions still hold up, but just offering options and flexibility because we can, leads to overcomplexity and irritating behaviors.

Maybe this is the Bauhaus & Minimalist speaking, but I do like "simple" building blocks that serve a clear functional purpose. But this doesn't mean that the system built from those needs to be "simple": You can build quite a lot of things from bricks.

What I am annoyed about is when computers don't act like a tool anymore. A tool is something I, a human, learns how to use, and I am in charge and, also, I am in fault if something goes wrong. Increasingly, computers aren't tools but magic black boxes that behave in some mysterious ways and sometimes produce the desired output.

It used to be that if I had computer problems, the issue was a human error – fixable. Nowadays, I can often only shrug and "try again". And that's frustrating, I become the tool (my job is pressing "retry") and the computer the subject with (superficial) it's own will.

reshared this