DIY-ABILITY You know I don't think I'd ever actually clean my fridge if it was one of those modern ones that didn't need defrosting every few months. As it is I usally only get around to defrosting it when the freezer door breaks off, then accept that I might as well give it a clean while it's empty anyway. Anyway I've been meaning to write a post on 'DIY-ability' for most of the year, but it was going to take way too long to put down all my thoughts. In the mean time I read various posts from other phlogs that tied into it neatly, but I've forgotten them now, and actually I've forgotten most of what I originally wanted to say. This is great! It means I've distilled everything down into a less interesting, less precise, but much quicker to write, little summary. So without further blabber: Gopher is more 'DIY-able' than the web because it's much simpler. Programming libraries aim to simplify implementing things, but thereby encourage the growth of underlying complexity, so that it becomes impractical to implement things in a way not envisaged by the library creator. Things can be made easier, but less DIY-able, they help you to do one thing while steering you away from being different. Software also relies today on decidedly unDIY-able hardware. Based on highly complex integrated circuits that not only can't you replicate yourself, but quite often can't even be bought in single quantities. Of course this is the consequence of technological and perhaps also social development. But in software it reaches an extreme. In most trades it's quite possible to understand all the physical processes involved in producing a product. An average worker in a machine shop could learn how iron ore is mined, smelted, machined, installed into a larger machine. They might not want to, but it is nothing that requires more intellect than needed anyway for their own job. A farmer knows not only how to grow their produce, but the mechanics of the machines he uses to work the soil, and what is done after leaving his farm before his produce goes on sale. But where is the programmer, whose software works on top of many layers of operating system code, who really understands all of that code? In doing so they must understand all of the protocols and sub-systems that interconnect in the computer hardware, even now within single chip. Would they also know exactly how those chips are designed and made, then linked together, and back to how the minerals they are made of are mined and refined? You'll struggle to find one, or even to teach one, because it is simply too much, and it doesn't help them to make a living. But it is what I dislike about modern programming and electronics. I like to stick with the technologies that I can truely understand and manipulate just how I like. In this way I prefer working with logic chips and discrete analogue electronic components instead of microcontrollers and computers. If driven to a microcontroller, I would prefer something like an 8051 programmed in assembly to a modern PIC32 or a Raspberry Pi which adds complexity and at the same time puts so many road blocks in your way to really knowing how every part works; so many things they just don't bother to explain. You get forced into using certain programming languages, and in turn programming techniques, and libraries, and protocols that are aren't designed to be easily understood. With my preferred level of electronics, the libraries and the systems designed by others aren't the limit, it's the pure physics. The physics that you craft into serving your will, the most direct and simple way that you can. The same as a woodworker could make or adapt their own tools or techniques, and a mechanical engineer can determine new ways to build machines. It's the freedom to do what is truely possible, the way that seems best to you, and you can't personally get that control, even the understanding of how it could work, when perched atop the tower of technology where modern software development sits. Well I haven't condensed this, I've just worked may way back to an old gripe about how I can't make money making my old-fashioned style electronics, and all of these modern microcontrollers and things annoy me. But the point that I originally wanted to make was that half the trouble is that people don't consider DIY-ability. They don't consider how difficult a system is to learn if you don't just use the process that they provide for interacting with it. The web of course is an example, where increasingly people expect page authors to use frameworks, and script everything with Javascript, adding more layers, forcing web browsers to become so complex that you can't even understand them alone. Gopher is much more DIY-able, perhaps not as much the protocol as the decision to still use it today. It shows a consciousness for DIY-ability, an attempt to compromise, to offer a modern service yet not dig needlessly deep into an isolated pit of designed complexity. - The Free Thinker.