4 ms·
No. 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 invol
by gspr 5y ago
No. 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)