Live data from Hacker News

Why do most programmers work so hard at pretending that they’re not doing math?

richardminerich.com

71–74 of 74 posts

Re: Why do most programmers work so hard at pretending that they’re not doing math?

#71

A seductive idea, but ultimately of stunningly limited use in software engineering. By far the most costly defects in software creation are due to incorrect requirements or poor systems design. Knowing with mathematical certainty that your software component does exactly what you have specified it to do helps little when what it does is still the wrong thing. And that doesn't even touch on the fact that crafting comp…

"poor system design" Agree, bur if you don't know how that relatest to math, then you will not discover how math fixes "poor system design" and, as a side effect "incorrect requirements"

Here's the devastating truth: people with a half-assed knowledge of CS but with good other skills (project management, communications, customer service, people interaction, etc.) can and will often make unarguably better software than people who just get the fundamentals right.

You can spend all your life building the perfect implementation of a crappy system, but that won't rescue it. Good CS fundamentals (even provably correct algorithms and implementations) has its place in the software craft but that place is a fairly small niche, not the top of the heap.

Re: Why do most programmers work so hard at pretending that they’re not doing math?

#72
post #3

Imagine if physics was done this way. But it is... 1) We test theories with experiments to see whether they fail for that particular "input", we don't prove them correct. 2) One of our two best theories (QFT, the other being GR) doesn't even make sense, mathematically. In fact the great challenge of physics today is that we have neither experiment nor mathematical rigor to stand on: http://groups.google.com/group/sci…

[deleted]

Re: Why do most programmers work so hard at pretending that they’re not doing math?

#73

Earlier quoted context omitted.

> By far the most costly defects in software creation are due to incorrect requirements or poor systems design. I'm willing to bet those can be fixed with math. By formalizing the requirement, you're bound to spot any inconsistency, and probably even some other kinds of errors. Same with systems design. "Small is better" and "low coupling is better" for instance, can be formalised and measured. By the way, you can't…

That implies that you can specify all requirements in a mathematical form, which is not the case. How do you specify a usability requirement? Software is for humans, that makes it messy, even down to the requirements level.

> That implies that you can specify all requirements in a mathematical form, which is not the case.

I concede that requirement themselves can't be completely reduced to math. But most of them can. Also, the system itself (excluding human operators) can definitely be reduced to pure math.

What I was proposing was to check the pure math specification against the mostly math requirements. If such math are simple enough, it should be easy enough to make sure the specs match the needs.

Re: Why do most programmers work so hard at pretending that they’re not doing math?

#74
post #33
post #30

Earlier quoted context omitted.

Modern IP networking relies extensively on graph theory. The Spanning Tree Protocol is a prime example of this.

Graph theory is a very complex, and broad field of mathematics. The routing algorithms are an absolutely trivial application of it in a minuscule amount. Anybody, without formal training in mathematics can understand routing algorithms, because they are so simple and easy .

Yes, that is true. But, how those algorithms happen, is based in graph theory; is what I meant. If you saw Jamis Buck's "Algorithms" talk, I believe there's a reference to a "spanning tree" graph in there.

That said, I do agree with your point.

Post reply on HN