Julia Intro for QNumerics Summer School

What is Julia?

Julia is a high-level, general-purpose programming language that is well suited for numerics, computational science, and scientific computing.

Julia Homepage
Julia Homepage

Why Julia?

Solve the 2-language Problem

Who is Julia for?
Who is Julia for?

The scientific, artificial intelligence, and research computing world has a two language problem

  1. Most scientists use "simpler" but slow languages like Python or Matlab
  2. As problems get bigger, we must turn to systems languages like C, C++, or Rust

The end result?

Solve the Expression Problem

"To which degree can your application be structured in such a way that both:

(1)     the data model
(2)     and the set of virtual operations over it

can be extended without the need to modify existing code, without the need for code repetition and without runtime type errors."
-- Mads Torgersen, "The Expression Problem Revisited"

The expression effectively states the difficulty of allowing:

  1. New types to be added to existing operations
  2. and new operations added to existing types

without changing code.

Functional Languages (Ocaml, Haskell, F#) Class-based Object Oriented Languages (C++, Java)
New types and existing operations HARD EASY
New operations to existing types EASY HARD

Julia solves this problem with multiple dispatch

More on this later, but multiple dispatch allows anyone to add new functions to existing types and new types to existing functions with no interaction!

Complexity \(\ne\) Speed:

Computer Language Benchmark Game
Computer Language Benchmark Game

Package Management

Package management in many languages like Python or even worse C / C++ hampers collaboration, productivity, and itself contributes to the expression problem!

Modern package managers like those in Julia (Pkg.jl) and Rust (Cargo) give:

  1. Ease of access without struggle
  2. Clear versioning
  3. Trivial collaboration
  4. And most importantly reproducibility

Julia vs. Other Languages

Other than plain ol' C I don't know too much about other languages

Python

C++

Other Resources

CC BY-SA 4.0 Raye Skye Kimmerer. Last modified: July 14, 2025.
Website built with Franklin.jl and the Julia programming language.