Julia (programming language)

Julia
ParadigmMulti-paradigm: multiple dispatch (primary paradigm), functional, array, procedural (imperative), structured, reflective, meta, multistaged[1]
Designed byJeff Bezanson, Alan Edelman, Stefan Karpinski, Viral B. Shah
DeveloperJeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors[2][3]
First appeared2012 (2012)[4]
Stable release
1.11.5[5] Edit this on Wikidata / 14 April 2025 (14 April 2025)
and 1.10.9[6] (LTS) / 10 March 2025 (2025-03-10)
Preview release
1.12.0-beta2 / 25 April 2025 (2025-04-25) and 1.13.0-DEV with daily updates
Typing disciplineDynamic,[7] inferred, optional, nominative, parametric, strong[7]
Implementation languageJulia, C, C++, LLVM,[8] Scheme (was used the parser; almost exclusively)
PlatformTier 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+.
OSLinux, macOS, Windows 10+ and FreeBSD
LicenseMIT
Filename extensions.jl
WebsiteJuliaLang.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]

  1. ^ "Smoothing data with Julia's @generated functions". 5 November 2015. Archived from the original on 4 March 2016. Retrieved 9 December 2015. 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.
  2. ^ "LICENSE.md". GitHub. September 2017. Archived from the original on 23 January 2021. Retrieved 20 October 2014.
  3. ^ "Contributors to JuliaLang/julia". GitHub. Archived from the original on 23 January 2021. Retrieved 20 October 2014.
  4. ^ a b c d Jeff Bezanson; Stefan Karpinski; Viral Shah; Alan Edelman (February 2012). "Why We Created Julia". Julia website. Archived from the original on 2 May 2020. Retrieved 7 February 2013.
  5. ^ "Julia v1.11.5 has been released".
  6. ^ "GitHub - JuliaLang/julia at v1.10.9". GitHub. Retrieved 10 March 2025.
  7. ^ a b Engheim, Erik (17 November 2017). "Dynamically Typed Languages Are Not What You Think". Medium. Archived from the original on 5 March 2021. Retrieved 27 January 2021.
  8. ^ "Building Julia (Detailed)". GitHub. September 2017. Archived from the original on 16 May 2022. Retrieved 16 May 2022.
  9. ^ "NVIDIA CUDA ⋅ JuliaGPU". juliagpu.org. Archived from the original on 29 January 2022. Retrieved 17 January 2022. 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
  10. ^ Stokel-Walker, Chris. "Julia: The Goldilocks language". Increment. Stripe. Archived from the original on 9 November 2020. Retrieved 23 August 2020.
  11. ^ "JuliaCon 2016". JuliaCon. Archived from the original on 4 March 2017. Retrieved 6 December 2016. He has co-designed the programming language Scheme, which has greatly influenced the design of Julia
  12. ^ a b c d "Home · The Julia Language". docs.julialang.org. Archived from the original on 11 January 2021. Retrieved 15 August 2018.
  13. ^ "Programming Language Network". GitHub. Archived from the original on 20 December 2020. Retrieved 6 December 2016.
  14. ^ Wolfram, Stephen (12 February 2013). "What Should We Call the Language of Mathematica?—Stephen Wolfram Writings". writings.stephenwolfram.com. Archived from the original on 4 September 2024. Retrieved 24 June 2021.
  15. ^ a b Fischer, Keno; Nash, Jameson. "Growing a Compiler - Getting to Machine Learning from a General Purpose Compiler". juliahub.com. Archived from the original on 28 November 2022. Retrieved 16 November 2022.
  16. ^ Cite error: The named reference Fastest was invoked but never defined (see the help page).
  17. ^ Bryant, Avi (15 October 2012). "Matlab, R, and Julia: Languages for data analysis". O'Reilly Strata. Archived from the original on 26 April 2014.
  18. ^ Krill, Paul (18 April 2012). "New Julia language seeks to be the C for scientists". InfoWorld. Archived from the original on 13 September 2014. Retrieved 4 July 2021.
  19. ^ Finley, Klint (3 February 2014). "Out in the Open: Man Creates One Programming Language to Rule Them All". Wired. Archived from the original on 20 December 2016. Retrieved 8 March 2017.
  20. ^ "Sysimages · PackageCompiler". julialang.github.io. Archived from the original on 10 April 2023. Retrieved 10 April 2023.
  21. ^ a b Cite error: The named reference PackageCompiler.jl was invoked but never defined (see the help page).
  22. ^ "julia/doc/src/devdocs/aot.md at master · JuliaLang/julia". GitHub. Archived from the original on 3 October 2023. Retrieved 3 October 2023.
  23. ^ "System Image Building · The Julia Language". docs.julialang.org. Retrieved 3 October 2023.
  24. ^ "Suspending Garbage Collection for Performance...good idea or bad idea?". Groups.google.com. Archived from the original on 14 February 2012. Retrieved 31 May 2017.
  25. ^ Cite error: The named reference AppBundler.jl was invoked but never defined (see the help page).
  26. ^ "Julia available in Raspbian on the Raspberry Pi". 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