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

To sum up my part, I’d like to add that even though I think that in general the focus mentioned in the topic of this thread is fully in line with the strategy outlined in the official Series A press release issued by Julia Computing in July '21, I do believe that the topic of “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” could potentially directly address (strengthen) such areas of interest as general-purpose language and complex system simulations (analysis) that were kindly mentioned by @Ronis_BR in his initial post.

As I am finding proposed topic as a complicated one, I’d like to underline that I would welcome any potential help, particularly in such areas as artificial intelligence, quantum computing and satellite technologies as well as in additional specific domains such as sensitivity and uncertainty analysis, shortest path optimization algorithms as well as in geometric algebra.

As for the business side kindly mentioned by @jacobusmmsmit [:blush:], as for now, I cannot promise much, however, please be informed that I am seriously taking into consideration involvement of potential advisors with top level national and international experience in such fields as information technology, strategic management, finance and legal as well as a stock option plan particularly designed for (early) team members being more generous that is usually a practice.

As I mentioned before, in case of any interest, I would be happy to provide additional information as well as to try my best to answer any potential questions with a contact carried out ideally by a direct message and later potentially by an e-mail. Please be informed that my current focus is to gather preliminary express of interest and to discuss general topics in a way that is not breaking any intellectual property rules. Last but not least, I’d like to add that currently I see this project as a hobby one that can be carried out on a side (in a free / spare time) with some additional potential in the future.

How to run SQL … AWS RDP using @Threads

This actually seems like good material for a series of blogposts — there’s SQL, multithreading, and caching!

5 Likes

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…

7 Likes

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 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):

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 FYI:

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

1 Like

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

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.

9 Likes

@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.

1 Like

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.

4 Likes

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

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.

8 Likes

@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.

2 Likes

@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.

2 Likes

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.

@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.

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).

2 Likes

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

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.

4 Likes

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.

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

1 Like

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)

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

3 Likes

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

1 Like

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.

3 Likes

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.

1 Like