4 ms·
> When I program my computer, I specify all the steps to accomplish something. You certainly do not specify all the steps your computer must take to run the pr
by ryanmonroe 9y ago
> When I program my computer, I specify all the steps to accomplish something.
You certainly do not specify all the steps your computer must take to run the program because that would make even the simplest program a nightmare to read. In the same way, specifying all the steps a reader must take would make math papers completely unreadable. There's a line which should be chosen wisely, but it's not as simple as "just explain everything".
- klibertp 9y agoYou forgot this: > If it's too verbose, then I abstract it in a function. Yeah, not everything has to be included in your source and you do rely on abstractions when writing code. On the other hand, these abstractions are always there, and it "easily follows" that you can take a peek at them at any time, up to and including disassembling a binary executable. You can't do this with a maths paper - you can't just go to Github to check the source of a library, you have to "reimplement", again and again, pieces of the paper that an author decided to omit.
- kurtmueller42 9y ago>You can't do this with a maths paper - you can't just go to Github to check the source of a library, you have to "reimplement", again and again, pieces of the paper that an author decided to omit. Analogous to Github would be the entire mathematics ecosystem - it is not unreasonable to expect your reader to read another referenced work rather than reproduce it yourself. I think a better analogy than Github for work just assumed to be worked through by the reader, would be uncommented sections of code. Despite what anyone says about best practices, there will always be plenty of uncommented sections of code in any serious codebase, although the hope is that they would all be fairly trivial (and this is the same hope with mathematics papers). I would expect anyone reading my code to understand that if I loop through an array of integers, add them to a sum, and then divide by the length of the array, I am taking an average, even if I would be better served using a method that describes this properly. I would expect anyone reading my code to intuitively understand what I am doing if I build a reverse lookup map to some other map data structure without me commenting every little line and type to explain the idea behind the construction. Similarly, it is not always unreasonable for mathematicians to assume their reader can step between lines using elementary techniques. If you want someone to perfectly walk through every single assumption in a proof with zero ambiguity, you have arrived at Principia Mathematica. Certainly some mathematicians are worse than others, but this is no different than the world of software. I cannot begin the number the times I have stepped into some old enterprise code and immediately wanted to scrub my eyes after viewing some thousands-of-lines method with few to no comments and code branching in every direction for hundreds of lines at a time.