[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)