Julia (programming language)

Julia
ParadigmMulti-paradigm: multiple dispatch (primary paradigm), functional, array, procedural (imperative), structured, reflective, meta, multistaged
Designed byJeff Bezanson, Alan Edelman, Stefan Karpinski, Viral B. Shah
DeveloperJeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
First appeared2012 (2012)
Stable release
1.12.5  / 9 February 2026 (9 February 2026) and 1.10.10 (LTS)
Preview release
1.13.0-beta2 / 4 February 2026 (2026-02-04)
Typing disciplineDynamic, inferred, optional, nominative, parametric, strong
Implementation languageJulia, C, C++, LLVM, Scheme
PlatformTier 1: 64- and 32-bit Linux, Windows 10+, and 64-bit macOS; IA-32, x86-64, Apple silicon (ARM64) Macs; Nvidia GPUs/CUDA 11.0+ (on Linux; tier 2 for Windows)

Tier 2: 64-bit FreeBSD 13.4+ (for x86-64), 64-bit Arm for Windows 11 (Prism) and Linux; Apple GPUs/Metal on macOS 13+, Intel GPUs/OneAPI 6.2+ and Nvidia GPUs (on Windows)

Tier 3: 64-bit RISC-V, 64-bit musl (e.g. Alpine Linux); and AMD GPUs/ROCm 5.3+.
OSLinux, macOS, Windows 10+ and FreeBSD
LicenseMIT
Filename extensions.jl
WebsiteJuliaLang.org
Influenced by

Julia is a dynamic general-purpose programming language. As a high-level language, distinctive aspects of Julia's design include a type system with parametric polymorphism, the use of multiple dispatch as a core programming paradigm, just-in-time compilation and a parallel garbage collection implementation. Notably, Julia does not support classes with encapsulated methods but instead relies on the types of all of a function's arguments to determine which method will be called.

By default, Julia is run similarly to scripting languages, using its runtime, and allows for interactions, but Julia programs can also be compiled to small binary standalone executables (or to small libraries for e.g. Python), with e.g. the JuliaC.jl compiler.

Julia programs can reuse libraries from other languages, and vice versa. Julia has interoperability with C, C++, Fortran, Rust, Python, and R. Additionally, some Julia packages have bindings to be used from Python and R as libraries.

Julia is supported by programmer tools like IDEs (see below) and by notebooks like Pluto.jl, Jupyter, and since 2025, Google Colab officially supports Julia natively.

Julia is sometimes used in embedded systems (e.g. has been used in a satellite in space on a Raspberry Pi Compute Module 4; 64-bit Pis work best with Julia, and Julia is supported in Raspbian).