4 ms·
FTA : >>> One can now check that the next statement is true with a certain amount of essentially mechanical, though perhaps laborious, checking. I, the author
by wiz21c 9y ago
FTA :
>>> One can now check that the next statement is true with a certain amount of essentially mechanical, though perhaps laborious, checking. I, the author, could do it, but it would use up a large amount of space and perhaps not accomplish much, since it'd be best for you to go ahead and do the computation to clarify for yourself what's going on here. I promise that no new ideas are involved, though of course you might need to think a little in order to find just the right combination of good ideas to apply.
I hate that. When I program my computer, I specify all the steps to accomplish something. If it's too verbose, then I abstract it in a function.
I even add comments to make sure that a human reader easily and completely understands what I do.
I do that because I want the computer and the human reader to be productive in their understanding of what I do. And because I want the human reader to see that it's either elegant or just mechanical.
I'm not that pretentious to say "hey, I've hidden a few details because if you are as smart as I am, then you'll understand easily".
I had this when learning maths. As a student I was sometimes lost because I always thought maths were hard. Should I have had all the details, I'd seen it was indeed much easier than I thought and wouldn't have been intimidated. Now, I'm older, and I know all of that and I'm much better at mathematics. But what a waste of time.
And the space argument, come one. Just put all the stuff in annexes and it'll be fine.
- klibertp 9y ago> I hate that. When I program my computer, I specify all the steps to accomplish something. If it's too verbose, then I abstract it in a function. > I even add comments to make sure that a human reader easily and completely understands what I do. Yeah, honestly, any single time I read a maths-related paper I feel like I would be better off with an example, well-written, implementation in any programming language. Then I recall what the code, written by mathematicians, tends to look like, and I'm not so sure anymore... Seriously, the fact that math people choose to ignore the last 50 years of software engineering development, which was in a large part focused on readability and maintainability, instead of incorporating the techniques for themselves is really baffling. As it is, aside from a couple of really well-written articles, reading any paper has a high chance of frustrating me to tears...
- ColinWright 9y agoIt is unreasonable to expect that people who are experts in their own field, working at the very boundaries of human knowledge, should also be expected to be completely up-to-date with the latest research in software engineering development.
- klibertp 9y ago> working at the very boundaries of human knowledge That's a pretty minor part of all the papers produced every day. > to be completely up-to-date Did I say anything about being "completely" up-to-date? Most of the good practices for readability and maintainability of code were known in the 80s, with almost all of the bad practices disappearing in the late 90s. That's twenty years. > the latest research in software engineering development That's not even a research, actually. Things like using meaningful function and variable names (I can never, for the life of me, understand why someone would prefer `X` over `training_set` or `x` over `element`), using comments, using uniform, standard formatting, abstracting - but not hiding or omitting - mechanical details and so on don't come from standard research (I think?), but from the practice of programming. It is completely reasonable to expect people to improve their craft and to change their ways to better fit a changing environment. The arrival of general-purpose computers and later the Internet had a huge impact on almost every other occupation, from accountants to physicists, to biologists and medical professionals, to writers and journalists... just not on mathematicians. I may be wrong on this, of course, it could have changed in the meantime, but when I was a university student I learned algebra - as I've been told to - from a book printed in 1978. And that was ten years ago.
- emacsgifs 9y agoIt is endlessly frustrating that the current trend in functional programming fetishizes mathematical notation when describing the same concepts with more verbose versions of the same thing in other programming languages would be clearer and more widely understood.
- pbhjpbhj 9y agoSo you'd never say to someone "use a bubble sort" or "try a bitwise trie" you'd lay it out in full, commented code each time? When you say "I abstract it in a function" that's surely what a mathematician is doing when they say "then we have a BVP and it naturally follows ...", they're applying the function "treatAsBVP". If you don't understand that step then you go and learn that, just as someone would have to find a library and look at an abstracted function used in your code to understand what it returns.
- chestervonwinch 9y agoOf course, ambiguity can still arise even when the author puts the details into the appendices because "details of the details" could still be missing. This can happen when there is a mismatch between the assumed background by the author and the actual background of the reader. There are many hypothetical answers to why the article was not written for a more general audience (and not all require assumed malintent by the author).
- 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.