News for hackers. Stuff that matters.
Re:New Horizons for Julia by t_mann on Thursday February 20, 2025 @04:25PM (#43120405)
I am curious, have you run into any of the issues with Julia discussed here [0] (also discussed on HN [1])? Those problems would seem particularly troubling at a hedge fund to me, if you have to question the accuracy of your results after chaining multiple complex models together. Curious about your stance on / experience with correctness issues in Julia.

[0] https://yuri.is/not-julia/

[1] https://news.ycombinator.com/item?id=31396861

Re:New Horizons for Julia by SatvikBeri on Thursday February 20, 2025 @04:41PM (#43120615)
We've run into issues with Arrow – it or its dependencies would frequently break on updates, and we stopped using it. But none of the other issues mentioned in the article have ever come up for us. In particular, a lot of the problems come from using OffsetArrays.jl, which is a library designed to let you use different starting indices for an array, which we just don't use.

It's worth noting that we initially migrated ~15kloc of numpy data/numeric pipelines to Julia, and mostly found the same values, with the exception of something that turned out to be a bug in a Python library.

I would say that the biggest Julia annoyance we've run into has to do with the way the Expr type is implemented, particularly the fact that it's mutable, which makes some of the metaprogramming we want to do substantially harder. But that's not a bug per se, just a design choice I don't like.

Re:New Horizons for Julia by affinepplan on Friday February 21, 2025 @07:20AM (#43126667)
I won't pretend that Julia doesn't have its fair share of `wats`, but in my experience they tend to be in one of two categories

* usage of `OffsetArrays.jl` (really, just avoiding this package fixes most of the issues)

* hideously cursed syntax that should only pass a code review if your name is Lovecraft, but for some reason the parser allows it

if you don't do either of those things (which at least personally speaking, I don't) then I don't think the rate of "correctness issues" is any higher or lower than I experience in other ecosystems. In fact, it's probably lower

Don't forget that other languages are not immune... I love the `polars` library as well but in my two years of using it I've encountered organically two separate "correctness" bugs. It's just par for the course for any big code surface

Re:New Horizons for Julia by TheRealKing on Friday February 21, 2025 @11:22PM (#43136080)
Adding to the list is the tragedy of Julia programming language's type system: https://medium.com/@393069484/a-tragedy-of-julias-type-syste...
Re:New Horizons for Julia by affinepplan on Saturday February 22, 2025 @07:57AM (#43138614)
there exist many high quality criticisms of Julia's type system, but this article does not contain them if I'm being totally honest. I think this writeup here https://viralinstruction.com/posts/badjulia/#the_type_system... contains more valid gripes about the type system than the one you linked.
Re:New Horizons for Julia by ningcongchen on Wednesday February 26, 2025 @06:56AM (#43182861)
Using Union as an example is more understandable than using abstract types. I can also explain why abstract types are broken, but that would involve a complex interaction of subtyping and abstract interpretation.

In addition, I believe that abstract types are not that horrible since in industry we use OOP any way (https://github.com/Suzhou-Tongyuan/ObjectOriented.jl). I coworked with the author of this package several years ago. Currently, he is developping a different branch of Julia compiler. Since OOP makes eveything easier to design (from linter to static compiler), and programmers prefer OOP over abstract types, I personally don't think they will cause huge problems.