4 ms·
> 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
by 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.
- klibertp 9y ago> When you say "I abstract it in a function" that's surely what a mathematician is doing In principle, yes. In practice, I can right-click on any such function and get to see its source (edit: instantly, automatically) whenever I need it. That doesn't work at all with math papers. EDIT: Furthermore, when writing about something where bubble sort is used, for the general audience, I would simply link to an explanation of what it is, visualization of how it works and an example code, so that anyone who doesn't know it can quickly get up to speed with it, then I'd explain how exactly that sorting method fits with the rest of topic. In maths, papers are devoid of any links, the teaching materials are up to 50 years old and never updated to take advantage of new presentation techniques, authors frequently name-drop some algorithm and then forget to say what parameters they used or how exactly it connects with preceding and following paragraphs. It's really bad from UX point of view. That's why sites like BetterExplained are so important. EDIT2: so, in short, I'd do everything I could - without spending huge amounts of time on it - to make the article as accessible and easy to follow as possible and to make it useful even if someone is not able to understand it whole. I'd really like to see mathematicians to at least try doing the same.
- nogbit 9y ago> In maths, papers are devoid of any links, the teaching materials are up to 50 years old and never updated to take advantage of new presentation techniques, authors frequently name-drop some algorithm and then forget to say what parameters they used or how exactly it connects with preceding and following paragraphs. That there is the crux. If math articles/papers were written in a different medium then you could drill down (right click, view source) from the most abstract level down to the basics. Some kind of tool would need to exist to make this possible.
- gizmo686 9y agoBecause mathamaticians have thousands of years of history where they learned how to write math in a way that is readable to other mathamaticians. Software engineering is a very different activity from the math that mathamaticians do. It makes sense that it has a different standard for what mathematicians do. There are undoubtadly ways to improve mathematics, but it seems highly arrogant to say that your <100 year old field has discovered a massive improvement that mathematics has missed for centuries.
- gfodor 9y agoappeal to tradition, poor argument. not arrogance to assert perhaps a field needs to update its methods.
- gizmo686 9y agoA software engineer suggesting that math should adopt the practices of software engineering sounds a lot like someone trying to generalize their domain into another domain; and saying that they know better then the domain experts in the field they are generalizing into. Occasionally they are right. Most of the time however, the domain experts are right.
- Koshkin 9y agoWell, it's not just about who is right and who is wrong, not in this case. Comparing industry practices with those of scientific (especially theoretical) research may not make much sense. Plus, if you consider the way software is actually developed, you will see that the kind of honesty that is required or assumed in regard to a scientist cannot be practically expected from today's software engineer. Engineering is all about compromises, while science is not.
- klibertp 9y agoAs I said in another comment[1], I'm not even talking about software engineering, just a good practices of everyday programming. Could you please tell me why do you think that the name `x` is better than `element` (when talking about some set), the name `X` is better than `training_set`, and the `∑` is better than `sum`? [1] Here: https://news.ycombinator.com/item?id=15914024 https://news.ycombinator.com/item?id=15914024