4 ms·
Programming languages have bugs. These things happen, and this tired article blows them totally out of proportion. Some languages are less permissive, and have
by eigenspace 29d ago
Programming languages have bugs. These things happen, and this tired article blows them totally out of proportion.
Some languages are less permissive, and have a culture of searching harder for corner cases and dealing with them than others, that is true. I would expect to find less cases like this in Rust, but more cases like this in Python.
Julia is an extremely flexible and permissive language, which means that generic code needs to be written carefully and contracts between interfaces need to be thought through.
When you combine funky package types like OffsetArrays with functions from a package where the authors didn't think about OffsetArrays, bad things can happen. Those things were then reported and the community has learned a lot about how to deal with those sorts of things.
I'm sure an AI agent can crawl through and find a new big list of weird bugs in julia, but that's true even of a language like Rust.
- penteract 29d ago> Some languages are less permissive, and have a culture of searching harder for corner cases and dealing with them than others, that is true. I would expect to find less cases like this in Rust, but more cases like this in Python. My expectation is that when I think I've found a bug in the programming language implementation I'm using, it's actually me that's mistaken (or at least that language lawyers consider me to be mistaken). Hearing about someone who has encountered multiple bugs (in regular use, rather than running a fuzzer or being directly involved in implementing the language) makes me very wary.
- Intralexical 29d agoYeah, this is crazy. It's literally a cliché for most programming languages that it's never the compiler's fault. Granted a lot of the Julia bugs seem to be in the standard/core libraries, but still. Even if the bugs are overstated, this cavalier attitude towards correctness in a numerical language is super disconcerting to me.
- Intralexical 29d agoCorner cases like `prod([Int8(100), Int8(100)]) != prod((Int8(100), Int8(100)))`? Both returned integers, but the left was 10000 while the right was 16. [0] Which, apparently, sat in the standard library for almost four years after it was introduced before it was fixed. [1] Even if there was some merit to your argument, I would still find the attitude disqualifying. While it may be technically true that all programming languages have bugs, software and software communities for numerical computing should take responsibility and treat those bugs seriously, not downplay them by pointing to the fact that other software probably has bugs too. FWIW I don't have a horse in this race. I've used both before, and I currently make money using neither. I liked Julia. I find that article concerning. And I find the attempts by Julia users to discredit that article in this thread, without addressing its substance, even more concerning and disappointing. Well, bugs can be fixed. But ideally not by a culture that dismisses them as inevitable or unimportant. [0] https://github.com/JuliaLang/julia/issues/39183 https://github.com/JuliaLang/julia/issues/39183 [1] https://github.com/JuliaLang/julia/blob/26f2333686ce90331548035d47ec707227efb417/base/tuple.jl#L311-L317 https://github.com/JuliaLang/julia/blob/26f2333686ce90331548...