5 ms·
I don't think that quote really supports coding and math being equivalent. To me, the quote provides an abstraction of math through a structuralist perspective.
by potatoman22 1y ago
I don't think that quote really supports coding and math being equivalent. To me, the quote provides an abstraction of math through a structuralist perspective. Language can also be viewed through this abstraction. I think coding could share the abstraction, but that doesn't make the three of these fields equivalent.
- godelski 1y ago> coding and math being equivalent Please see lambda calculus. I mean equivalent in the way mathematicians do: that we can uniquely map everything from one set to another
- QuercusMax 1y agoThis seems like the setup to a joke about how mathematicians don't know how to communicate to ordinary folks
- godelski 1y agoWell a lot of people did wildly misunderstand the Poincare quote. To me is is obviously about abstraction and I think this is true for any mathematician. I thought it would also be natural for programmers considering we use "object" quite similarly, if not identically. So... maybe it is or maybe this is the joke.
- ghurtado 1y ago> Not "coding uses math", I mean it is math > I mean equivalent in the way mathematicians do That sounds like you're backing off from your original claim, probably because it is impossible to defend. That you can use mathematics to describe code doesn't seem very different from using math to describe gravity, or the projected winner in an election, or how sound waves propagate. Isn't the primary purpose of math to describe the world around us? Then it shouldn't be surprising that it can also be used to describe programming. In the real world, however, software engineering has nothing to do with mathematical abstractions 99% of the time
- drdeca 1y agoA programmer constructs a function from some data type to another while a mathematician constructs a function from witnesses of some proposition to another? Though interpreting a CRUD app as a theorem (or collection of theorems) doesn’t result in an interesting theorem, and interpreting a typical theorem as a program… well, sometimes the result would be a useful program, but often it wouldn’t be.
- ndriscoll 1y agoInterpreting a CRUD apps (or fragments of them) as theorems is interesting (given a programming language and culture that doesn't suck)! e.g. if you have a function `A => ZIO[Any,Nothing,B]`, then you have reasonable certainty that barring catastrophic events like the machine going OOM or encountering a hardware failure (essentially, things that happen outside of the programming model), that given an A, you can run some IO operation that will produce a B and will not throw an exception or return an error. If you have an `A => B`, then you know that given an A, you can make a B. Sounds simple enough but in practice this is extremely useful! It's not the type of thing that gets mathematicians excited, but from an engineering perspective, such theorems are great. You can often blindly code your way through things by just following the type signatures and having a vague sense of what you want to accomplish. It's actually the halting problem that I find is not relevant to practical programming; in practice, CRUD apps are basically a trivial loop around a dispatcher into a bunch of simple functions operating on bounded data. The hard parts have been neatly tidied away into databases and operating systems (which for practical purposes, you can usually import as "axioms").
- godelski 1y ago> It's not the type of thing that gets mathematicians excited Says who? I've certainly seen mathematicians get excited about these kinds of things. Frequently they study Programming Languages and will talk your ear off about Category Theory. > You can often blindly code your way through things by just following the type signatures and having a vague sense of what you want to accomplish. Sounds like math to me. A simple and imprecise math, but still math via Poincare's description. > in practice, CRUD apps are basically a trivial loop around a dispatcher into a bunch of simple functions operating on bounded data In common settings. But those settings also change. You may see those uncommon settings as not practical or useful but I'd say that studying those uncommon settings is necessary for them to become practical and useful (presumably with additional benefits that the current paradigm doesn't have).
- waterhouse 1y ago"There are those who tell us that any choice from among theoretically-equivalent alternatives is merely a question of taste. These are the people who bring up the Strong Church-Turing Thesis in discussions of programming languages meant for use by humans. They are malicious idiots. The only punishment which could stand a chance at reforming these miscreants into decent people would be a year or two at hard labor. And not just any kind of hard labor: specifically, carrying out long division using Roman numerals." — Stanislav Datskovskiy
- godelski 1y agoNo one is suggesting programming with lambda calculus. But it would be naïve to think lambda calculus isn't important. They serve different purposes. We didn't: bring up the Strong Church-Turing Thesis in discussions of programming languages meant for use by humans.
- Shorel 1y agoCoding is math in the sense that coding is a subset of math. Mathematics is a very extensive field, and covers a vast amount of subjects. For the same reason it can't be said that mathematics is equivalent to coding, as there are many things in mathematics that are not relevant for coding. However, by far the most interesting parts of coding are definitely related to mathematics.