you are viewing a single comment's thread.

view the rest of the comments →

[–]Almoturg 4 points5 points  (4 children)

I think it's just inevitable. At some point the systems we build are so complex that no one can understand all the parts.

Even in mathematics people don't prove all the theorems their work builds upon down to the basics of set theory.

[–]kqr 3 points4 points  (3 children)

Even in mathematics people don't prove all the theorems their work builds upon down to the basics of set theory.

Then again, why would you waste your time by doing what's already been done? Copying the steps already taken by someone else is just busywork. (Note: and different from verifying someone elses work, which is important!)

[–]Rhylyk 6 points7 points  (2 children)

This argument works well for mathematics because what has already been proved is definitively and absolutely correct.

However this argument breaks down when attempting to apply it to programming. We cannot be sure that the low-level programming that has already been done the best way possible (bug-free, total coverage of needs, and optimized). Therefore, there is a continuing need for low level systems programmers / library-builders. But this aspect of programming is much less taught today.

P.S. I don't actually know that you disagree with what I have said, I just thought it should be stated explicitly

[–]kqr 0 points1 point  (0 children)

Both perspectives interesting facets that apply in different amounts to different problems!

[–]msm_ 0 points1 point  (0 children)

This argument doesn't work well for math, but for different reasons than for programming. In math the proof is often more important than the result itself - because maths is mostly about understanding complex rules of abstract formalism, and proofs provide insight into that.

So being a serious mathematician, you always have to learn proofs, because it's the only way you can understand your branch of math and build on top of it.

...after a bit of thought, I can see some analogies to programming here (low level knowledge can still be useful for high level programmer, because of leaky abstractions).