Julia for Numerical Analysis

Introduction to Scientific Computing

Author

Meik Hellmund

Updated

March 12, 2026

What is Julia?

Julia is a relatively new, modern programming language designed for scientific computing.

A code example:

using CairoMakie
a = [3, 7, 5, 3]
b = [1, 3, 7, 4]
δ = π/2
t = LinRange(-π, π, 300)
f = Figure(size=(1600, 360))
for i in 1:4
    x = sin.( a[i] .* t .+ δ )
    y = sin.( b[i] .* t )
    lines(f[1, i], x, y, axis=(; aspect = 1))
end
f

History

  • 2009: Development started at MIT’s Computer Science and Artificial Intelligence Laboratory
  • 2012: First release (v0.1)
  • 2018: Version 1.0 released
  • February 2026: Version 1.12.5

In their 2012 inaugural blog post Why we created Julia, the developers provide an insightful and humorous overview of their objectives and motivations for creating Julia.

A photo of Stefan Karpinski, Viral Shah, Jeff Bezanson, and Alan Edelman can be found here: https://news.mit.edu/2018/julia-language-co-creators-win-james-wilkinson-prize-numerical-software-1226.

Why Julia?

“Julia is an open-source, multi-platform, high-level, high-performance programming language for technical computing.

Julia has an LLVM-based JIT compiler that allows it to match the performance of languages such as C and FORTRAN without the hassle of low-level code. Because the code is compiled on the fly you can run (bits of) code in a shell or REPL, which is part of the recommended workflow.

Julia is dynamically typed, provides multiple dispatch, and is designed for parallelism and distributed computation.

Julia has a built-in package manager.”

open source

  • open development on GitHub
  • implementations for all common operating systems

high-performance programming language for technical computing

  • many functions for scientific computing built-in
  • (intentional) similarity to Python, R and Matlab
  • complex calculations in a few lines
  • simple interface to other languages like C or Python

JIT compilation

  • supports interactive workflow via the read-eval-print loop (REPL)
  • just-in-time (JIT) compilation
  • resulting in runtimes comparable to static languages like C/C++, Fortran, or Rust

a built-in package manager