5 ms·
Exactly. Making it harder to read, write and understand on purpose, unless you're a part of a specific small exclusive club. There's absolutely no reason.
by 127 5y ago
Exactly. Making it harder to read, write and understand on purpose, unless you're a part of a specific small exclusive club. There's absolutely no reason.
- gspr 5y agoNo. There's a reason: it communicates extra information very cheaply and in-band with the code for people who are intimately familiar with the mathematics involved. This can be better than comments or documentation in some situations (and also doesn't preclude also having those). It's becoming a pet peeve of mine how HN conflates a solid, classical mathematical education with some kind of gatekeeping club. Anyone is welcome to join. Anyone is welcome not to use this language if they wish. But please don't dictate how us mathematicians are supposed to communicate.
- jstx1 5y agoIt's not about math notation on its own or about mathematical education. I'm very comfortable with mathematical notation in textbooks and papers and I still think that using it in code is a mistake.
- neolog 5y agoCan you explain why?
- 127 5y agoYes, I agree completely. It communicates information very cheaply and in-band to very few people who are intimately familiar with the mathematics involved. And nobody else. Calling this mathematical education makes me doubt your implicit claim of pedagogical ability. I think a lot of math could be taught with a lot less overhead and in more understandable fashion. It's just that the natural incentives seem to drive people to unnecessary overhead and barriers for those who actually want to learn. Lot of the language and symbols involved could be streamlined. But like QWERTY keyboard and C++, you would first have to turn this huge hulking ship of legacy cruft into that direction.
- gspr 5y ago> I think a lot of math could be taught with a lot less overhead and in more understandable fashion. It's just that the natural incentives seem to drive people to unnecessary overhead and barriers for those who actually want to learn. Ok. Have at it, I guess. > Lot of the language and symbols involved could be streamlined. But like QWERTY keyboard and C++, you would first have to turn this huge hulking ship of legacy cruft into that direction. This screams a fundamental misunderstanding of mathematics. The symbols need context to make any sense whatsoever. To a reader with intimate knowledge of the context, the symbols convey lots of information very efficiently. That doesn't mean that the symbols are understandable without context, or even that they could be made understandable without context.
- 127 5y agoFor example, using greek instead of latin letters is completely unnecessary. Just to point out completely meaningless overhead. Using in-group context-sensitive symbols is by definition exclusive. Using descriptive well thought out names is inclusive. Math as a language seems very needlessly compressed. Imagine a world where programmers invented a new symbol for every function and you would have to look up what they mean, but when you look up what they mean, you would have to look up 10 other symbols. Most of those symbols refer back to symbols where you came from in the first place. It's a detriment for learning. Simple as that. Not everybody wants to be a mathematician. Some people just want to get work done and read through a bunch of research papers.
- gspr 5y ago> For example, using greek instead of latin letters is completely unnecessary. Just to point out completely meaningless overhead. Are you saying the whole field of mathematics (and physics) is wrong, and we're doing something "meaningless"? > Using in-group context-sensitive symbols is by definition exclusive. Using descriptive well thought out names is inclusive. Not when the group is open to anyone who wants to join. Math is probably the most "open source" field out there. Barring the very cutting edge front of research, everything can be learned from free sources or ones that can be borrowed for free from libraries, or had through very very cheap second hand material. That there is a high barrier to entry when it comes to effort isn't some malicious gatekeeping design. It's just because some things are hard. > Math as a language seems very needlessly compressed. Imagine a world where programmers invented a new symbol for every function and you would have to look up what they mean, but when you look up what they mean, you would have to look up 10 other symbols. You clearly have never done math! The way it works requires intimate familiarity with the definitions of the symbols. Once you actually manage to internalize that (it can be a lot of work), remembering what the symbols stand for comes for free. > Not everybody wants to be a mathematician. Some people just want to get work done and read through a bunch of research papers. "Not everyone wants to be a surgeon, some people just wanna read medical research papers." "Not everyone wants to be an astrophysicist, some people just wanna read astrophysics papers." Do you not see how ridiculous this is? Nobody is gatekeeping for the sake of gatekeeping. You're conflating gatekeeping with something just being hard, and the practitioners of the hard thing not wanting to change the way we work to accommodate non-practitioners (to our own detriment!)
- TheTrotters 5y ago> it communicates extra information very cheaply and in-band with the code for people who are intimately familiar with the mathematics involved. I think it's just the opposite. People familiar with the relevant math have, most likely, worked with this stuff in other programming languages and never used math symbols in their code. I'm used to seeing θ or α in text and theta or alpha in code. The combination of Greek letters and for loops looks very weird.
- gspr 5y agoYour assumption is wrong. Lots of really useful math has 0 or 1 implementations. A Julia one may well be first. (Saying this as someone who's done several first implementations, but haven't coded a single line of Julia)
- patrick451 5y agoWhy should we cater to the lowest common denominator? If we did it your way, we increase friction for the people most likely to use, read and edit this code. Just like the written word, code has a target audience. If you want to call that gatekeeping or some other putative pejorative, find by me.
- 127 5y agoIt's fine if it's only for hard core mathematicians. Use a disclaimer front and center next time: NOT MEANT FOR MUGGLES. (Seriously talking: From an educational point of view, lowest common deminator is exactly what you want, as long as you can communicate the entire concept effectively)
- jstx1 5y ago> Why should we cater to the lowest common denominator? The options aren't just complete beginner vs math PhD though. Imagine an experienced software developer who has written these kinds of algorithms in other languages and has never used latex. That's the kind of person you're also keeping out. Are they "the lowest common denominator"? I also don't know why you assumed that the people who are most likely to use this code like this are automatically people who already know the glyphs. It's gatekeeping not just because there is barrier to entry. It's because that barrier is artificial, unnecessary and comes with a smug feeling of superiority (you aren't the first person to use "lowest common denominator" in this thread).
- patrick451 5y agoFrankly, if you don't know the glyphs, you almost certainly have no business using the code. Basic notation is table stakes. I learned this stuff (yes, the latex) as an undergrad, and I wasn't even a math major.