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).

Julia
ParadigmMulti-paradigm: multiple dispatch (primary paradigm), object-oriented, 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.10.2  / 1 March 2024 (1 March 2024) and
1.6.7 LTS / 19 July 2022 (2022-07-19)
Preview release
1.11.0-beta1 / 10 April 2024 (2024-04-10) and 1.10.3 being worked on and 1.12.0-DEV with daily updates
Typing disciplineDynamic, inferred, optional, nominative, parametric, strong
Implementation languageJulia, C, C++, LLVM, Scheme (mostly parser; in older versions)
PlatformTier 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.
OSLinux, macOS, Windows and FreeBSD
LicenseMIT
Filename extensions.jl
WebsiteJuliaLang.org
Influenced by

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 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 such as all of these.

Julia's Visual Studio Code extension provides a fully-featured integrated development environment with support for debugging, linting, and profiling.

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.