# Discussion on "Why I no longer recommend Julia" by Yuri Vishnevsky

**URL:** <https://discourse.julialang.org/t/discussion-on-why-i-no-longer-recommend-julia-by-yuri-vishnevsky/81151>\
**Category:** Community\
**Tags:** discussion\
**Created:** [May 16, 2022, 2:33pm UTC](https://discourse.julialang.org/t/discussion-on-why-i-no-longer-recommend-julia-by-yuri-vishnevsky/81151 "2022-05-16T14:33:38Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![jakobnissen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jakobnissen/32/13477_2.png) [@jakobnissen](https://discourse.julialang.org/u/jakobnissen)\
**Post date:** [May 16, 2022, 2:39pm UTC](https://discourse.julialang.org/t/discussion-on-why-i-no-longer-recommend-julia-by-yuri-vishnevsky/81151/2 "2022-05-16T14:39:05Z")

</div>

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.

---

_[View the full topic](https://discourse.julialang.org/t/discussion-on-why-i-no-longer-recommend-julia-by-yuri-vishnevsky/81151)._
