You can build a fantastic language for mathematicians, but people outside that domain won't feel welcome or compelled to use the language to scratch their itches.
It'll just sit there. For math folks.
You can build a fantastic language for mathematicians, but people outside that domain won't feel welcome or compelled to use the language to scratch their itches.
It'll just sit there. For math folks.
I think the aspiration was to provide something that a Matlab user can immediately pick up, that is almost as fast natively as Fortran, that also provides features to do good modern software engineering if you want to. And it succeeds amazingly at this.
In my own view, adoption has not been wider because 1) most people don’t need speed so the trade offs with the compiler + using a weird language aren’t worth it, and more importantly 2) outside of some incredible software gems, the package ecosystem tends to be flaky and maintained by overworked academics in their spare time.
That was the point I was trying to make.
This language is too esoteric and leafy for most hackers / engineers / enthusiasts to spend their spare time building support packages. They'll pick up something like Nim or Rust as a new language before they'll look at Julia.
By catering to mathematicians, scientists, and engineers, the broader population of software folks were excluded. Or, if "excluded" is too harsh, they at least weren't incentivized.
Because of this, the best parsers, serializers, protocol implementations, scrapers, web servers, and other assortment of important technologies get written in other languages instead.
(I also think Julia would be okay with the current level of support for the "computer sciencey" technologies you describe like parser and web servers and so on -- it's pretty good at calling out to C or C++ if needed. But even many of the scientific/numerical packages don't have the maintenance resources they really need, so are often "good but flaky". This situation does seem to be slowly improving though.)
"a ⊻ b"
"... am I supposed to type (or copy paste) that symbol every time I want to xor two numbers? There must be a better way right?"
"Sorry, no."
I immediately gave up the language after this. Too bad, I really loved it and was looking forward to progress in DL stack in Julia at that time. Too math-y.
This just false. From https://stackoverflow.com/a/60173810/2990344
help?> ⊻ "⊻" can be typed by \xor<tab>
Most traditional engineers are quite familiar with Matlab and Fortran.