Julia is Ranked 35th on the TIOBE Index

Yet again, it sounds like the Julia website could greatly benefit from having a generic open source / free software tutorial video, which explains how to work with git and how to best interact with the rest of the julia community.

Most new users at this point will not have the necessary background, and their transition would be greatly accelerated by having this standard tutorial on the main julia homepage.

This would help eliminate some of the redundancy on the discourse and assist when introducing collaborators to julia workflow.

6 Likes

This 100%. Even having persistent discussions about changes to the text and results of a paper is enormously helpful. It can ensure PIs are on the same page with a change and that results aren’t jumping around more than they ought to with small refinements. A selling point of Julia could be that this kind of way more effective collaboration is easy and built into the language.

1 Like

Sorry if this a bit off topic, but I’d be really interested in what your tests look like for these kinds of models. Like, I have a really good sense of how to write unit tests for packages that are mostly tooling, but I am often a little lost on what they should look like when most of the code is written for an iterative method.

1 Like

The code will (of course) be public when the paper is published, but think of eg the following:

  1. equilibrium conditions hold (in a numerically approximate sense) for the numerically obtained solution,

  2. for value functions, you can simulate paths and get discounted present value, and compare,

  3. transition matrices (for simulating a discretized model) sum to 1 (amazing what that uncovers :wink:), also compare to toy 2x2 versions,

  4. analytically calculated moments are roughly equal to simulated versions (when we have both).

  5. a bunch of @inferred peppered through the tests (we want speed, changes should keep the compiler happy).

It is not really that different from any other kind of code. Initially, it is kind of hard to think of invariants you want to maintain and toy versions of your model to solve, but it becomes kind of a habit. Also, simplified versions of the model are super-useful for presentations.

2 Likes

While I agree that git or other version control is the long-term way to go for scientific research, it’s a pretty high barrier for somebody who’s new to programming and might feel overwhelmed by having to learn programming, a new language, and git. Even if they know (some) programming, needing to learn git gives Julia a much higher learning curve than Python or Matlab (which are its main competitors if they’re a non-CS trained engineer like me).

I also don’t think learning git is strictly necessary to be able to use Julia for throwaway scripts. It shouldn’t be too hard to teach people a simple Revise-based workflow in which they open a REPL, import packages needed by their script directly in the REPL session, includet their script, then just call the __main__() function from their script, edit as needed, save, call it again and repeat as necessary. It may take them 10 minutes to get used to but it will quickly feel as easy as writing a script in Python. Then, after they’ve discovered how nice Julia is, it will be easier to show them “My actual workflow looks like this, because I use git and unit tests. Unit tests help you prove that small a piece of code does what you think it does, and git helps you keep track of changes over time.”

Then again, these are just my thoughts based on how I like to learn new things, and I actually haven’t yet needed to teach anybody else to use Julia.

I think learning Julia + git (CI is kind of thrown in, it’s more of a habit :wink:) is for someone who knows how to program already (in any language), and is somewhat computer-savvy (power user level, can install programs, interpret an error message, follow a tutorial).

I don’t think anyone would suggest that someone who is learning programming as something new start with all this. But for those people, I may not recommend Julia anyway — it is possible to learn as a first programming language, but a lot of the details just won’t make sense for a while.

For everyone who feels better when Julia bubbles to the top of the TIOBE index:

As of September 2020, Julia is rank 28 with a rating of 0.55%, above Scala, Scheme, Lisp, Fortran, Haskell and Clojure and right below D.

13 Likes

December 2020 update:

Julia surpassed D, and sits now at 26th place

13 Likes

Top20 for 2021 is quite realistic I guess and I assume that it will be a self-enhancing thing :slight_smile:

11 Likes

Julia was ranked 6th in “the most loved languages” in this year’s stack overflow developer’s survey. Just mentioning as I didn’t see anyone mentioning this here or elsewhere. Julia was ranked after Rust, TypeScript, Python, Kotlin and Go.

8 Likes