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