In 2024, I’m coding in Julia
All the code presented in the “digital infrastructure” section of this site is written in Julia.
I first saw Julia when I was desperately looking for better ways to teach remotely during the pandemic. In December of 2019, I discovered the famous MIT course “Introduction to Computational Thinking”, and wanted to imitate how its instructors taught with Pluto notebooks, written in Julia.
By January of 2021, Julia had become my language of choice. Here are a few reasons:
- I don’t spend time trying to manage versions and environments. I’ll never get back the hours I’ve given to that with Python, Java, C, Perl, …, but I won’t lose more time installing and setting up Julia. Package management is well thought through and integral to the language.
- Julia runs everywhere, easily. Use the
juliaup
script, or download and install a single binary for Mac OS, Windows, Linux or Free BSD. Combine this with easy installation, and you can be confident that when you share your work in Julia, it will be easy to replicate reliably. - Twenty-first century features are part of the language, not add-ons: Julia has mature handling of Unicode, built-in support for unit testing, and many other features I routinely rely on.
- Great tooling makes for a productive working environment. The Julia REPL, Pluto notebooks, and Visual Studio Code (with plugin options including executing and debugging Julia, and generating publications with Quarto) all keep me focused on the problem I want to solve, not how to use the tools.
- Julia’s multiple dispatch model was a head-scratcher at first, but I really appreciate its “unreasonable effectiveness” (in Stefan Karpinski’s phrase). The composability and code reuse it encourages is an especially good match for exploratory scholarly work.
- Pluto notebooks are awesome: reactive, like Observable notebooks, but not tied in to a commercial delivery system, and written in a language that’s a pleasure to work in.
- Julia is fast.
Citation
BibTeX citation:
@online{smith2024,
author = {Smith, Neel},
title = {Why {Julia?}},
date = {2024-10-22},
url = {https://neelsmith.quarto.pub/posts/2024-10-22-why-julia/},
langid = {en}
}
For attribution, please cite this work as:
Smith, Neel. 2024. “Why Julia?” October 22, 2024. https://neelsmith.quarto.pub/posts/2024-10-22-why-julia/.