![]() | |
Paradigm | Multi-paradigm: multiple dispatch (primary paradigm), functional, array, procedural (imperative), structured, reflective, meta, multistaged[1] |
---|---|
Designed by | Jeff Bezanson, Alan Edelman, Stefan Karpinski, Viral B. Shah |
Developer | Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors[2][3] |
First appeared | 2012[4] |
Stable release | |
Preview release | 1.12.0-beta2
/ 25 April 2025 and 1.13.0-DEV with daily updates |
Typing discipline | Dynamic,[7] inferred, optional, nominative, parametric, strong[7] |
Implementation language | Julia, C, C++, LLVM,[8] Scheme (was used the parser; almost exclusively) |
Platform | Tier 1: 64- and 32-bit Windows 10+, Linux, and 64-bit macOS; IA-32, x86-64, Apple silicon (ARM64) Macs; Nvidia GPUs/CUDA 11.0+ (on Linux; tier 2 for Windows)[9] Tier 2: 64-bit FreeBSD 13.4+, Linux on 64-bit Arm; 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 high-level, general-purpose[15] dynamic programming language, designed to be fast and productive,[16] for e.g. data science, artificial intelligence, machine learning, modeling and simulation, most commonly used for numerical analysis and computational science.[17][18][19]
Distinctive aspects of Julia's design include a type system with parametric polymorphism and the use of multiple dispatch as a core programming paradigm, a default just-in-time (JIT) compiler[15][20] (with support for ahead-of-time compilation[21][22][23]) and an efficient (multi-threaded) garbage collection implementation.[24] Notably Julia does not support classes with encapsulated methods and instead it relies on structs with generic methods/functions not tied to them.
By default, Julia is run similarly to scripting languages, using its runtime, and allows for interactions,[21] 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.[25]
Julia programs can reuse libraries from other languages by calling them, e.g. calling C or Rust libraries, and Julia (libraries) can also 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 Python and R libraries for corresponding Julia packages. Calling in either direction has been implemented for many languages, not just those and C++.
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).[26]
Julia's generated functions are closely related to the multistaged programming (MSP) paradigm popularized by Taha and Sheard, which generalizes the compile time/run time stages of program execution by allowing for multiple stages of delayed code execution.
we have shown the performance to approach and even sometimes exceed that of CUDA C on a selection of applications from the Rodinia benchmark suite
He has co-designed the programming language Scheme, which has greatly influenced the design of Julia
Fastest
was invoked but never defined (see the help page).
PackageCompiler.jl
was invoked but never defined (see the help page).
AppBundler.jl
was invoked but never defined (see the help page).
Julia works on all the Pi variants, we recommend using the Pi 3.
© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search