What steps should the Julia community take to bring Julia to the next level of popularity?

The main value of a Julia edition of Numerical Recipes would not be the code, but the recognition of Julia as the new language for scientific computing.

Numerical Recipes has a pretty bad reputation and no one seriously uses it for both the licensing reasons and because the algorithms in the book are generally not a good idea. My favorite source on NR issues is:

https://www.uwyo.edu/buerkle/misc/wnotnr.html

But of course thereā€™s hundreds out there. Thatā€™s why one of the first things you learn in a grad numerical analysis course is to never listen to NR.

Wit that said, Toby Driscollā€™s book is already a much better starting point and Iā€™d recommend it for most people trying to learn the basics of numerical methods

https://tobydriscoll.net/fnc-julia/frontmatter.html

Algorithms from the book is also pretty fine, with the same caveat as Numerical Recipes that you wouldnā€™t use most of these in practice but instead use it as a starting point to go read package code:

https://epubs.siam.org/doi/book/10.1137/1.9781611976175

Algorithms with Julia similarly hits the right general methods, though is missing the package tricks (but tends to have some useful learnable notes)

With all of the caveats of Numerical Recipes and the existence of these books, I donā€™t see how a translation of NR would be helpful. What would be helpful is giving these books some more visibility since I rarely see them discussed. They definitely do not get the light of day that they deserve.

33 Likes

Thanks for the recommendations! It looks like ā€œAlgorithms with Juliaā€ is not listed on the Julia-lang website.

Started to read ā€œAlgorithms with JULIAā€. It was available in our library.

A very nice book! Already learned some new math AND some more about Julia programming, even though I do Julia programming for 7 yearsā€¦

5 Likes

I have never understood the point of the Numerical Recipes in X books.

For the user who does not care about the details, having the code in a (well-tested, mature, maintained) library, available with some permissive license, is much better.

For the reader who wants to understand these algorithms, implementation details in a particular language are mostly a distraction.

Also, I think that the Julia ecosystem at this point is well beyond having to crave this kind of recognition. I donā€™t understand why people act like it is 2014 and they have to constantly defend the choice of working in this weird experimental language called Julia.

Julia is now a mature language which is eminently usable for scientific computation, and at the same time it is getting amazing improvements to the core language and great new packages on a regular basis. I seriously doubt that there is a ā€œnext level of popularityā€ in the sense that there is some magical intervention that would lead to a sudden, significant jump in the number of users or package authors. From this point on these will expand organically and continuously.

12 Likes

I agree with all the points you made.

I think @xiaoxiā€™s idea was not to legitimate Julia but a marketing idea to reach an additional audience.

When I begin to program numerical simulations as a physics student (30 years from now), Numerical Recipes book was available on nearly every researcher desks (physicists not mathematicians).

I have no idea if this book is still widely used, but if it is, having a Julia version would bring Julia to the attention of a lot of scientists developing simulation/computation tools.

Anyway, considering the license problem, a Julia version of N.R. does not seems to be a good idea.

Some posts like yours lead me to think that the Julia ecosystem is more mature and widespread than I initially thought. But, Iā€™m not sure if people outside the Julia community or not very involved in the Julia ecosystem have the same biases as I had.

Iā€™m afraid that we will never know if members of the Python community had the same impression in the early 2000.

In 2007, Dropbox launched, and within a year, it had received funding, quickly becoming one of the biggest projects written entirely in Python. By this time, many start-ups were using Python for various parts of their application development, but it had been slow to catch on as the language of choice for large-scale enterprises. The success of the Dropbox project changed that, propelling many technology managers in that world to consider Python more seriously.

2 Likes

I think that much of Matlab was originally a translation of the LINPACK and EISPACK algorithms to C. At the time, being able to use a REPL to prototype your analysis code that used the Netlib algorithms was new and useful.

I am an anti-advocate for Matlab, mostly because it is expensive and proprietary. If I want to publish on algorithms, I want to be able to see the source of everything. Matlab was not originally like this - Cleve Moller gave it away in the beginning.

3 Likes

I think this is both a great idea and an illustration of why getting substantial financial support from companies is probably the only thing that could move the language forward. I personally wouldā€™ve loved working on this ~a year ago (before I started moving more into ML). Stata has a lot of nice GUI tools for statistical analysis, which still create reproducible code as output. But Stata is closed-source, which is a pain, and it encourages bad statistical habits by putting outdated or usually-inappropriate methods front-and-center. (The same way that Julia often has performance footguns, Stata is riddled with ā€œstatisticsā€ footguns that are widely accepted throughout entire scientific fields because of these design problems.)

But working on that wouldā€™ve required someone to pay me to work on this, and thereā€™s not really anybody paying people to do work in Julia. :person_shrugging:

2 Likes

Thatā€™s exactly what weā€™re doing here at JuliaHub ā€” and I talk to folks getting paid to use Julia every day. Beyond the Julia-based startups, there is a growing snowball of interest from household-name level companies.

14 Likes

Has such good news become a blog post on julia-lang?

2 Likes

Need to add Neuroblox to the list really soon too :wink:

3 Likes

Last week there was some workshops on scientific computing in Rust. While I believe that Julia is more suited for scientific computating, I find it fascinating how the Rust community is trying to expand the fields that use Rust. Meanwhile, almost all the talks at JuliaCon are heavily related to scientific computing reinforcing the idea that Julia is only good for scientific computing.

2 Likes

Stata has a lot of nice GUI tools for statistical analysis, which still create reproducible code as output.

Do people actually use this? If I was on a project and someone had created code via a GUI code I would definitely have them re-do it in more readable code and encourage them to be writing scripts from the start. I wonder if GUI tools are overrated in driving adoption.

Just to add my 2 cents to this conversation, but Iā€™ve been using Stata and R for a recent project.

  1. Stata is just so good at data cleaning. Itā€™s easy to get a new RA on board with a data cleaning workflow and make them productive.
  2. We use the excellent sf package in R, along with the geo-data ecosystem at large (raster etc.) to do geo-spatial analaysis.

I could see myself using Julia for everything if these two ecosystems in Julia were on par. DataFramesMeta.jl is great but itā€™s still not Stata yet. I am very productive with sf and the cost of switching to the geo-data ecosystem in Julia is still too high, even if it were as good as sf (which it might be, Iā€™m not sure).

Anyways what Iā€™m saying is I think things are moving in the right direction. It just takes time to build a critical mass of good packages. I wish I knew the history of sf in R and who developed it.

4 Likes

Just a shot in the dark: Simple Features for R: St... The R Journal

The fact that the author of sf is a geosciences professor is a good sign for Julia given itā€™s large take-up in academia.

3 Likes

A really nice place where I would like to see the Python glue code replaced is in Code Aster, an open source FEA package. It is developed as Fortran modules strung together with Python. Since it is required Code for any analysis done by the French electrical generating system, it has a good user base, and is reliable and robust.

So if anyone is going to the Code Aster user conferenceā€¦ It took a while for them to switch from Python 2 to Python 3 so I donā€™t expect them to switch, but it would be interesting.

1 Like

I have been working at EDF lab (where Code Aster comes from) for 20 years and I am pretty convinced that it should be rewritten totally with Julia. IMHO the huge mechanical tests sets and physical laws could be automatically translated hence preserving the essential part of Code Aster.

4 Likes

@xiaoxi, would you mind if we edited the title to remove a reference to ā€œJulia 2.0ā€? I see in another thread references to Julia 2.0 are creating confusion. The concensus here is that much could be done before a breaking 2.0 release and that such a release is not currently planned.

2 Likes

No problem.

6 Likes