4 ms·
We have lost the art of keeping things simple, both on the hardware and software front. We have made everything more complicated. The gains are dubious. For ex
by blippage 4y ago
We have lost the art of keeping things simple, both on the hardware and software front. We have made everything more complicated. The gains are dubious.
For example, I saw a tear-down of an old game controller. It used a parallel-to-serial chip in the controller, which is a simple commodity chip. Keyboards and mice had very simple ways to communicate with the computer. In contrast, USB is complex, probably the most complicated protocol out there. And it's only getting more complicated. If you want to communicate via USB, best use a pre-existing stack.
Communications protocols of yore were relatively stable. If they were revised, it was infrequently. Today, protocols don't really seem to be designed to be common to everyone. They're more proprietorial.
- jacquesm 4y agoAlmost every element of computing has been harnessed to become a moat to protect someone's income stream.
- taylodl 4y agoYes, the interfaces to external devices were simple, for some definition of simple. Don't forget that we had ports dedicated to keyboards, mice, joysticks, video, printers - all that takes physical space and all those connectors were slightly different and had slightly different orientations. Yeah, simpler. Compare that to USB-C. One port that I can connect anything to, including power (which I didn't even mention above). To make things even simpler, again for some definition of "simple", it doesn't even matter which way I orient the connector. I can just insert it into the port without thinking about it. This is simpler for the user, but definitely harder to engineer. Do I want to go back to the old days? No. My main machine when I got started was a C-64 but I also had access to a lab full of Apple II machines, a lab full of TRS-80 machines, and many friends having an Atari 800. They were definitely less complicated than the machines we have today. They were also far less capable, had proprietary interfaces necessitating proprietary hardware, and not at all portable. We have the equivalent of a supercomputer in our pocket allowing us to communicate with anyone in the world at any time. Even sci-fi never envisioned that! I wouldn't call it a dubious gain.
- blippage 4y agoOne thing I just remembered: a couple of weeks ago I went to join a Zoom meeting, only to discover that it wouldn't work until I upgraded it. So I had to faff around trying to sort that out rather than doing what I wanted to do, which was join a meeting. If I wanted to update my software every five effing minutes I wouldn't have chosen Debian Stable.
- BizarroLand 4y agoWhat stacks do you find yourself using when programming USB communications?
- blippage 4y agoFor microcontrollers, tinyusb seems to be the place to be. It supports a lot of architectures. The Pico RP2040 has tinyusb as part of its SDK. I've actually got something working, and I was toying with the idea of making the Pico controllable over USB. Once you can peek and poke memory addresses on the Pico, the world's your oyster. Tinyusb seems quite flexible. You can write anything. It seems to have quite a bit of "canned" functionality, too, so if you wanted to write a keyboard host, for example, it's a case of trying to work through one of the demos and adapting it to your needs. The problem with USB is that there is a lot of assumed knowledge as to how it all works. I only started playing with it recently, and it feels like being parachuted into enemy territory without a map. I wrote some of the basic here: https://medium.com/@oblate_24476/introduction-to-usb-from-a-developers-perspective-aa32b1a92462 https://medium.com/@oblate_24476/introduction-to-usb-from-a-...