6 ms·
I strongly agree with readability in my opinion its cause Academia people live in "bubbles" and they assume everyone knew what a domain specific terms and greek
by machinekob 4y ago
I strongly agree with readability in my opinion its cause Academia people live in "bubbles" and they assume everyone knew what a domain specific terms and greek letters means so its easier to read some omega then for example learning_rate or lr.
But for us mortal who cross multiple domains its just getting extremely frustrating to read full math based notation without any extra info about notation in package/functions etc. so debugging multiple sub-packages is just getting too time consuming as you have to learn both person style of writing code, whole scientific notation and get domain knowledge before you can even touch the code.
- bobbylarrybobby 4y agoAnd if you ever do want to edit the code, you have to know the name of every non-ASCII symbol the codebase uses if you want to type out those same symbols without copying and pasting them. If you're not familiar with the material, entering a character like ξ can be a real challenge, and is actually more keystrokes than just typing "xi".
- tagrun 4y agoDifference is 1 keystroke: you type \xi. Why is that a "real challenge"?
- animal_spirits 4y agoThe challenge comes from a person like me, who doesn't know off the top of my head which Greek letter ξ is. So for each of these symbols I'd have to google them and learn it, or have some notepad where I can copy paste the needed symbol
- tagrun 4y agoSo you don't know the Greek alphabet, but write high-performance computing code involving non-trivial math? (Julia's main use case is HPC)
- belval 4y agoThe author example is using the greek letter "eta" instead of spelling out "learning_rate", this is a pretty damning example.
- ShamelessC 4y agoWhat? Did you not read the parent of this thread? > strongly agree with readability in my opinion its cause Academia people live in "bubbles" and they assume everyone knew what a domain specific terms and greek letters means In any case, I program HPC stuff myself with pytorch and no - I don't know the Greek alphabet and probably don't understand "non trivial math". The assumption that these people can't contribute is pretty off-putting honestly. More engineers would join such efforts if there wasn't so much gatekeeping.
- tagrun 4y agoSo you think there's a cabal of "gatekeeper" scientists who are trying to hold the hordes of capable (yet somehow unfamiliar with the corresponding mathematical literature) engineers from making useful contributions to their libraries, because they use the conventional notation from the scientific literature? They should instead tread carefully and dispose of all Greek letters in their code to ensure you are not put off, because that's the real reason that stops you from making useful contributions?
- ShamelessC 4y ago> So you think there's a cabal of "gatekeeper" scientists No. I suggested I myself have seen gatekeeping and referenced your comment as example. Make of that what you will, but don't extrapolate it to a conspiracy theory I didn't suggest.
- dTal 4y agoYou should probably take the time to learn the names of the Greek letters. There are only 24 of them and they're even related to the English ones. It's not a huge time investment, and it's probably worth it if you work in engineering.
- tlb 4y agoWhat editors does this work in?
- tagrun 4y agoJuno, Jupyter support it out-of-the-box. With plug-ins: VS Code (unicode-latex), Atom (latex-completions), Emacs (which has TeX input), Vim (latex-unicoder), ...
- leephillips 4y agoAny editor, on Linux, if you have your keyboard set up to type Greek letters and the Unicode symbols that you use frequently. I can do it directly in the comment box: ξ
- ur-whale 4y agoSure, and that works great with rg and grep.
- leephillips 4y agoFor me it’s one keystroke, with the dead-Greek modifier key. I’ll do it right here, by typing <G-x>: ξ
- fwip 4y agoHow do you go from reading ξ to saying "oh I need to press <G-x>" ?
- leephillips 4y agoBecause I recognized the Greek letter that we usually represent in English as “xi”. In fact I wasn’t sure, but I guessed x, and it turned out to be right. For each letter there’s usually one obvious latin-alphabet equivalent. I bet you know right away how to type α and β.
- aaplok 4y ago> Academia people live in "bubbles" and they assume everyone knew what a domain specific terms and greek letters Naming things by their English name is not more universal than using Greek letters. It's just serving amother group of people who live in a different bubble.
- belval 4y agoYes and no, the example that the author gives is actually a very good one: > Many Julia APIs look like Optimiser(η=...) rather than Optimiser(learning_rate=...). This is a pretty unreadable convention. The learning rate is a well known name that basically every one will understand, on the other hand, "η" or eta, is not even used everywhere in the literature with some papers using alpha instead. This just looks clever, it's a pretty bad parameter name.
- melissalobos 4y ago> The learning rate is a well known name that basically every one will understand Absolutely! Because as we all know, everyone speaks English. The GP's point was that greek letters are used in lots and lots of papers even written in other languages. I have read quite a few papers in Japanese that used exactly the same conventions with respect to the greek letters and latin letters used.
- belval 4y agoHow many researchers in the ML/DL community don't speak English? I don't have hard numbers but I highly doubt that it's a significant proportion. What is the reach of your Japanese papers when almost no-one outside of Japan can read Japanese? Even China, despite their best effort to de-westernize their culture still uses English in their research papers. And if all the above wasn't enough, Julia's libraries are still all in English so if an hypothetical researcher's English is so poor that they don't know what "learning rate" is, I'd venture that they'll have trouble programming in Julia/JAX/PyTorch.
- 4y ago
- agumonkey 4y agoI understand both camps but I believe, these are superficial problems. It's like worrying about the comfort of seat in the operating room of a nuclear plant.
- nextos 4y agoExactly. I actually find Julia's ecosystem (not the language) way more approachable than Python's. In Python, most libraries are big monoliths. Whereas in Julia, libraries are small and composable. Furthermore, it's the same language all the way down. Python's libraries are superb, but the learning curve to develop (not to use them) is really steep.
- jstx1 4y agoI don't understand. What do you mean by "learning curve to develop" an existing Python library?
- borodi 4y agoI imagine it has to do with the fact that lots of python libraries are mostly c/c++ or fortran, while Julia packages are usually just Julia.
- adgjlsfhk1 4y agoPython's story for package development is a mess compared to Julia. If you know what you're doing you can make a new Julia package in the general registry with unit tests, CI, and code coverage in about 30 minutes. To contribute to an existing repository, you can ]dev the package to download the git repository, @edit a function to open the source in an editor, and push the changes to a PR in about 10 minutes. This makes it much easier for package users to turn into package developers. I've contributed to a bunch of Julia libraries that if I still used python, I wouldn't have contributed to the equivalent python library because contributing to Julia packages is at least an order of magnitude easier.
- abakus 4y agosuperficial you say. How about I name these in chinese in my package?