8 ms·
> Most coding doesn't need much of any math past boolean logic and very basic set operations Coding IS math. Not "coding uses math", I mean it is math. Mat
by godelski 2y ago
> Most coding doesn't need much of any math past boolean logic and very basic set operations
Coding IS math.
Not "coding uses math", I mean it is math.
Mathematicians do not deal in objects, but in relations among objects; they are free to replace some object by others so long as the relations remain unchanged. Content to them is irrelevant; they are interested in form only.
- Poincare[0]
I don't know how you code, but I don't think I'm aware of code that can't be reasonably explained as forming relationships between objects. The face we can trace a program seems to necessitate this.
[0] https://philosophy.stackexchange.com/questions/22440/what-did-poincar%C3%A9-mean-when-he-said-mathematicians-do-not-deal-in-objects-but https://philosophy.stackexchange.com/questions/22440/what-di...
- xmprt 2y agoBy that same logic you could also say that language is math. In fact I think your quote kind of disproves your point because the content/state of a program is super important in coding more than the form. Coding used to be very close to pure math (many early computer science classes were taught in the Math Department in universities) but it has been so far abstracted from that to the point that it is its own thing and is as close to math as any other subject is.
- godelski 2y ago> By that same logic you could also say that language is math Not quite, but the inverse is true. The language to math direction doesn't work because a lack of formalism. I can state incomprehensible sentences or words. (There's an advantage to that in some cases!) but when you do that with code you get errors and even you do it with math its just that there's no compiler or interpreter that tells at you
- bryanrasmussen 2y ago>I can state incomprehensible sentences or words. since you can express paradoxes with match, perhaps not that different.
- godelski 2y agoI think you misunderstand what "paradox" means. While it can mean "self-contradictory" it can also mean "contrary to one's expectation." Math uses both, but in very different contexts. The contradiction is used in proof formulation, specifically to invalidate some claim. I don't think this is what you're implying. The latter is what it contextually sounds like you're stating; things like the Banach-Tarksi Paradox. There's no self-contradiction in that, but it is an unexpected result and points to the need to refine certain things like the ZFC set theory. I'd also stress that there are true statements which cannot be proven through axiomatic systems. The Halting Problem is an example of what Godel proved. But that's not contradictory, even if unexpected or frustrating.
- analog31 2y agoBut that doesnt necessarily mean successful programmers are good at conventional math. This is why certain people in the department are identified as "math people".
- godelski 2y agoI'm not sure why you'd think I disagree. It seems you understood I argued that it's unhelpful to make the distinction between math and "conventional" math But I'll refer you to a longer conversation if it helps https://news.ycombinator.com/item?id=43872687 https://news.ycombinator.com/item?id=43872687
- potatoman22 2y agoI 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 2y 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 2y agoThis seems like the setup to a joke about how mathematicians don't know how to communicate to ordinary folks
- godelski 2y 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 2y 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
- dayvigo 2y agoSure, lambda calculus is math. To call assembly or typical imperative C math, at least in the same sense, is a bit of a stretch.
- godelski 2y agoWorking with different objects doesn't make it any less of math. Just because you can derive calculus from set theory (analogous to assembly or even binary here) doesn't make calculus "not math". Math is about abstractions and relations. See the Poincare quote again. Plus, the Programming Languages people would like to have a word with you. Two actually: Category Theory. But really, if you get them started they won't shut up. That's either a great time or a terrible time, but I think for most it is the latter.
- GoblinSlayer 2y agoWheeler: It from bit. Otherwise put, every it—every particle, every field of force, even the space-time continuum itself—derives its function, its meaning, its very existence entirely—even if in some contexts indirectly—from the apparatus-elicited answers to yes-or-no questions, binary choices, bits. It from bit symbolizes the idea that every item of the physical world has at bottom—at a very deep bottom, in most instances—an immaterial source and explanation; that which we call reality arises in the last analysis from the posing of yes–no questions and the registering of equipment-evoked responses; in short, that all things physical are information-theoretic in origin and that this is a participatory universe.
- godelski 2y agoThat is not in contention with what I said, now is it? Wheeler is arguing that if a tree falls in the forest, and there is nobody to hear it, that it still makes a sound because there are things that interact with the sound. But if the tree fell in a forest and there was nothing else in the universe then there is no sound because there is no observation. It helps to read the whole thing[0] and to understand the context of the discussion. This is meta-physics and a deep discussion into what the nature of reality is. Ian Hacker has a good introduction to the subject but I find develop grave misunderstandings when they also do not have the strong math and physics background necessary to parse the words. Even people who understand the silliness of "The Secret" and that an observer need not be human often believe that this necessitates a multi-verse. A wildly convoluted solution to the problem of entropy not being invertible. Or closer to computer terms, a solution that insists that P = NP. There is information lost. If you wanna argue that there's no difference between the word cup and a cup itself because there is no word without the observer who has the language, then yeah. [0] https://historyofinformation.com/detail.php?id=5041 https://historyofinformation.com/detail.php?id=5041
- voidspark 2y ago> Coding IS math. Programming is an expression of logic, which is absolutely mathematics. But then we also have to think about naming variables and classes, structuring our code so that it is more readable by other developers, and so on. That's less about formal reasoning and more about communication. There is an engineering aspect to programming (prototyping, architecture, optimization, etc). It's a combination of mathematics and engineering. Software Engineering.
- xigoi 2y agoDo you think mathematicians don’t have to think about naming variables and structuring proofs?
- voidspark 2y agoOf course they do, but that part is not "mathematics". It is communication. If they use the English language to write the proof that doesn't mean English is also mathematics.
- xigoi 2y agoWriting proofs is just as important to mathematics as writing code is to programming.
- voidspark 2y agoYes it is important but that's not the point. Structuring sentences and naming variables so that it is easier for other people to understand is less about formal mathematical reasoning, and more about communication. You could name a variable x, y, or Banana, but it doesn't change the logic.
- godelski 2y agoNeither is it "the point" in programming. You should be concerned with communication and have every right to get upset when someone is being needlessly convoluted but that's as much of a point in programming as it is in math, physics, or any domain. I mean the reason we get mad at this is because it is someone destroying "society" in some sense. Even if that society is your team or just the set of programmers. It would be a pretty dick move were I to just use a word that significantly diverged from conventional meaning and expected you to mull it over. Similarly if I drop a unknown out of context math equation. It would be meaningless. And I'm on your side, really! I strongly advocate for documenting. And let's be real, the conclusion of your argument more strongly argues for documentation than good variable names. Because variable names are much more constrained and much more easily misinterpreted considering how any word has multiple definitions. Surrounding code is often insufficient to derive necessary contextualization. https://news.ycombinator.com/item?id=43874738 https://news.ycombinator.com/item?id=43874738
- bawolff 2y ago> Coding IS math. > Not "coding uses math", I mean it is math. Arguably writing a novel is math, if you use the right definition of math. But sometimes its more helpful to use more informal definitions that capture what people mean then what is technically accurate.
- leptons 2y ago>Coding IS math. No, not always. Quite a lot of high-level code doesn't require any math at all. It doesn't take math to perform CRUD operations, which account for a lot of programming work. Sure, the underlying machine code is all based on math, but the higher level programming doesn't need to involve a single math equation for it to be useful. Let's see where the goalposts move now...
- voidspark 2y agoAll of that code is a series of logical statements and expressions. Mathematical logic. But the CRUD logic is so basic and boring, so obvious, that it doesn't require any thought.
- leptons 2y ago>All of that code is a series of logical statements and expressions. Mathematical logic. Which code? The machine code that underlies everything? Or the lines of simple high-level CRUD that don't even need a single number or logic statement to function? Not all programming has to be mathematical or even logical at a high enough level, and I say this as someone who's been coding assembly language for 40 years.
- voidspark 2y ago> Or the lines of simple high-level CRUD that don't even need a single number or logic statement to function? Those lines ARE mathematical logical statements. Each line defines logical operations that are executed by the computer. Same for high level or low level programming. It's all logic.
- leptons 2y agoStoring a string in some abstraction is not a mathematical operation. I'm done with this thread, it's going way too far down too many rabbit holes. The quarks that make up the matter that the computers are made of are pure "math". There, now I've moved the goalposts.
- CyberDildonics 2y agoforming relationships between objects This is vague and doesn't mean anything. People can't even agree what 'objects' are and people did a lot of programming before the term 'object' was invented. Programming is about is fundamentally about instructions and data. Yin and yang of two things that are completely different, even if people can occasionally mix them and conflate them.
- godelski 2y agoCategory theory is often jokingly called the study of dots and arrows. What's a dot? Anything. What's an arrow? A relationship. I'm surprised I hit a nerve with so many people. I'm quoting someone who's considered one of the greatest mathematicians. Obviously I don't know the backgrounds of people but it seems like programmers have strong opinions on what math is that disagrees with what mathematicians say they do. https://en.wikipedia.org/wiki/Category_theory https://en.wikipedia.org/wiki/Category_theory
- CyberDildonics 2y agoNow it's not math it's 'category theory' and that's dots and arrows and dots are anything. At what point does the abstract description just not offer any useful insight anymore? I'm surprised I hit a nerve with so many people. A lot of people had very good explanations for why you're pretty far off in trying to say two things are the same. Programming is much more like building a machine than any sort of straight math. There is state, there is interactivity, there is performance, there is IO and there are real world implications to all of it. Saying they are the same is like saying gardening is plumbing just because you sometimes use a hose.
- godelski 2y ago> [No,] it's not math it's 'category theory' That's a wild claim considering Category Theory is a branch of mathematics | Category theory is a general theory of mathematical structures and their relations. - https://en.wikipedia.org/wiki/Category_theory It is necessary that you provide an alternative definition as to what "category theory" is, though I suspect it will make many category theorists and mathematicians upset. > A lot of people had A lot of non-mathematicians disagreed with mathematicians. https://news.ycombinator.com/item?id=43882197 https://news.ycombinator.com/item?id=43882197
- vidarh 2y agoIt's math the way everything is physics, as well as the way physics is philosophy (as the natural sciences started out as branches of philosophy). In other words: It's math in a sense that for most of us with a computer science background is often not very relevant to how we work.