> you can't ever program those things since those operations cannot be expressed using finite instructions.
And now you're telling me that Mathematica, Maple and the like don't exist. Yeah, we can't express the concepts directly, but if we're very good at one thing, it would be emulation.
> How would you express that?
Like this:
>>> from sympy import *
>>> i, n, m = symbols('i n m', integer=True)
>>> # For example, lets say you want to sum 1/N^2 for N from 1 to infinity.
>>> Sum(1 / n ** 2, (n, 1, oo))
∞
____
╲
╲ 1
╲ ──
╱ 2
╱ n
╱
‾‾‾‾
n = 1
Would do the same with the integral. There's even that strange elongated S and everything...
I said: emulation. You don't actually need to stretch your mind to infinity to reason about it, right? I mean, you're not a matrioshka brain the size of a star, right? (Just making sure) So if your mind can cope with infinities by using just the very finite storage accessible to you, what prevents computers from doing the same? Like this:
>>> summation(1 / n ** 2, (n, 1, oo))
2
π
──
6
Dunno, seems legit? How come it appeared, even though my computer has only 32gb of ram, waaaay too little to hold infinity?
EDIT: obviously, I still didn't program it myself! I'm dumb, after all. But someone apparently did.
EDIT2: and that person also made sure that even the dumber coders (like me) can use, and benefit from, the tool they wrote.
A computer understands instructions. You can give it instructs to loop and sum values. Those aren't instructions telling the computer what an infinite sum is. Math is about making humans understand such concepts, we have yet to be able to program those concepts.
For example, when you write a sum in python then the computer will sum the values and do the work for you. But when you write an infinite sum like that, you the human still has to do all the math work figuring out what to do with it, so you didn't circumvent the need to do math at all. The computer doesn't understand the sum. You can program simple simple rules for it to try to simplify it, but it still isn't nearly as versatile as a skilled human. For example this problem is a basic problem from a first year course, it makes sense that someone programmed in the human derived solution for it, but they haven't actually programmed the logic for infinite sums into the computer.
That's obvious? Computers don't understand anything. They're just machines. What did you expect?
> you the human still has to do all the math work figuring out what to do with it
Yeah. But with this tool, as dumb as I-the-human am, I am able to do that math even if I don't understand it, but more importantly I also have a much better chance of understanding what's happening. That's because the explanation is close to the place where it's needed (in a docstring, one key press away) and it is expressed in a way that I'm most familiar with (as code).
You're going to tell me that if I want to use math, I have to let go of every preconception I had and crawl into Plato's cave, to see the light in the darkness. I'm too dumb to do this, unfortunately, and a little bit too busy. It took me almost five years to really master C++ programming after all, while you skimmed Stroustrup's book and went on to write Qt the next day.
> but they haven't actually programmed the logic for infinite sums into the computer
They did. Just not the whole of it. Are you sure it's impossible to improve to the point where a skilled human no longer holds the definitive advantage?
Computers can't understand anything. But they are very good at blindly following the rules. The question is not what to do to make computers understand infinity, but what set of rules can emulate the real thing well enough. We're getting there. Maybe in another 100-200 years CS will swallow maths, who knows?
> That's obvious? Computers don't understand anything. They're just machines. What did you expect?
They do arithmetic's perfectly.
> You're going to tell me that if I want to use math, I have to let go of every preconception I had and crawl into Plato's cave, to see the light in the darkness.
No, math is a huge with an extreme amount of flexibility and power. You have lists of solutions like this one, you can add those in a program and then have the program look them up and spit out answers, with maybe some simple algebra testing:
But nobody will be able to just program all solutions to all math problems like that, or give you a bible of everything to look up, as nobody knows what math is useful to you specifically. This is why every field that applies math tend to create their own subfield in math, like mathematical physics or chemistry or statistics or computer science. They create their own compendiums of useful notation and results that you can use. Nobody understands even a fraction of all of that and where it is useful, instead you will have to understand what discipline the paper you are reading is coming from, usually noted somewhere on the paper, and then look that up. For someone doing computer science you mostly look at the subfields statistics, probability, combinatorics and algorithmic complexity. Most of those papers will be written by people who do math mostly on the side though, not pure mathematicians. Pure mathematicians mostly works on problems that are too abstract for programming. (Pure vs applied, probability statistics and combinatorics are examples of applied math fields).
Edit: So from my perspective the main problem you have is that CS professors have yet fleshed out and formalized the subfield Computer Science math. When I studied higher level physics all the math was taught by physics professors, since mathematicians doesn't understand that math, it is mostly developed by physicists. Why doesn't CS do the same? You can't expect mathematicians to do that work for your field, as there are too many fields depending on math and too few mathematicians to handle everything.
So does abacus. Even something like this: https://www.youtube.com/watch?v=GcDshWmhF4A is capable of doing arithmetic. Does that mean that the marbles somehow understand what addition is?
> look them up and spit out answers,
Wolfram Alpha does this, and let me tell you: things I couldn't understand listening to lectures and trying to work through handbooks (well, most of them were hand-me-downs from the '60s, so take that as you will), became clear in just a few days of work. I didn't cancel my subscription for 2 years after that, out of gratitude.
But, most of the papers out there don't use interactive platforms for publishing. Even though they could. But as you said, that would be too much work, so they simply don't. I accepted it, it's all good now.
> Pure mathematicians mostly works on problems that are too abstract for programming.
I was pretty sure we're not talking about "pure" math. I mean, we both agree that that particular branch is of interest to a tiny minority. Of course the pure mathematicians can stay inside their ivory tower forever, nobody cares. Notice that I repeated the word "use" multiple times. I was trying to imply having a goal that's not mathematical in nature.
EDIT:
> Why doesn't CS do the same? You can't expect mathematicians to do that work for your field, as there are too many fields depending on math and too few mathematicians to handle everything.
I... don't know. That's a very good question. Yes, teaching math in CS depts is generally outsourced to mathematicians. It was like that for me. You may be right, that could be the reason to all my problems.
So, you mean that if we want to have math that's understandable for programmers, we need to make it ourselves? Fair enough if so, I think.
> Wolfram Alpha does this, and let me tell you: things I couldn't understand listening to lectures and trying to work through handbooks (well, most of them from the '60s, so take as you will), became clear in just a few days of work. I didn't cancel my subscription for 2 years after that, out of gratitude.
Wolfram Alpha didn't program everything, but it includes most things you will see in an undergrad. In my undergrad we used a 500 page reference book containing most of the formulas and notations of STEM undergrad programs, wolfram alpha is basically that book written as a program.
> I was pretty sure we're not talking about "pure" math. I mean, we both agree that that particular branch is of interest to a tiny minority. Of course the pure mathematicians can stay inside their ivory tower forever, nobody cares. Notice that I repeated the word "use" multiple times. I was trying to imply having a goal that's not mathematical in nature.
But then your main problem are mostly with computer scientists or statisticians math papers, not mathematicians. The problem with papers written by people who apply math is that usually they don't really understand the math, they just apply it, so they can't explain it well. There isn't much you can do about that. And papers written by pure mathematicians, they sure do understand what they do, but it uses mountains of abstractions in order to make the problem possible for a human to reason about so it wont be easy to understand either.
For example, most who study statistics views the math as a tool to solve problems. They wont put in the effort to fully understand it, and can therefore just give you the second hand explanations they learned themselves, and the result is that those explanations likely will be missing a lot of things. Pure mathematicians however wont understand the way you want to use the math as a tool, so they might have a full explanation or the math but they wont understand how to apply it in your field, so their explanations will also be bad. What you need is someone who did the work to study the pure math side, and then did a lot of work applying math, and then explain it. Such people are extremely rare though. I went that route, I knew a few others who did, but most of those I know didn't. They either went pure or applied, not both.
> wolfram alpha is basically that book written as a program.
Exactly! Which is why I love it, and why I think it would be good to extend it to encompass more than just that one book, too.
> The problem with papers written by peo I went that route, I knew a few others who did, but most of those I know didn't. ple who apply math is that usually they don't really understand the math, they just apply it, so they can't explain it well.
This is already a third time you said something that made me really think again about the issue...
It sound very plausible. I think I've probably never even seen a proper maths paper. I've been struggling with math, but it didn't occur to me that a part of the reason (other than me being dumb) was that the authors struggled with it too! Were I in their place, I would definitely also try to reduce the amount of explanations to the absolute minimum, so that there's less of a chance I'll be called out for it.
EDIT:
> I went that route, I knew a few others who did, but most of those I know didn't.
I'm not joking, this is very serious: is it possible to learn from you somewhere/somehow? Because you're incredible, honestly, your patience is not running out even now, this deep into comments thread; and you really can speak in programming - this much I can see - and I think you're at least as competent on the other side (though I obviously can't judge it myself, so I'm deferring to (your) authority that I came to believe in). I'd be incredibly happy if I could somehow get a bit of your help.
(Seriously, I'm not sarcastic or anything, this is 100% honest. EDIT2: well, I still disagree with you on some points :P but I think if it's from you, I wouldn't have a problem with actually listening to you)
> Exactly! Which is why I love it, and why I think it would be good to extend it to encompass more than just that one book, too.
I agree with this. Just that writing such programs is hard, it isn't something anyone can do.
> I've been struggling with math, but it didn't occur to me that a part of the reason (other than me being dumb) was that the authors struggled with it too!
I studied both theoretical physics and pure maths to a grad level. You really notice how the physics professors struggles explaining the math and gloss over things, while the mathematicians doesn't. The physicist are experts at solving and reasoning about physics problems, not maths, as soon as the math solves their problem they stop thinking about the math. It is a part of the reason I went to math afterwards, I wanted better explanations.
> I'm not joking, this is very serious: is it possible to learn from you somewhere/somehow? Because you're incredible, honestly, your patience is not running out even now, this deep into comments thread; and you really can speak in programming - this much I can see - and I think you're at least as competent on the other side (though I obviously can't judge it myself, so I'm deferring to (your) authority that I came to believe in). I'd be incredibly happy if I could somehow get a bit of your help.
I think I have some mental disability where my feelings don't remember things. So even though I hated some of your other comments that doesn't mean anything about other things. I just like discussing things and explaining, taking my time to think etc.
If you want to talk about something you can reach me at {removed}. I'll remove this later. I don't really care much about people learning who I am, but I don't want it to be obvious. I love discussing things, but few people really like discussions like this. So just hit me up and we can talk. I don't always have the right views and opinions, but I never stop thinking about arguments or reasons. I just changed my mind so many times that by now I've seen most arguments and it is rare to change my mind more now.
> I think I have some mental disability where my feelings don't remember things.
You're not the only one - I also hated some of the things you've said about programming; I couldn't help it, programming is a large part of my identity, so I got defensive really fast.
But that doesn't matter, I mean, we're just talking here, I think none of us has really any bad intentions, and I really benefited from this exchange a lot. And it's not like you wanted to specifically hurt me with what you said, so even if I felt hurt I won't cry you a river because of that :)
> If you want to talk about something you can reach
Thank you! Saved it. The thing is, I have this inferiority complex caused by not understanding much about math even if I try to learn it. In college I was already good at programming, so I didn't have much interest or need to learn math back then. And later, when I realized that it would actually be a good idea to learn some, I found myself completely alone with it. I mean, nobody around me cared at all, there were no lecturers to go and ask questions to, no peers that would be solving the same problems at the same time, nothing, just the Internet, Wolfram, and a lot of head banging. I realized too late that I've made it this hard for me basically myself.
But what's done is done, so I started thinking about how to cope with the situation. And I came up with the idea that if someone explained maths to me in terms I'm familiar with from programming, it would be much easier for me to digest. But, there are no materials like that. That's understandable given the very specific path you'd need to take to be able to write or create them... And you've taken that exact path. Honestly, at this point I wouldn't mind you calling me an idiot and programming a children's game, if only I could understand the things that were eluding me for years.
Again, thank you. I will write an email, definitely.
> You're not the only one - I also hated some of the things you've said about programming; I couldn't help it, programming is a large part of my identity, so I got defensive really fast.
Also, although I'm saying that learning programming is relatively easy, it is a field that is hard to master. The difficulty isn't understanding what a function does, but understanding how to architect a huge complex system so that you can still reason about it afterwards. Those systems will all be made up of those simple instructions though. That is different from math, in math the systems you invent often are entirely new things and can't get divided into simpler things.
And now you're telling me that Mathematica, Maple and the like don't exist. Yeah, we can't express the concepts directly, but if we're very good at one thing, it would be emulation.
> How would you express that?
Like this:
Would do the same with the integral. There's even that strange elongated S and everything...