← Back to context

Comment by H8crilA

5 years ago

Excuse me, but modern CPUs are way more complicated than this, even if you only look at "arranging events in time". Like several orders of magnitude more complicated. Anyone who has touched VHDL/Verilog knows how delicate signal propagation is, and how crafty you have to be with the clock.

And even if you never tinkered with transistors surely you've at least looked at assembly code, and the amount of painstakingly detailed data layout orchestration that is going on there. A simple printf("hello world") is magical if you know what happens under the hood.

It's easy to dismiss the difficulty of something when all you see is a webpage explaining things very well and simply with some cool graphics. That webpage looks really cool, but this is just a front page of the result. The backend of all the math, equations and thoughts involved wouldn't be so visually appealing. This is just the pretty part result. If you would delve into the actual math and physics that was required for this I'm pretty sure you'd reconsider that statement. Just the study of vibrations alone is probably as difficulty as whatever you're talking about. And that's just one of several areas of study that needs to be considered when making a machine like this. Then you need static mechanics, dynamic mechanics, thermodynamics, fluid mechanics, knowledge of manufacturing processes, materials, among others. And each of these topics is HUGE in itself. You probably have no idea because you're a software engineer? It's easy to defend our own realm and dismiss others, when we know little about others' or all we know is based on some cool animations we saw on the web once.

Well, Electrical and Computer Engineering is an extremely precise discipline, and while the line between hardware and software can be fuzzy in many cases, web software is an entirely different world from VLSI design, and even from instruction set design. And of course, some software, at all abstraction levels, is extremely well engineered as well. But it doesn't seem to be the norm.

Most importantly, I'm talking about my own ability more than the best in the field.

The vast majority of people on this site have never written a line of C or Assembly in the past 12 months

Most people who write software do not know/care how circuits work, as they shouldn't. Car engineers similarly don't need to know how bridges are built.

  • Correct, but it can be a fun exercise, if for nothing else than the curiosity alone. Learning basic circuit theory leads you to diodes, which then leads to transistors, which then leads to op-amps, logic gates, etc. which leads to computational logic units like the ALU, etc. Before you know it, you have a very, very basic computer going on.

    Either way, it's the core process of engineering - applying theory, and breaking up complex parts into more manageable chunks. Same goes for the car engine - it's a complex piece of machinery, but still a sum of its parts.