Why Julia Is Turning Heads in 2021
nextplatform.com
nextplatform.com
Almost by definition, new languages just can't compete with established languages on maturity. They have to compete on other metrics - better language design, a different runtime, new capabilities, etc. and therefore will attract a different crowd - initially
Over time, the bleeding edge first-movers will create basic necessities, which then attracts the programming language afficionados, who build interesting new software and nice-to-have, which attracts ordinary programmers, who then grow the community enough to give it stability and battle-tested packages, which then lets the language become "boring, old and stable". But this whole process takes ages. Look at e.g. Rust. Julia is somewhere between the "afficionado" and "ordinary programmer" stage. Of course you shouldn't use it for mission critical software where maximal stability is key. That doesn't mean the Julia hype isn't warrented.
Full disclosure: I don’t currently use Julia but I’m interested in spending some time with it this year. I primarily use MATLAB in my day-to-day life. I like Python as a general purpose language but find the syntax of Python+NumPy a little clunky for what I do.
I don’t really feel that Julia falls outside of mainstream programming paradigms anymore than something like MATLAB.
this seems to be the area where Julia is getting the most traction.
it's strong in some other areas too. it's not really being sold as a general purpose tool for building business systems, though.
(not that it's unfit for that purpose -- just it doesn't have a strong advantage. whereas for numerical codes, optimization, and a few other things, it is actually better than most alternatives.)
I liked the static type checking and compilation, but found it frustrating at the time that the sample code from a book I had purchased didn't work; overall, the language seemed to be still too much in flux to be entrusted with an important project, although I have spoken with fellow scientists who use it as their main language for experimentation and are happy.
Python is clearly winning because most important libraries are C++ under the bonnet - or even Cython (which is used e.g. by SpaCy), and its ecosystem with IPython, Jupyter notebooks and comprehensive data science libraries (pandas, matplotlib, sklearn, numpy, ...).
Julia's package ecosystem is rapidly catching up with Python's, at least for the packages you mentioned. I.e. Julia offers DataFrames.jl (its Pandas competitor), Plots and Gadfly (its Matplotlib competitors), and a few different ML libraries (its sklearn competitor). As for Numpy, its functionality is already offered through the base library in Julia, so there's no need for a separate package.
One especially nice feature of Julia is its interoperability with other languages. For example, if you need to use Python-specific functionality, you can do so from Julia through the PyCall library. Likewise for R, MATLAB, Java, etc. (C and Fortran FFIs are already offered through the base library.)
If you compare Julia to a start-up it is in the growth phase. It isn't making money, but it definitely looks like it can disrupt status quo, and that makes it worth investing in for a lot of people.
Tech support is a big deal. Most companies would rather contract out than build an in-house team. Better to focus on what you do best and let someone else do what they do best.
Not arguing for any technical merit of Matlab (not talking about Simulink, either). Just the business side.
For example, COMSOL only allows interactive programming via Matlab, and Matlab can interface with Cosworth's Pi Toolbox as long as you have the right license key.