5 ms·
As a programmer, I find electronic circuits insanely hard to reason about. It's like looking at a computer program where every single line runs concurrently. Ma
by nathan_f77 11y ago
As a programmer, I find electronic circuits insanely hard to reason about. It's like looking at a computer program where every single line runs concurrently. Maybe I need to approach it from a different angle.
But I love it, and I learned a ton when I was hacking away on my microwave [1].
[1] http://madebynathan.com/2013/07/10/raspberry-pi-powered-microwave/ http://madebynathan.com/2013/07/10/raspberry-pi-powered-micr...
- amelius 11y agoIn my experience, electronics is usually much simpler than software, because every component only talks to a few other components, you can put probes into it pretty easily, the "data" you are working with is incredibly simple (you only have voltages, currents and power). Sure, it gets more complicated with things like processor design where you have pipelines that can be flushed, and branch prediction and that kind of stuff. But that is more software than hardware anyway.
- unwind 11y agoSo how to you feel about analog electronics, like anything with an operational amplifier in it? Or, essentially, any circuit featuring analog feedback. Makes my brain hurt.
- amelius 11y agoAn opamp is just a device with fixed input/output relations. All possible configurations have already been explored to the greatest possible depth. You can find these configurations in standard textbooks. Now, turning back to software: a consensus algorithm, or a concurrent garbage collector, those are things that make my brain hurt :)
- wyc 11y agoIn software, you're guaranteed that 2 + 2 is perfectly 4 in an int32. It's a very clean abstraction. In hardware, operational amplifiers are affected by thermal noise, magnetic fields, parasitic capacitance, etc. It is not "incredibly simple", and although there are only a handful of inputs you /want/ to care about in that operational amplifier, the actual number of inputs you have to worry about increases dramatically as you chase performance, higher frequencies, and compactness. Processors must implement logic that can be represented by software, yes. However, when you're trying to push multiple GHz on nanometer technology, that implementation becomes especially difficult. I recommend picking up an RF engineering book, as it will only begin to describe the noise and side-effects that must be accounted for in those circumstances. There's a reason that Intel has physicists on staff. If hardware was truly easier than software, then we'd probably be building our web and mobile apps in that.
- amelius 11y agoYou are right that there are different problems. But designing high-frequency amplifiers, mixers, and such can now even be done by computers using optimization techniques such as genetic algorithms. The design space is quite limited, compared to software. > If hardware was truly easier than software, then we'd probably be building our web and mobile apps in that. I think this is more a matter of cost and flexibility.