logoalt Hacker News

otrastoday at 4:50 PM1 replyview on HN

I frequently find myself coming back to this quote from the first lecture:

And that is that computer science, in some sense, isn't real. You see, when an engineer is designing a physical system, that's made out of real parts. The engineers who worry about that have to address problems of tolerance and approximation and noise in the system. So for example, as an electrical engineer, I can go off and easily build a one-stage amplifier or a two-stage amplifier, and I can imagine cascading a lot of them to build a million-stage amplifier. But it's ridiculous to build such a thing, because long before the millionth stage, the thermal noise in those components way at the beginning is going to get amplified and make the whole thing meaningless.

Computer science deals with idealized components. We know as much as we want about these little program and data pieces that we're fitting things together. We don't have to worry about tolerance. And that means that, in building a large program, there's not all that much difference between what I can build and what I can imagine, because the parts are these abstract entities that I know as much as I want.

I know about them as precisely as I'd like. So as opposed to other kinds of engineering, where the constraints on what you can build are the constraints of physical systems, the constraints of physics and noise and approximation, the constraints imposed in building large software systems are the limitations of our own minds.


Replies

slwvxtoday at 5:25 PM

> ...the constraints imposed in building large software systems are the limitations of our own minds.

There are always constraints and limitations, including those to build and provide energy for software, and also the societal impacts. I guess the designer of Bitcoin and of current AI datacenters ignored constraints in the way described in the quote and the world is now paying the price in higher carbon emissions and energy prices