4 ms·
You seem to be complaining that math isn't programming, that it's something different, and you've discovered that you don't like how mathematicians do math. Ma
by ColinWright 5y ago
You seem to be complaining that math isn't programming, that it's something different, and you've discovered that you don't like how mathematicians do math.
Math notation is the way it is because it's what mathematicians have found useful for the purpose of doing and communicating math. If you are upset and disappointed that that's how it is then there's not a lot we can do about it. If there was a better way of doing it, people would be jumping on it. If a different way of doing it would let you achieve more, people would be doing it.
It's not laziness, and I think you very much have got the wrong idea of how it works, why it works, and why it is as it is. Your anger comes across very clearly, and I'm saddened that your experience has left you feeling that way.
Maths is very much about communicating what the results are and why they are true, then giving enough guidance to let someone else work through the details should they choose. Simply giving someone absolutely all the details is not really communicating why something is true.
I'm not good at this, but let me try an analogy. A computer doesn't have to understand why a program gives the result it does, it just has to have the exact algorithm to execute. On the other hand, if I want you to understand why when n is an integer greater than 1, { n divides (n-1)!+1 } if and only if { n is prime } then I can sketch the idea and let you work through it. Giving you all and every step of a proof using Peano axioms isn't going to help you understand.
Similarly, I can express in one of the computer proof assistants the proof that when p is an odd prime, { x^2=-1 has a solution mod p } if and only if { p = 4k+1 for some k }, but that doesn't give a sense of why it's true. But I can sketch a reason why it works, and you can then work out the details, and in that way I'm letting you develop a sense of why it works that way.
Math isn't computing, and complaining that the notation isn't like a computer program is expressing your disappointment (which I'm not trying to minimise, and is probably very real) but is missing the point.
Math isn't computing, and "Doing Math" is not "Writing Programs".
- throwaway31338 5y agoI really, really appreciate your reply and its tone. Thank you for that. You've given me some things to think about. I often wish people were more like computers. It probably wouldn't make the world better but it would make it more comprehensible.
- ColinWright 5y agoThanks for the pingback ... I appreciate that. And thanks for acknowledging that I'm trying to help. It might also help to think of "scope" in the computing sense. Often you have a paragraph in a math paper using symbols one way, then somewhere else the same symbols crop up with a different meaning. But the scope has changed, and when you practise, you can recognise the change of scope. We reuse variable names in different scopes, and when something is introduced exactly here, only here, and only persists for a short time, sometimes it's not worth giving it a long, descriptive name. That's also similar to what happens in math. If I have a loop counting from 1 to 10, sometimes it's not worth doing more than: for x in [1..10] { /* five lines of code */ } If you want to know what "x" means then it's right there, and giving it a long descriptive name might very well hamper reading the code rather than making it clearer. That's a judgement call, but it brings the same issues to mind. I hope that helps. You may still not like math, or the notation, but maybe if gives you a handle on what's going on. PS: There are plenty of mathematicians who complain about some traditional notations too, but not generally the big stuff.
- JohnHaugeland 5y ago> We reuse variable names in different scopes This example works against you. Scope shadowing is nearly universally considered bad practice, to the point that essentially every linter is pre-configured to warn about it, as are many languages themselves (eg prolog, erlang, c#, etc) To a programmer, you're saying "see, we do it just like the things you're taught to never ever do" . > You may still not like math, or the notation, The notation is probably fine What I personally don't like is mathematicians' refusal to provide easy reference material Programmers want mathematicians to make one of these: https://matela.com.br/pub/cheat-sheets/haskell-cs-1.1.pdf https://matela.com.br/pub/cheat-sheets/haskell-cs-1.1.pdf It doesn't have to be perfect. We don't need every possibility of what y-hat or vertical double bars means. An 85% job would be huge.
- Jensson 5y ago> This example works against you. Scope shadowing is nearly universally considered bad practice So you never used the same variable name in two different scopes ever? Like, if a function takes argument "name", no other function you ever write again in any program can have a variable named "name" unless it is the same exact usage? Or, as is commonly complained about in math, every programmer in the world then use the variable "name" only for that usecase and otherwise comes up with a new name for it? Having different scopes doesn't imply shadowing, it just means that you define it and then use it and then scope goes out and it no longer exists. No mathematician knows even close to every domain, so different domains of math uses notation differently. It is like how different programmers programs in different programming languages. It is such a waste to have so many programming languages, but people still do it for legacy reasons.
- shlurpy 5y ago> Math notation is the way it is because it's what mathematicians have found useful for the purpose of doing and communicating math. That's only really a good description for the most well trod areas, where people habe bothered to iterate. I think a more realistic statement would be: "Math notation is the way it is because some mathematician found it sufficient to do and communicate math, and others found it tolerable enough to not bother to change." Personally, though, my problem has always been where publications use letters and symbols to mean things that are just "known" in some subfield that isn't directly referenced. It's not a problem for direct back and forth communication during development, true, but it dramatically increases the burden on someone who wants to jump in.
- JohnHaugeland 5y agoI mostly agree with you. That all said, it would still be quite nice if it was somehow more accessable. A lot of papers containing material that's probably actually quite standardizable remain opaque to me, and the notation invariably falls by the wayside if there's a code or language description available. Many times, math notatons have been thought to be minimal, or most clear possibly, only to fall by the wayside Whereas this notation serves domain specialists well, it still leaves people like me somewhat confused A cheat sheet - even to the practical norms - would go a long way
- derekjdanserl 5y agoThis is a pretty good defense. Well done.