# Why Julia is very often related to a data science / economics language only?

**URL:** <https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695>\
**Category:** Offtopic\
**Created:** [April 19, 2022, 3:17pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695 "2022-04-19T15:17:07Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![JackStrauss](https://avatars.discourse-cdn.com/v4/letter/j/f14d63/32.png) [@JackStrauss](https://discourse.julialang.org/u/JackStrauss)\
**Post date:** [April 21, 2022, 5:50pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/23 "2022-04-21T17:50:26Z")

</div>

Julia is not that popular in economics, but there are just so many of us economists that econ Julia users become visible.

Matlab/Stata/Fortran, followed by R and then Python are much much more common in econ.

Julia is getting a lot of traction by those who need to solve complicated models (quantecon influence)

But having used julia and not succeeded in getting others to use it, I think these 4 reasons explain it

1. The documentation is bad. Really bad. This is one area where Matlab shines
2. A lot of libraries are immature/fragile when sold on the github pages as complete. This becomes important in data handling compared to Python and stats routines compared to R
3. Matlab and R have much better editing environments (Rstudio is fantastic)
4. Fear that code written today will not run in 4 years when the last journal revision demands it

just my 2 cents…

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [April 21, 2022, 5:56pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/24 "2022-04-21T17:56:53Z")

</div>

> [@Ronis\_BR](#):
>
> I, myself, always saw Julia as a general-purpose language.

Well, that was also my impression from early on, version 0.4 era, but made for/emphasizing (until recently) “technical computing” didn’t help. I must admit, while I’ve learned a lot from the community here (application to science), it can be intimidating (making you think only for the original target audience, and you not measuring up to people here), even you with your satellite/AOCS code not helping for the perception of the language/ecosystem as specialized.\*

I’m pretty optimistic for the future of Julia, including for general purpose, with Julia taught all over, not just in Brazil as you know, but south of the southernmost capital in the world, and northern of the northernmost.

I’ve been advocating Julia since I learned about the language, and even pushing for it as the first language to my former professors. I think that would change things quickly (and I think the book on Julia by 15-year old Tanmay will help, even for more high schools teaching Julia), so far Julia is taught mostly in engineering departments, not just for linear algebra.

I know people use Julia in Trondheim, Norway in the Department of Engineering Cybernetics, i.e. students there, or the two I know learning robotics there, but actually in the algorithmics course (I believe taught by or shared with the CompSci department).

[I’m going to make a PR for the [Julialang.org](http://Julialang.org) website for that course/University.]

I even now noticed from the list that Julia is already, or at least was, taught in one high school (also Norway), and I looked it up, it very near the north pole, way more north of all of Iceland where I live, let alone our Reykjavík, the world’s most northernmost capital, which happens to be located in the south of our country.

Hadsel High School, Stokmarknes, Nordland, Norway  
AnsattOversikt, [REA3034] Programmering og modellering (Programming and modeling with Julia and Snap), 2018 / 19 (High school lecturer Olav A Marschall, M.sc. Computer Science)

I’m not sure, but the above seems to refer to (so not used together with Julia):

> **[Snap! (programming language)](https://en.wikipedia.org/wiki/Snap!_(programming_language))**
>
> Snap! (formerly Build Your Own Blocks) is a free block-based educational graphical programming language and online community. Snap allows students to explore, create, and remix interactive animations, games, stories, and more, while learning about mathematical and computational ideas. The Snap! editor, and programs created in it, are web applications that run in the browser without requiring installation.\[Note 2\] It is built on top of Morphic.js, a Morphic GUI, written by Jens Mönig as 'middle In...

Those two classes are a step in the right direction, while not obvious to all (those) students, e.g. those two I know that learned Python first, and both him and her had not programmed before before the University. I’ve seen in another Julia thread there’s some (understandable) opposition by students to have to learn yet another language…

> [@lawless-m](#):
>
> the lack of UI is an impediment. Not one that concerns me but I can build a Neural Network in Matlab by dragging boxes around.

@lawless-m FYI:

> [@\[ANN\] EasyML.jl v0.2.0 - a foolproof way of doing ML with GUI elements](https://discourse.julialang.org/t/ann-easyml-jl-v0-2-0-a-foolproof-way-of-doing-ml-with-gui-elements/65936):
>
> A new version of [EasyML.jl](https://github.com/OML-NPA/EasyML.jl) has been released. With our package it is possible to: Design a neural network Train a neural network Validate a neural network Apply a neural network to new data Classification, regression and segmentation on images are currently fully supported. Release highlights Modular design (Design, DataPreparation, Training, Validation and Application modules) allowing for easier and asymmetric developmen…

`*` That’s also an example of a bit intimidating ecosystem/hobby project:

> [@anon28281882](#):
>
> hobby project. Its about “Neural network analysis of uncertainty and sensitivity of deterministic and probabilistic models in conjunction with quantum computing approaches to shortest path optimization algorithms based on geometric algebra”.

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [April 21, 2022, 5:59pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/25 "2022-04-21T17:59:26Z")

</div>

> [@JackStrauss](#):
>
> Matlab and R have much better editing environments

Having used Matlab daily for over 20 years, I definitely disagree with this. Haven’t tried R, though.

> [@JackStrauss](#):
>
> Fear that code written today will not run in 4 years when the last journal revision demands it

Julia is perhaps _the_ safest bet in this regard. You can create completely reproducible environments, which is not a thing in Matlab. Matlab is also closed source and expensive, which makes this even harder.

---

<div class="post-metadata">

**Author:** ![JackStrauss](https://avatars.discourse-cdn.com/v4/letter/j/f14d63/32.png) [@JackStrauss](https://discourse.julialang.org/u/JackStrauss)\
**Post date:** [April 21, 2022, 6:09pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/26 "2022-04-21T18:09:43Z")

</div>

@DNF  
I agree that the Matlab editing environment is far from perfect, but when it comes to a new user of any language, like almost all econ PhD students, its better than an editor and a terminal, needed by Julia (which is what I use)

All unis I know have Matlab site licenses, on the standard uni windows image and agreements so all students can get it. Matlab code from 5, 10, 20 years will run today. Will Julia code? Julia code from 5 years ago will not run today.

That said, I dislike Matlab intensely and much prefer Julia.

---

<div class="post-metadata">

**Author:** ![lmiq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lmiq/32/18314_2.png) [@lmiq](https://discourse.julialang.org/u/lmiq)\
**Post date:** [April 21, 2022, 6:12pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/27 "2022-04-21T18:12:20Z")

</div>

At the end, it is the performance of Julia that matters, and thus the people getting into it are those who need performance some way or another.

I mean, for stuff like simple scripts, calling libraries for well defined operations, and plotting, Julia is not necessarily better than Python, or R. For people, and probably this is the majority of people, that _use_ Python or R like that, possible Julia advantages are subjective (the syntax maybe, I like it better), and there are some clear disadvantages like the TTFP. Maybe the package manager of Julia is much better.

These users will use Julia when packages in the ecosystem are important enough so that they feel the need to learn a new tool to use these packages. This is package-driven. Things like JuMP and DifferentialEquations, among others, are the driving force behind this move. A quick look to the impact of these packages shows that their adoption is very significant, in many fields (at least from an academic perspective).

For the more programmer-oriented use, Julia is a great alternative to lower level languages, it is much more fun to develop (particularly performant code) in Julia than in the alternatives. I bet that it is by attracting the package developers that Julia will, progressively, occupy the user space.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [April 21, 2022, 6:13pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/28 "2022-04-21T18:13:53Z")

</div>

> [@JackStrauss](#):
>
> Matlab code from 5, 10, 20 years will run today.

False, in at least 2021 they did breaking changes that broke a code we had. Here’s the proof:

> [@Problem simulating Matlab ODE15s in Julia](https://discourse.julialang.org/t/problem-simulating-matlab-ode15s-in-julia/79687):
>
> Here is the code I have, using Pkg using PyCall using CSV; using DataFrames; using Dierckx;using DifferentialEquations;using LSODA;using MATLABDiffEq; using ParameterizedFunctions;using IfElse; p = [1.35e-2 #k1 6.33e-1 #k2 5.00e-5 #k3 1.00e-3 #k4 3.80e-3 #k5 5.82e-1 #k6 2.20e-2 #k7 4.71 #k8 1.08e-2 #k9 #2.6 REMOVED 1.35 #sigma /index 10 0.63 #Km /index 11 5.0 #Gb /index 12 8.58 #Ib /index 13] input = […

The last time they broke it was 2020. And 2018. So no, this is not just false but it’s very false. In that time span, we had made a lot more changes to the code being generated because of MATLAB changes than changes to the code generator (because of Julia changes). Making a code work with multiple versions of MATLAB is really hard, and if you check out Git history you’ll see this progression along with documented (and undocumented) things which changed in the language. Scripts written in one version of MATLAB will not just work in another.

---

<div class="post-metadata">

**Author:** ![JackStrauss](https://avatars.discourse-cdn.com/v4/letter/j/f14d63/32.png) [@JackStrauss](https://discourse.julialang.org/u/JackStrauss)\
**Post date:** [April 21, 2022, 6:18pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/29 "2022-04-21T18:18:11Z")

</div>

@lmiq  
I don’t quite agree that performance is what matters. When I use R and need performance I just use C++. The attraction to me of Julia is a language that is modern and pure, unlike R that is 40 years old and Python/numpy 30 years old and coexist uneasily. For me, what I like is that Julia is a better language.

---

<div class="post-metadata">

**Author:** ![JackStrauss](https://avatars.discourse-cdn.com/v4/letter/j/f14d63/32.png) [@JackStrauss](https://discourse.julialang.org/u/JackStrauss)\
**Post date:** [April 21, 2022, 6:21pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/30 "2022-04-21T18:21:20Z")

</div>

@ChrisRackauckas  
Fair enough. I have a 20 year old bit of matlab code written by my advisor that I ran last week, and it ran with no errors. But yes, that is a one sample observation.

---

<div class="post-metadata">

**Author:** ![lmiq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lmiq/32/18314_2.png) [@lmiq](https://discourse.julialang.org/u/lmiq)\
**Post date:** [April 21, 2022, 6:24pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/31 "2022-04-21T18:24:13Z")

</div>

> [@JackStrauss](#):
>
> When I use R and need performance I just use C++. The attraction to me of Julia is a language that is modern and pure

Well, yes, that is what I tried to imply, that programming in Julia is more pleasant than in C++, and thus package developers can be tempted to start implementing stuff in Julia. For the users of the packages, they will use them in whatever language the package is available. And (I think it is obvious and actually expected), package users are a much larger group of people than package developers.

---

<div class="post-metadata">

**Author:** ![JackStrauss](https://avatars.discourse-cdn.com/v4/letter/j/f14d63/32.png) [@JackStrauss](https://discourse.julialang.org/u/JackStrauss)\
**Post date:** [April 21, 2022, 6:30pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/32 "2022-04-21T18:30:09Z")

</div>

@imiq

Could not agree more. My experience in econ is that package users will not use Julia (nor should they) but those who code (and that are a much bigger group than package developers) should consider Julia.

---

<div class="post-metadata">

**Author:** ![cosmia](https://avatars.discourse-cdn.com/v4/letter/c/9de0a6/32.png) [@cosmia](https://discourse.julialang.org/u/cosmia)\
**Post date:** [April 21, 2022, 6:34pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/33 "2022-04-21T18:34:32Z")

</div>

In economics, the largest use case is of people that are switching from Matlab, or grad students that don’t want to learn Fortran (e.g., me). Therefore, we use it exactly to solve complex systems (that is, solving complicated economic models).

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [April 21, 2022, 7:07pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/34 "2022-04-21T19:07:46Z")

</div>

> [@JackStrauss](#):
>
> All unis I know have Matlab site licenses, on the standard uni windows image and agreements so all students can get it.

But that’s no good after you’ve left university.

> [@JackStrauss](#):
>
> Matlab code from 5, 10, 20 years will run today. Will Julia code? Julia code from 5 years ago will not run today.

The situation is much better for Julia than for Matlab. Matlab makes breaking changes every new release (carefully, though). But old code is at high risk, and you will have a hard time getting old versions, especially if you don’t pay.

Julia code from 5 years ago runs today, and will run in perpetuity, free of charge.

---

<div class="post-metadata">

**Author:** ![AMJ](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amj/32/214096_2.png) [@AMJ](https://discourse.julialang.org/u/AMJ)\
**Post date:** [April 21, 2022, 7:13pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/35 "2022-04-21T19:13:12Z")

</div>

Performance for what I do and people who are in the same boat, really matters and it was quite pivotal for me choosing Julia. We run stat-arb models on markets and being able to just model a sketch pretty fast to see it makes sense or not and then scale the performance from there with a simple checklist (as said in the performance tips documentation) is an invaluable gift , specially for those of us who do not have a CS background. Otherwise I should have someone else implement it in C++/Rust whom usually does not have a background in math/stats which makes communicating a tough task.

---

<div class="post-metadata">

**Author:** ![JackStrauss](https://avatars.discourse-cdn.com/v4/letter/j/f14d63/32.png) [@JackStrauss](https://discourse.julialang.org/u/JackStrauss)\
**Post date:** [April 21, 2022, 7:14pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/36 "2022-04-21T19:14:23Z")

</div>

> [@DNF](#):
>
> Julia code from 5 years ago runs today, and will run in perpetuity, free of charge.

Not quite, 0.5.2 was the latest release 5 years ago, and that code will not run today,

---

<div class="post-metadata">

**Author:** ![lmiq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lmiq/32/18314_2.png) [@lmiq](https://discourse.julialang.org/u/lmiq)\
**Post date:** [April 21, 2022, 7:21pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/37 "2022-04-21T19:21:35Z")

</div>

I think he meant that you can still download, and will always be able to, any version of Julia, and run that code: [Julia Downloads (Old releases)](https://julialang.org/downloads/oldreleases/#v105_sep_9_2019)

That is not necessarily true for Matlab or other proprietary tools.

---

<div class="post-metadata">

**Author:** ![amrods](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amrods/32/2543_2.png) [@amrods](https://discourse.julialang.org/u/amrods)\
**Post date:** [April 21, 2022, 7:28pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/38 "2022-04-21T19:28:07Z")

</div>

that, and also probably that going forward, you can go as far back as the invention of the time machine ie Pkg3.

---

<div class="post-metadata">

**Author:** ![GunnarFarneback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gunnarfarneback/32/1827_2.png) [@GunnarFarneback](https://discourse.julialang.org/u/GunnarFarneback)\
**Post date:** [April 21, 2022, 7:50pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/39 "2022-04-21T19:50:48Z")

</div>

> [@DNF](#):
>
> Julia code from 5 years ago runs today, and will run in perpetuity, free of charge.

I wouldn’t oversell it. Sure, you can download a 5 year old Julia but I wouldn’t be so sure about packages and binary dependencies from that time. The situation improved considerably with Julia 1.0 and even more with binary dependencies as artifacts from Julia 1.3. I’m very confident about being able to run my Julia code of today in 5 and 10 years, not so much my code from 5 and 10 years ago.

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [April 21, 2022, 8:03pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/40 "2022-04-21T20:03:16Z")

</div>

How do you think that compares to old Matlab code with user contributed libraries and binary dependencies?

I think this speaks to how high you set the bar for reproducibility in Julia.

---

<div class="post-metadata">

**Author:** ![GunnarFarneback](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gunnarfarneback/32/1827_2.png) [@GunnarFarneback](https://discourse.julialang.org/u/GunnarFarneback)\
**Post date:** [April 21, 2022, 8:12pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/41 "2022-04-21T20:12:30Z")

</div>

I’m entirely confident that I can’t run any of my Matlab code from any point in time since I no longer have access to a license. (Otherwise the biggest difference is that I’ve never used any user contributed library in Matlab whereas most of my Julia code depends on such.)

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [April 21, 2022, 8:47pm UTC](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695/42 "2022-04-21T20:47:44Z")

</div>

> [@JackStrauss](#):
>
> Matlab code from 5, 10, 20 years will run today.

Sorry, definitely NOT the case. My code from 6-7 years ago no longer runs. Moderate changes would be required. Code from 15 years ago does not have a chance: the language and the graphics in particular would require major effort to make it work. Matlab written today is a bloody mess just a few years from now.

[Previous page](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695.md?page=1)

[Next page](https://discourse.julialang.org/t/why-julia-is-very-often-related-to-a-data-science-economics-language-only/79695.md?page=3)
