---
engine: julia
---

# What is Julia? {.unnumbered}


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

A small code example:

```{julia}
#| error: false
#| echo: false
#| output: false

using CairoMakie
CairoMakie.activate!(type = "svg")
set_theme!(size=(1600, 360))
```

```{julia}
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 {.unnumbered}

-   2009 Start of development at the *Computer Science and Artificial
    Intelligence Laboratory* of MIT
-   2012 first release v0.1
-   2018 Version v1.0
-   current: v1.11.4 from March 10, 2025

For the first release in 2012, the creators of Julia summarized their goals and motivation in a blog post [Why we created Julia](https://julialang.org/blog/2012/02/why-we-created-julia) interestingly.

For a picture of *Stefan Karpinski, Viral Shah, Jeff
Bezanson*, and *Alan Edelman*, please click here: <https://news.mit.edu/2018/julia-language-co-creators-win-james-wilkinson-prize-numerical-software-1226>.



:::{.content-hidden unless-format="xxx"}

Short summary:

> We want a language that is
>
> - open source
> - with the speed of C
> - obvious, familiar mathematical notation like Matlab
> - as usable for general programming as Python
> - as easy for statistics as R
> - as natural for string processing as Perl
> - as powerful for linear algebra as Matlab
> - as good at gluing programs together as the shell
> - dirt simple to learn, yet keeps the most serious hackers happy



Formal syntax
:  
- Algorithmic thinking
- Intuition for the efficiency and complexity of algorithms
- Special features of computer arithmetic, particularly floating-point numbers
- The "ecosystem" of the language
- The art of debugging.

:::


## Why Julia? {.unnumbered}

:::{.callout-tip .titlenormal icon=false}

## from [The fast track to Julia](https://cheatsheet.juliadocs.org/)

"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](https://github.com/JuliaLang/julia)
- 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

*a JIT compiler*
: - interactive work possible: `read-eval-print loop (REPL)` with 
- just-in-time (JIT) compilation
- thereby runtimes comparable to static languages like C/C++, Fortran or Rust 

*a built-in package manager*
: - huge *ecosystem* of easily installable packages, e.g.
        - [Mathematical Optimization](https://jump.dev/)
        - [Machine Learning](https://fluxml.ai/)
        - [Data Visualization](https://docs.makie.org/stable/)
        - [Differential Equations](https://docs.sciml.ai/DiffEqDocs/stable/)
        - [Mathematical Modeling](https://sciml.ai/)





## A Small Selection of Online Materials on Julia {.unnumbered}

- [Documentation](https://docs.julialang.org/en/v1/) - the official documentation
- [Cheat Sheet](https://cheatsheet.juliadocs.org/) - "a quick & dirty overview"
- [Introducing Julia](https://en.wikibooks.org/wiki/Introducing_Julia)-- a WikiBook
- [The Julia Express](http://bogumilkaminski.pl/files/julia_express.pdf) - short version, Julia in 16 pages
- [Think Julia](https://benlauwens.github.io/ThinkJulia.jl/latest/book.html) - introduction to programming with Julia as a language
- The [Julia Forum](https://discourse.julialang.org/)
- For the eyes: [Examples for the Julia graphics package `Makie`](https://beautiful.makie.org/)
