Why I No Longer Recommend Julia The author has used the Julia programming language extensively over many years for data transformation, analysis, simulation, statistics, and visualization, even publishing open-source Julia packages. Despite the initial enthusiasm, they no longer recommend Julia due to pervasive correctness and composability bugs across its ecosystem that seriously undermine reliability. --- Key Reasons for Discontinuing Use High Rate of Serious Bugs: Julia has, according to the author, the highest frequency of correctness bugs encountered among all programming systems they have used since Visual Basic 6 in the mid-2000s. Examples of Bugs Filed by the Author: Incorrect sampling from probability densities (#1241) Biased array sampling (#642) Incorrect product computation for small integers (#39183) Histogram fitting inaccuracies (#616) Base functions silently returning wrong results (#39385) Other Notable Bugs Filed by the Community: OrderedDict key corruption (#71) Off-by-one errors on leap years (#36543) Pipeline IO write ordering errors (#36069) Incorrect control flow and array copy aliasing bugs (#41096, #39460) --- Composability Problems and Unexpected Failures The author found many bugs arising from composing different packages or Julia language features: Example Issues: Euclidean distance function incompatible with Unitful vectors (#201) External command functions broken for substrings (#36406) Matrix multiplication breaks when using missing values (#39362) @distributed macro fails with OffsetArrays (#34870) OffsetArrays Causes Severe Bugs: Supports flexible indexing but often leads to out-of-bounds errors similar to those in C/C++. Bugs allowed out-of-bounds access even when user code and libraries were correct (#39379). Extensive indexing and sampling bugs related to the interaction of offset indices and the @inbounds macro that disables bounds checking: Many statistics functions gave incorrect results with offset indices. The Julia documentation historically misrepresented correct use of @inbounds, promoting unsafe patterns. Example of unsafe pattern: --- Broader Ecosystem Issues Beyond Mathematics Bugs were also found in basic tasks and libraries: JSON encoding and parsing (JSON3.jl issue #63, Julia issue #34249) HTTP request handling (HTTP.jl #626) Arrow file integration with DataFrames (#101, #102) Editing Julia code within Pluto notebooks (Pluto issues #826, #751, #836) --- Community and Developer Experiences Similar disappointments and bugs are echoed by other Julia users, especially in machine learning: Patrick