It really depends on your use case and your goals regarding the learning process.
If you want to learn a language to get a job, I believe some good advice is to focus on two things:
- Learn fundamentals of software development and good programming practices
- Let the job market inform you about which languages are in higher demand and learn them, as you would be integrating existing teams with existing codebases.
So on the basis of my second point, you’d probably be much better off with Python, C++, and/or Javascript, as their existing userbase is huge. I believe this is what the author implies.
However, if you are working in an environment where you can choose which language you can work with (like scientific research, where, to some extent, you can ignore my second point) then I believe learning Julia is definitively worth it. Some new software companies are beginning to choose Julia as their stack, which also further illustrates my point (new companies starting from scratch get to choose which language they use).
Now, even if your goal is to join the industry, I believe learning Julia should be a great learning experience nonetheless. If you become well-versed in Julia, the language and ecosystem will naturally expose you to great fundamental concepts and techniques.
For example, Julia can be as fast as low-level languages if you get things right. That is to say, you can learn low-level optimization strategies with Julia. Julia also has amazing high-level language features like generic programming (via multiple-dispatch) and code generation (via macros), so learning the language will expose you to those concepts. Additionally, Julia has great tooling, so the ecosystem will expose you to very good programming practices like integrated testing and automatic documentation.
I believe you just can’t learn some of these things in Python, and on the other hand, learning them really well in C++ would absolutely take you years, compared to months in Julia.
In my particular case, I’m in computational research and education, so I believe I’m into Julia for the long term. But if you are not, or don’t plan to be for more than a few years, I believe investing time in learning Julia has a great payoff nonetheless because of the fundamentals and good practices you will get exposed to.
Now, my expectations about Julia are that it should absolutely take universities by storm, as it is a fantastic language for both research and education. So its “niche” I believe is considerably larger than what the author suggests. We will see where the ecosystem develops from there in a few years.
Now, some of the points raised by the Redditor could also be addressed over time, I believe. I’m very enthusiastic about static compilation in Julia, which is however at a very early stage. As static compilation seems to be closely related to how Julia is used on GPUs, which is another major use-case for Julia, I would expect to see some progress in this area. Improved Python integration should also lead to substantial growth for Julia, as the userbase for Julia packages could grow substantially.