Julia (programming language)
| Julia | |
|---|---|
| Paradigm | Multi-paradigm: multiple dispatch (primary paradigm), functional, array, procedural (imperative), structured, reflective, meta, multistaged |
| Designed by | Jeff Bezanson, Alan Edelman, Stefan Karpinski, Viral B. Shah |
| Developer | Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors |
| First appeared | 2012 |
| Stable release | 1.12.5
/ 9 February 2026 and 1.10.10 (LTS) |
| Preview release | 1.13.0-beta2
/ 4 February 2026 |
| Typing discipline | Dynamic, inferred, optional, nominative, parametric, strong |
| Implementation language | Julia, C, C++, LLVM, Scheme |
| Platform | Tier 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+. |
| OS | Linux, macOS, Windows 10+ and FreeBSD |
| License | MIT |
| Filename extensions | .jl |
| Website | JuliaLang.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).