Stata is completely specialized to the exact workflow of applied linear (and maybe constrained variations of generalized linear) estimation doing things like linear regression, causal inference, event studies, etc It would be insane to do things like solve differential equations in it, much more than even R. The stata language itself is absurd and inconsistent in ways you couldn’t imagine (e.g. in practice, you only have one (unnamed) table available at any time and no other datastructures. Variable names implicitly reference columns in that table). The presenter of https://www.youtube.com/watch?v=vcFBwt1nu2U&ab_channel=NDCConferences should study Stata for inspiration.
But… it is a great case study of how an objectively awful and inconsistent language can develop an environment, workflow, network of users, and set of packages that does exactly what a group of people need. And this isn’t just a question of switching costs and complementarities from network effects: focus often dominates elegance when productivity is concerned.
Unlike using R (let alone stata) to solve a complicated differential equations, it isn’t insane to use Julia for data analysis and linear regressions. Johannes, Mathieu and many others have created excellent packages. If you and your coauthors/RAs already know Julia well - or have those tasks as just one small piece of your project - then they are a great choice. I think what economists should be careful doing, though, is suggesting to people that they consider switching over to Julia for just those tasks from their more specialized language. It isn’t where Julia’s has its main advantages and if people evaluate Julia primarily on those criteria it will lose and they may not come back to evaluate it again in those cases where it would win.
I am not sure what the myths are at this point.
Certainly the julia compiler and language still have usability quirks but it is much better and has far less latency than 2019. The development environment is better than it used to be, but not in the same ballpark as the stability of Rstudio, matlab, or even the vscode python support. Given the massive investment in those platforms that shouldn’t be a surprise.
Sadly, the package ecosystem hasn’t consistently kept pace. For some (e.g. DifferentialEquations and ApproxFun to throw out a few) they are the state-of-the-art and well maintained. But many more basic ones have stagnated and when new users find a package they often find it has bugs, holes, or they need to switch between similar packages for small variations on the same task. Python/R also have packages which slowly depreciate - but they have a core set of packages that never will. Similarly, the investment into packages in python numpy/jax/pytorch and matlab has accelerated, and the performance and usability of those has changed substantially. numba/jax/pytorch can be at least as fast as Julia in many cases (or at least until careful performance tweaking happens… all compiled languages end up the same), and a lot of algorithms are linear-algebra dominated so performance comes down to BLAS code. Performance isn’t everything, of course, but it is a dimension that Julia cannot assume it will win at.
I feel like there is a degree of complacency in the Julia community where people think that it is catching up to its competitors and it is just a question of time. In some cases there is catch up, in others Julia is already the state-of-the-art, but the other package ecosystem of its competitors are also moving targets and have huge $$$ invested in them.
So to summarize my position here, and then I will shut up, the biggest myths which impede Julia’s success might be in the Julia community itself: that (1) being the best language is enough to win; (2) that Julia’s packages are catching up to the competition in all the important cases that matter; and (3) that just because Julia is a general purpose language that can do many things, it can’t backfire to evangelize it to those currently using more specialized languages for those tasks.
As always, I am leaving off all of the wonderful things about julia. I am only pointing this out publicly because I think there are things that can be done to remedy these issues because they won’t magically disappear without something changing.
As for actionable items: besides ensuring the perspective that having the best language is neither necessary nor sufficient for success (which hopefully the success of Stata/Matlab/R is enough of a counterfactual) and that the entire workflow/environment/ecosystem is the key, I think the most important step is to ensure that Julia remains the best at its core competencies like scientific computing.
Specifically, if I could make one suggestion to anyone to address the holes here, it is to look at the SciML project: https://docs.sciml.ai/dev/ which intends to both consolidate julia scientific package documentation, fill in holes in the ecosystem and provide a common interface. There are still many holes, unit tests, examples, bugs in downstream packages, and lots of polish required, but I think it is Julia’s best hope for having an easy to navigate and dependable ecosystem.
Even better: if any economists are really interested in filling in those holes, apply for some significant open-source grants to do so. Scipy/numpy/Stan/etc. got where they are today because of investment in time and money.