Rex Kerr
2 min readJun 22, 2022

--

I think you make some good points, but you're not really arguing against Yuri's points. I've never had those kind of correctness issues so badly with Rust, for example. The ethos with Rust has, mostly, been to emphasize correctness strongly, admittedly somewhat to the detriment of the number of available libraries.

I think the real question with Julia is: if not Julia, then what? Python is too slow. C++ is too awkward as you describe. Go isn't targeted for the same application space. JS, hahaha. Java's productivity is too low, Kotlin and Scala and Java are all problematic when it comes to really getting the most out of your hardware (e.g. with ML, or even just numbers). Rust's design makes it a poor fit for REPLs, and core data analysis tasks like plotting haven't gotten much attention.

So there's a good argument to make (which you partly did) that Julia is the only language in its space, and everything else is a poor substitute at best. My own answer for these things was "But I can learn several other languages and do better yet" (nobody beats R in stats; for super-safe super-high-performance code, nobody beats Rust; for ML nobody makes it easier than Python; for general-purpose programming nothing has the blend of speed, productivity, and safety of Scala).

But I do think that Yuri may be more right than you admit here in that Julia is leaning too heavily on its uniqueness in this space and letting itself get away with allowing too many correctness issues to slip under the rug. Rust, for instance, can't do that because part of its brand is that it's C++ but correct. The language helps that out a lot--just like Julia can with type annotations, if they're used, in contrast to Python (less now than historically, though)--but the language and library designers still have to care.

--

--

Rex Kerr
Rex Kerr

Written by Rex Kerr

One who rejoices when everything is made as simple as possible, but no simpler. Sayer of things that may be wrong, but not so bad that they're not even wrong.

Responses (1)