Julia (programming language)

Julia
ParadigmMulti-paradigm: multiple dispatch (primary paradigm), object-oriented,[1] functional, array, procedural (imperative), structured, reflective, meta, multistaged[2]
Designed byJeff Bezanson, Alan Edelman, Stefan Karpinski, Viral B. Shah
DeveloperJeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors[3][4]
First appeared2012 (2012)[5]
Stable release
1.10.2[6] Edit this on Wikidata / 1 March 2024 (1 March 2024) and
1.6.7 LTS[10][11] / 19 July 2022 (2022-07-19)
Preview release
1.11.0-alpha2[7][8][9] and 1.12.0-DEV with daily updates
Typing disciplineDynamic,[12] inferred, optional, nominative, parametric, strong[12]
Implementation languageJulia, C, C++, LLVM,[13] Scheme (mostly parser; in older versions)
PlatformTier 1: x86-64, IA-32, Apple silicon 64-bit Arm Macs; CUDA 10.1[14] 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

Julia is a high-level, general-purpose[15] dynamic programming language, most commonly used for numerical analysis and computational science.[16][17][18] 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,[19] and a just-in-time (JIT) compiler[15][20] (with support for ahead-of-time compilation[21][22][23]).

Julia can be run similar to (interpreted) scripting languages (i.e. Julia has a REPL), and does[clarification needed] by default using its runtime (when preinstalled),[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.[citation needed] 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.[24][25][26][27]

  1. ^ "2. Object-Oriented Programming - Beginning Julia Programming: For Engineers and Scientists [Book]". www.oreilly.com. Retrieved 26 January 2023.
  2. ^ "Smoothing data with Julia's @generated functions". 5 November 2015. 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.
  3. ^ "LICENSE.md". GitHub. September 2017.
  4. ^ "Contributors to JuliaLang/julia". GitHub.
  5. ^ "Why We Created Julia". Julia website. February 2012. Retrieved 7 February 2013.
  6. ^ "Download Julia".
  7. ^ "GitHub - JuliaLang/julia at release-1.11". GitHub. Retrieved 18 March 2024.
  8. ^ "release-1.11: Update VERSION to 1.11.0-alpha2 by KristofferC · Pull Request #53768 · JuliaLang/julia". GitHub. Retrieved 18 March 2024.
  9. ^ "Julia v1.10.2 and v1.11.0-alpha1 have been released". Julia Programming Language. 2 March 2024. Retrieved 2 March 2024.
  10. ^ "GitHub - JuliaLang/julia at release-1.6". GitHub. Retrieved 19 July 2022.
  11. ^ "release-1.6: Backports for 1.6.7 by KristofferC · Pull Request #45319 · JuliaLang/julia". GitHub. Retrieved 16 May 2022.
  12. ^ a b Engheim, Erik (17 November 2017). "Dynamically Typed Languages Are Not What You Think". Medium. Retrieved 27 January 2021.
  13. ^ "Building Julia (Detailed)". GitHub. September 2017. Retrieved 16 May 2022.
  14. ^ "NVIDIA CUDA ⋅ JuliaGPU". juliagpu.org. 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
  15. ^ a b Fischer, Keno; Nash, Jameson. "Growing a Compiler - Getting to Machine Learning from a General Purpose Compiler - JuliaHub". juliahub.com. Retrieved 16 November 2022.
  16. ^ Bryant, Avi (15 October 2012). "Matlab, R, and Julia: Languages for data analysis". O'Reilly Strata. Archived from the original on 26 April 2014.
  17. ^ Krill, Paul (18 April 2012). "New Julia language seeks to be the C for scientists". InfoWorld.
  18. ^ Finley, Klint (3 February 2014). "Out in the Open: Man Creates One Programming Language to Rule Them All". Wired.
  19. ^ "Suspending Garbage Collection for Performance...good idea or bad idea?". Groups.google.com. Retrieved 31 May 2017.
  20. ^ "Sysimages · PackageCompiler". julialang.github.io. 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. Retrieved 3 October 2023.
  23. ^ "System Image Building · The Julia Language". docs.julialang.org. Retrieved 3 October 2023.
  24. ^ Holy, Tim (13 September 2019). "GitHub - timholy/ProfileView.jl: Visualization of Julia profiling data". GitHub. Retrieved 22 September 2019.
  25. ^ Gregg, Brendan (20 September 2019). "GitHub - brendangregg/FlameGraph: Stack trace visualizer". GitHub. Retrieved 22 September 2019.
  26. ^ "A Julia interpreter and debugger". julialang.org. Retrieved 10 April 2019.
  27. ^ "Home · Rebugger.jl". timholy.github.io. Retrieved 10 April 2019.

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne