4 ms·
Julia combines the following: - multiple dispatch - parametricity - lightweight subtyping - staged programming In interesting ways. felleisen's class talk
by fault1 5y ago
Julia combines the following:
- multiple dispatch
- parametricity
- lightweight subtyping
- staged programming
In interesting ways.
felleisen's class talks
(partially) about it here: https://felleisen.org/matthias/4400-s20/lecture15.html https://felleisen.org/matthias/4400-s20/lecture15.html
I guess the best way to put it is that Julia encourages a style where 90%+ of code can go through paths that are static.
Personally, I think Julia starts off as easy as python, but to get C++ or Fortran speed, you can't just code naively. Things go into a steep learning curve at that point, but perhaps there isn't yet as much know how about how to code "professional Julia" yet. There needs to be a book like Fluent Python or Effective C++ for Julia, or perhaps a condensed version of the Julia manual (see the 1 page zig manual for inspiration).
The other problem I have with Julia right now is lack of static type checkers. "modern python" (e.g, python in production in the last 5 years) tends to leverage the large ecosystem of things that hook into mypy (I'm taking about tools like pydantic) to reduce the inherent brittleness of the language. Ruby, php, and every other dynamic language has also seen that trend.
Right now, I've barely seen that with Julia, and it needs this badly for higher uptake in industry. It's why for example, perhaps you see a lot of Julia packages written for people's phds right now.