💾 Archived View for thelambdalab.xyz › phlog › 2023-08-26-Program-your-computer.txt captured on 2023-09-08 at 15:38:39.
-=-=-=-=-=-=-
Program your computer --------------------- What is a computer? Let's ask dict. $ dict computer From The Free On-line Dictionary of Computing (30 December 2018) [foldoc]: computer computing <computer> A machine that can be programmed to manipulate symbols. Computers can perform complex and repetitive procedures quickly, precisely and reliably and can store and retrieve large amounts of data. Most computers in use today are electronic {digital computers} (as opposed to {analogue computers}). A machine that can be programmed. But programmed by whom? The definition doesn't specify, but I'm going to suggest an alteration: <computer> A machine that can be programmed by its user. From this point of view, anything that you can't easily program yourself is effectively not a computer. Effectively, it's an appliance (at best). But why the pedantry? Why would you program anything for yourself? After all, there's a veritable army of professional programmers out there, clambering over themselves to get you to run software that they've written! And their programs are *polished*; way better than you or I could accomplish on our own. If you asked me, I'd say there are several good reasons. 1. Nobody understands your needs better than you do. You might think that your needs are perfectly catered for by other people's programs, and maybe that's true! But I find it hard to believe that there's _nothing_ you'd change if you had the chance. Even something as mundane as an annoying key binding or a frustrating dialog layout is something that exists only because, marketing aside, the program was written by somebody else for somebody else. Not to mention the truly malicious anti-features often present in commercial software, such as user tracking, DRM, etc, etc, ... 2. Software you've written yourself is software you can easily change. Free software written by communities generally solves the problem of overtly user-hostile software, and in principle allows you to customize it to your whims, "in principle" is very different to "in practice". Sure, you could spend your entire Saturday figuring out how to build GIMP so that you could finally rid yourself of some RSI-inducing key binding, but realistically? It's not gonna happen. Contrast this with anything you've actually written yourself, and the difference is night and day. The activation energy is essentially non-existent. 3. Programming and computers that permit you to do it are dangerous. Like any powerful magic, programming and user-programmable computers can be used for things that not everybody wants you to be able to do. Some of these things are genuinely bad. Others are arguably good, but inconvenient to powerful entities. Thus, my final argument for writing your own software is that it helps keep this most important activity alive. If nobody actually uses this amazing user-empowering ability, there won't be anybody to complain loudly enough when it's taken away "to thwart the terrorists" or "to protect the children". We're quickly forgetting what makes computers special: their ability to empower their *users* by abstracting away tedium, allowing *users* to operate on a higher level. Just as we forgot what made the internet special: seamless and free communication between *users*, geography be damned. By forgetting why being able to program our computers ourselves is important, we leave ourselves vulnerable to that ability being removed by those who consider it inconvenient. Use it or lose it! --- p.s. Shout-out to matto, pi3145, prahou and co over at #phloggersgarage on libera for the encouragement to post a bit more! See gopher://box.matto.nl/0/pg.txt