It is a great question you ask because I am kind of living and breathing Julia and not always thinking about the concrete problems on the minds of people listening.
If your primary desire is to learn a technology in high demand which lands you a job making web sites, then Julia would absolutely be the wrong choice, but that is also a bit beside the point. Let me explain…
But when was the last time you saw a job offer for a developper writing Julia in your area ? In SF maybe yesterday, in my location, never, and it’s not going to change soon.
And there will be many years before that is a reality. The people that use Julia today are not hired to write Julia code, or code in any particular language really. They are typically people who have to solve hard problems with whatever tools will help them. A large part of these people are researchers and academics.
Thomas J. Sargent e.g. noble prize winner of economics is a user of Julia and an advocate of it. Why? Because modern dynamic economic models are so large and require so much performance that you simply cannot get the job done with much else besides Julia.
Researchers often have to deal with massive amounts of data and computationally very expensive problems. For them technology isn’t a matter of what you think is hip, cool or whatever your buddies use but about actually solving a super hard problem. That is why e.g. the climate model, new models in economics, astronomy etc are using Julia running on massive super computers. People doing work like that aren’t really hired as programmers with the demand that they know Julia.
They hiring critieria will rather be stuff like how good your math or physics knowledge is.
Why should you take the risk right now of writing enterprise software with a language that has not reached critical mass yet and may be long forgotten in 5 years, and at which point finding a dev for maintaining it will be simply impossible ?
People are not really writing enterprise software in Julia. They are writing packages used by researchers. People who currently try to find a cure for COVID19 are probably using Julia packages simulating how virus spreads. Or perhaps a Julia package for processing DNA strings when sequencing the COVID19 virus. Julia to my knowledge offers the most correct and highest performance in this area.
Nobody can gurantee the future, but as far as it is possible to predict it I will assert with 99.99% certainty that Julia is not gone in 5 years. Quite the contrary it will be much bigger.
Why can I be so certain of that? I have watched and played with lots of different programming languages for about 25 years. You get a sense of how much change happens over time. The package of technology and features Julia offers today is not something that comes along often. It is not something easily replicated. I wrote this blog post on Julia back in 2013. I have dabbled in it for over 7 years. Getting Julia to where it is now has taken a lot of time. If something else was going on offering any kind of similar technology was going on I would have heard about it. Stuff does not just pop out of thin air. All major programming languages the last 25 years I have known about many years before they went mainstream.
Nobody is going to come along an challenge the amazing featureset of Julia in a mere 5 years. And existing languages simply have too much legacy and fundamental design flaws to challenge Julia.
I know this sounds like an awful lot of hyperbole, but if you start looking into it you will find there is no other language that does high performance multiple dispatch on the market. So why does that matter? What we are seeing in the Julia community is that multiple dispatch is turning into an incredible powerful paradigm. You add LISP style macros and high performance JIT and it is hard to see how any language can touch Julia in the next 5 years on its turf.
Besides like projects like the Clima Climate model and Celeste are not going to dump Julia in 5 years to do a full rewrite in some new hipster language. Anyone trying to outdo Julia at this point will be a bit like Microsoft Zune following iPod. Sure it may have been slightly better, but it was too late. You cannot just be slightly better. You got to be a lot better for people to just drop all the work they have done.
No language is perfect, because constraints are never the same from one project to another. Use the right tool for the job, the one you’re efficient with. If you like Julia and can use it given your constraints, good.
Absolutely. I am just trying to evangelize a bit for Julia here to people using other related languages. They may discover that Julia can solve many of the problems they have had.
I mean Julia is even being used by Python developers. There are Python developers who need a high performance package, who rather than writing it in C/C++ write it in Julia instead.
I had some twitter discussion with machine learning guys using Python, who wants to use Julia primarily as their new C/C++.
I would love to see Julia used all over but, hey if this is the Trojan horse for us Julia guys to get behind the city walls, then hey why not!
PS: Sorry for the long post. If I had more time I would make it shorter ;-)