[HN Gopher] Why We Use Julia, 10 Years Later ___________________________________________________________________ Why We Use Julia, 10 Years Later Author : KenoFischer Score : 152 points Date : 2022-02-14 20:05 UTC (2 hours ago) (HTM) web link (www.julialang.org) (TXT) w3m dump (www.julialang.org) | wiz21c wrote: | I'm currently writing code with it. The language is really | (really) nice to work with. | | - But the REPL lacks the ability to redefine structs on the go | (which I can understand as it'd be tough to do, or simply not | possible). But that, combined with the slow start up time makes | life a bit harder than it should. Fortunately, one doesn't | redefine its structs every day. | | - There are also lots of libraries but the quality of the | documentation is often sub par. For a newcomer like me, working | examples would be great. For example, if you use the plots | library, you'll have hard time finding a list of all possible | plots (the documentation talks about lots of things, but | strangely, not a list of possible charts). I've also looked at | doing linear regression and GLM and, again, you've code libraries | but the examples are rare... | | - the startup time are still quite slow but that's ok because | somehow you adapt your workflow around. | | - being able to use greek symbols as identifiers is super cool | but your editor as to manage that, else you'll have to memorize | shortcuts... | | But still, I keep on using it, it's much faster for my use case | (data processing). I mean, faster than r or Python (for which I | could write fast code but that'd mean I'd have to change the way | it is written) | huijzer wrote: | > But the REPL lacks the ability to redefine structs on the go | (which I can understand as it'd be tough to do, or simply not | possible). But that, combined with the slow start up time makes | life a bit harder than it should. Fortunately, one doesn't | redefine its structs every day. | | It is possible to redefine structs in Pluto.jl which is also a | productivity booster overall due to its reactivity. | | > For example, if you use the plots library, you'll have hard | time finding a list of all possible plots (the documentation | talks about lots of things, but strangely, not a list of | possible charts). | | The Makie.jl plotting library has really great docs nowadays: | https://makie.juliaplots.org/stable/examples/plotting_functi... | adgjlsfhk1 wrote: | I really want revise to be able to be able to redefine | structs as well. It would make package development a lot | easier. | KenoFischer wrote: | I described what needs to happen in | https://github.com/JuliaLang/julia/issues/40399, but so far | nobody has had the time to implement it. | moelf wrote: | there's also https://docs.juliaplots.org/latest/generated/gr/ | in the docs which is basically "all the kinds of plots you can | make" (see the other comment for Makie gallary) | ChrisRackauckas wrote: | Examples and tutorials should go first. Some parts of the | ecosystem, for some reason, put the manual and descriptions | first. Give people code, then give people a manual for if | they want to dig further. Thankfully, this is rather easy to | fix. | eigenspace wrote: | Yeah, having Revise.jl be able to redefine types would be | delightful. | socialdemocrat wrote: | I cannot remember exactly when I discovered Julia or where. But I | remember I got intrigued early on and wrote a blogpost about 9 | years ago on Tumblr, which is still there comparing Julia to Ruby | of all things: https://assoc.tumblr.com/post/70484963303/getting- | comfortabl... | | The normal thing today is comparing Julia to R, Matlab and | Python. But my intro to Julia was actually trying to convert code | examples in the O'Reilly book: "Exploring Everyday Things with R | and Ruby: Learning About Everyday Things" to Julia. | | I thought that worked quite nicely and that the Julia code looked | a lot nicer than the Ruby code. It made me write a follow up blog | post a few days later: | https://assoc.tumblr.com/post/71454527084/cool-things-you-ca... | | Unlike your typical Julia user I was always into programming | because I wanted to make computer games. I liked playing with | Game engine architectures and those exposed me to the problem of | handling collision between objects of different types. Multiple- | dispatch solves that problem very elegantly. Traditional object- | oriented languages are pretty bad at it. | | From the perspective of writing clean and expressive code, this | really won me over to Julia early on before I had done much | serious work with it. | | It became my goto language for writing Unix tools, replacing Go, | Ruby and Python. | bobbylarrybobby wrote: | For unix tools, I assume you mean command line tools? In which | case how do you ameliorate the long startup time on each | invocation? | KenoFischer wrote: | For those who like to reminisce, here is the HN discussion from | 10 years ago: https://news.ycombinator.com/item?id=3606380 | eigenspace wrote: | I started using Julia in 2017, and as a physics student who saw | Python, Mathematica, and Matlab as a series of tools that I had | to pull out sometimes to solve specific problems, it came as a | great shock to me that I was suddenly interested in Julia for | it's own sake. | | It's not an overstatement to say that this language totally | changed my relationship with computers and programming. | appleiigs wrote: | I'm hoping Julia gets its killer app that can launch it to the | next level like Rails or Numpy. Julia has a lot of pleasantries, | but not enough to pry me away from what I'm productive with. | There's certain amount of switching cost that needs to be | overcome. | mbauman wrote: | We already have (at least) one: Differential Equations and | SciML. | komuher wrote: | I can reflect on like past few years (like 1.5 year ago i was | disappointed by julia lack of progres but a lot have changed). | | Julia is getting usable even in "normal" applications not only | academic stuff, as person who come back after 1.5/2 years to | julia i feel like i can use it again in my job cause it is a lot | more stable at have a lot of new neat futures + CUDA.jl is | amazing. | | I hope Julia team will still explore a bit more static type | inference and full AOT compilation if language got full support | for AOT it'll be a perfect deal for me :). | ChrisRackauckas wrote: | StaticCompiler.jl is making huge strides. 12 days ago a rewrite | was merged | (https://github.com/tshort/StaticCompiler.jl/pull/46), and now | the static compiler can allocate and use the runtime | (https://github.com/tshort/StaticCompiler.jl/pull/58). I would | still be weary of using it too much, but hopefully optimistic | of its near future. | pella wrote: | "14 February 2012" is a birthday? | ViralBShah wrote: | In a way - because the original blog post was | https://julialang.org/blog/2012/02/why-we-created-julia/ | tomrod wrote: | The fact yall are still working at improving it ten years | later, with substantial progress, gives me hope for its | longer term adoption in the future. | cube2222 wrote: | I've been working through the Statistical Rethinking[0] course | with Julia recently and so far the language has been really | intuitive, same for the libraries (Turing, Distributions). And | it's nice that you don't have to vectorize your code and can use | normal for-loops. | | [0]:https://github.com/rmcelreath/stat_rethinking_2022 | stellalo wrote: | I first learned about Julia somewhere in 2013, I thought "damn, | this looks really nice", but never used it seriously until 2016 | (v0.4). This language gives me joy, I never get tired of it. ___________________________________________________________________ (page generated 2022-02-14 23:00 UTC)