Julia (programming language)
Julia is a high-level, general-purpose dynamic programming language, most commonly used for numerical analysis and computational science. Distinctive aspects of Julia's design include a type system with parametric polymorphism and the use of multiple dispatch as a core programming paradigm, efficient garbage collection, and a just-in-time (JIT) compiler (with support for ahead-of-time compilation).
Paradigm | Multi-paradigm: multiple dispatch (primary paradigm), object-oriented, 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 | |
Preview release | 1.11.0-DEV with daily updates
|
Typing discipline | Dynamic, inferred, optional, nominative, parametric, strong |
Implementation language | Julia, C, C++, LLVM, Scheme (parser) |
Platform | Tier 1: x86-64, IA-32, Apple silicon 64-bit Arm Macs; CUDA 10.1 to 12/Nvidia GPUs (for Linux and Windows) Tier 2: FreeBSD, 64-bit Arm on Linux Tier 3: 32-bit Arm, PowerPC, AMD (ROCm) GPUs and oneAPI/Intel's GPUs. |
OS | Linux, macOS, Windows and FreeBSD |
License | MIT |
Filename extensions | .jl |
Website | JuliaLang.org |
Julia can be run similar to (interpreted) scripting languages (i.e. Julia has a REPL), and does by default using its runtime (when preinstalled), but Julia programs/source code can also optionally be sent to users in one ready-to-install/run file, which can be made quickly, not needing anything preinstalled. Julia programs can also be (separately) compiled to binary executables, even allowing no-source-code distribution. Such compilation is not needed for speed, since Julia is also compiled when running interactively, but it can help with hiding source code. Features of the language can be separately compiled, so Julia can be used, for example, with its runtime or without it (which allows for smaller executables and libraries but is limited in capabilities). Julia can be called from other languages, e.g. Python and R, and several Julia packages have been made easily available from those languages, in the form of libraries for them.
Julia's Visual Studio Code extension provides a fully-featured integrated development environment with support for debugging, linting, and profiling.