Welcome! Yes, there have been many long threads on this in the past. Here are two comments that I think speaks to your question at a high level, but there are many good responses there:
Unfortunately, I think the author is right. I only have experience with Python, Julia and Rust (and a little Perl), but I’ve never encounted even close to as many bugs in other languages as I do in Julia. Both in packages and in Base.
The question is why.
I think it’s the combination of:
A) An extremely generic language where everything is built upon shared abstractions and generic, extendible functions, and
B) No way of specifying or checking abstract interfaces, so no-one really knows what …
I’m sympathetic to Yuri’s larger point: Julia as a language and ecosystem is permissive by default. You can easily combine packages in ways that are unlikely to work and get mired in the weeds. For example, I can easily imagine attempting to differentiate a distributed SVD of a BlockedArray filled with Unitful Quaternions. Sure, that’s an absurd example and it’s unlikely to work, but I can imagine how it might work and may even be able to construct the problem statement in a few lines of code.…
I will also add that there’s a wide range of dis/agreement with the various points and so this topic can often spark some lively debates.
8 Likes