[HN Gopher] Quick Overview of Julia language [pdf] ___________________________________________________________________ Quick Overview of Julia language [pdf] Author : gurjeet Score : 54 points Date : 2021-01-10 20:38 UTC (2 hours ago) (HTM) web link (algorithmsbook.com) (TXT) w3m dump (algorithmsbook.com) | [deleted] | erwincoumans wrote: | Like Matlab and Lua, 1-based indexing :( | ogogmad wrote: | This small detail always comes up for some reason. | | Anyway, I recently tried implementing some numerical linear | algebra algorithms based on descriptions from papers and books. | The books and papers all used 1-based indexing, and this | created some problems for me when I translated the pseudo-code | to Python (which is 0-based). | rscho wrote: | Most languages designed for scientific (vs. business) use cases | are 1-based. Mathematicians prefer it to zero. | warlog wrote: | And R! | | 1-based works for folks that count things (Scientists). | Jtsummers wrote: | I've seen this in other Julia discussions. Can someone show me | a use case other than trying to cycle over the same data (EDIT: | or range) repeatedly where 0-based is fundamentally better than | 1-based? I mean, that's the only case I can think of where | 0-based is actually going to be easier and more sensible. | | But I'd argue that languages should stop having fixed offsets, | 1-based and 0-based are both too limiting. Ada is around 40 | years old (and it's not unique in this) and it provides | arbitrary index ranges and the option to use any discrete type | as the index so that you can use whatever index is most natural | for your particular problem. | warlog wrote: | If I'm not mistaken, Lua let's you assign any key (index) you | want. | tester756 wrote: | Sometimes I do wonder... maybe 1 based indexing is better and | would cause less off by 1 bugs for non-US devs? | sundarurfriend wrote: | This is a pretty good overview, and I like it for the same reason | I liked the "Half-hour to learn Rust" one from a few days ago - | compressed presentation, that's easy to skim through, but without | shying away from details too much. | | It's strange to see a Julia overview without any mention of | multiple dispatch though. "Function overloading" is briefly | mentioned, but if this had been a pragmatic overview like the | Rust one (instead of one given for use in book exercises), I | would have suggested including multiple dispatch, type | instability, and the use of `@code_warntype`. | dandanua wrote: | Indeed, Julia's abstract type system with multiple dispatch is | its killer feature. It enables generic programming in a | beautiful and concise fashion. Here [1] Stefan Karpinski gives | some explanations of why multiple dispatch is so effective. | | [1] https://www.youtube.com/watch?v=kc9HwsxE1OY | open-source-ux wrote: | " _It 's strange to see a Julia overview without any mention of | multiple dispatch though._" | | The link below is an informative recent discussion on OOP vs | multiple dispath on the Julia website forums. There is some | overlap but I much prefer the multiple dispatch approach: | | _Discussion: Why does Julia not use class-based OOP?_ | | https://discourse.julialang.org/t/is-julias-way-of-oop-super... | Grimm1 wrote: | The thing that has kept me from Julia is the size of the | ecosystem, but this was maybe 2 years ago now that I last tried | it otherwise I thought the language seemed very nice. How are | things doing for ML, NLP specifically if anyone knows? | komuher wrote: | Still same as it was 2 years ago Flux + some other smaller | repos. | Grimm1 wrote: | Gotcha, thank you | cameronperot wrote: | Looks like a decent basic summary. Section G.2.6 should probably | be called "Multiple Dispatch" rather than "Function Overloading" | though. Defining multiple methods of the same function in Julia | is different to function overloading in a language like C++ [1]. | | [1] https://www.youtube.com/watch?v=kc9HwsxE1OY&t=392s | east2west wrote: | Perhaps the author was trying to make the overview beginner- | friendly by using familiar terms. I have found it helpful to | compare and contrast Julia concepts with C++ template concepts. | For example, term trait is used in similar ways in both | languages, but the big difference is that in Julia type | information can be passed in run-time, not just in compile- | time. ___________________________________________________________________ (page generated 2021-01-10 23:00 UTC)