Hacker News new | past | comments | ask | show | jobs | submit login

>Programmers aren’t bound by practical limitations such as laws of physics, they are bound by their limited ability to understand the systems they create.

First line is already wrong. I mean I get the meaning but this is not technically true. Computing is bounded by the laws of physics. We have bottlenecks and limitations everywhere this is entirely due to physics.

It influences even the style of programming. There is much more parallelism in programming today due very much to physical limitations in raw speed.




Other comments have already responded to this. I will just add two excerpts that came to my mind when I read this in the book.

> The constraints imposed in building large software systems are the limitations of the human mind; opposed to the physical systems' constraints in other kinds of engineering.

- MIT 6.001 Structure and Interpretation: https://youtube.com/playlist?list=PLE18841CABEA24090

> The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms.

- Mythical man month


The parallel with Mythical Man Month resonates with me.

Of course 'executing code' and 'human minds' are bound by physics, that's a relatively uninteresting insight.

The point is: the process of human minds writing software is constrained by the understanding of single human minds. So the 'meta task' of software engineering becomes working around that constraint.

That's why decomposition is such a powerful tool for large software system development because it:

a. reduces the amount of working memory a single mind needs to make a change and

b. lets more human minds work on the solution in parallel without forcing every mind to understand everything about the overall system


I don't see how a eloquent quotation proves a point?

Software is bounded by the human mind AND physics. Everything is actually bounded by the previous aforementioned things. It's just that the physical bounds are less apparent for programming. But it is only "less" apparent measured relative to other engineering fields... when viewed without comparison to other engineering fields, the physical limitations of software are still readily apparent.

When you replied to me, was the post created instantaneously or was there a delay? That delay is due to physical limitations. If you don't code taking into account physical limitations and Big Oh complexity, well those limitations become even MORE apparent. In fact the entire Big Oh complexity thing solely exists because of physical limitations.


Reread my comment I wasn’t trying to prove a point. I explicitly stated why I included the quotes :)

I wasn’t going to repeat what the other comments already said: you are right but you are missing the point? Like you said:

> But it is only "less" apparent measured relative to other engineering fields... when viewed without comparison to other engineering fields

I don’t think any of the authors will disagree with what you just said.


The Mythical Man Month might be an object of worship but it was written in 1975 at a time when software engineering was VERY different than today. Most of what today's developers do is not close to castles in the air and much more like building generic office blocks on the ground.

Of course, some people have to solve novel problems but 99% of us don't, we just solve the same problems again and again.


A better way to interpret "constraint" in this is as the "limiting factor."


It's that the active constraint is understanding.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: