Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Remember, programming is a branch of mathematics.
 help



Programming is the mathematical equivalent of brick layers looking at architects and saying "I could do that."

Well I have often times see an architect creating a wild fantasy like structure and statistician with project manager saying, nope it is going to be another box due to actual physics and budget constraints.

Using GenAI, they certainly can.

Do architects lay bricks often? Wasn't aware.

computer science, yes, 100% a branch of math

programming is more like communicating to a computer to convince them to do some task. has always been like this, and this will not change


>> programming is a branch of mathematics.

I saw a cryptographer interviewed. She was maybe 20yo and was working onboard a US aircraft carrier. Installing and managing cryptographic systems does not make one a cryptographer. Doing math via computer programing also does not make one a mathematician any more than driving a car makes one a mechanic.


In the same sense as pharmacology is a branch of physics. Technically, yes. Realistically the overlap is small and you don't need one for the other most of the time.

There's a difference between "branch of mathematics" and "can be modeled using mathematics".

so is physics?

Theoretical physics, sure, ok. Not experimental physics though.

That too. Statistics used to analyze results and turn them into conclusions.

As my mathematical statistics professor told us on the first day, “statistics is not mathematics.” It’s a good idea to remember: if a branch of the subject x is called “mathematical x,” then x in general is not totally mathematical and can be studied to some extent without mathematics.

That's arguable.

The empirical part is not mathematical, in that you run experiments and get results.

What’s the mathematical proof of this?

The Curry-Howard correspondence.

For instance, in mathematics, we have A ⇒ A (every statement implies itself, for instance "if it rains, then it rains"); and analogously, in programming, we have the identity function of type A → A (which reads a value as input and outputs the same value).

This is the tip of an enormous iceberg identifying, in a certain precise sense, proving with programming (and stating mathematical assertions with specifying the desired behavior of a program).

However, programming is a bit more general than proving: Circular proofs are simply of no value, whereas looping programs can still be valuable. For instance, I for sure hope that the main loop of the browser I'm currently using to fill out this textbox does not prematurely stop.


>we have the identity function of type A → A (which reads a value as input and outputs the same value)

That only exists in theoretical computer science. In real computer programming, you always have some bounds to the value of A.


I think it is time to repost Against Curry-Howard Mysticism (https://liamoc.net/forest/loc-000S/index.xml)



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

Search: