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 those shared abstractions are, or whether they violate them.
C) No clear way of specifying what is internal behaviour of a package/function/struct and what is stable, meaning it’s way too easy to rely on internal behaviour.
I think we, as a community, should take this problem seriously, and think carefully about a potential solution.