Julia (programming language)
![]() | |
Paradigm | Multi-paradigm: multiple dispatch (primary paradigm), procedural, functional, 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 |
Stable release | 1.11.5[4] ![]() 1.6.6 LTS[5][6] / 28 March 2022 |
Typing discipline | Dynamic,[7] strong,[7] nominative, parametric, optional |
Implementation language | Julia, C, C++, Scheme, LLVM[8] |
Platform | Tier 1: x86-64, IA-32; CUDA 10.1+[9]/Nvidia GPUs (for Linux and Windows) Tier 2: 64-bit ARM, 32-bit Windows (64-bit is tier 1) Tier 3: 32-bit ARM, PowerPC, AMD (ROCm) GPUs. |
OS | Linux, macOS, Windows and FreeBSD |
License | MIT (core),[2] GPL v2;[8][10] a makefile option omits GPL libraries[11] |
Filename extensions | .jl |
Website | JuliaLang.org |
Dialects | |
Julia is a high-performance programming language, which is also meant to be easy (was considered a contradictory goal before), originally made with technical computing or with science in mind (like MATLAB), but it's a fully general-purpose language similar to e.g. Python, can be used for e.g. web development to building artificial intelligence.
Julia is a high-level language, which means a programmer can focus on what to do instead of how to do it. Writing programs in Julia takes less time than in some other languages.
Some state-of-the-art software has already been written in Julia, because it's considered easier to do then in the other popular languages. Some of it can also be used from other languages like Python or R. Julia was designed to be unusually easy to work with other languages, i.e. be benefit from code already written in other languages, to "reuse" their code.
Julia drew inspiration from other programming languages like Python, MATLAB, R, Ruby, Perl, Mathematica, Lisp, and C.
Julia works on the Raspberry Pi computer, i.e. is supported in Raspbian.[12]
Some technical details
Julia is a high-level, high-performance, dynamic programming language. While it is a general-purpose language and can be used to write any application, many of its features are well suited for numerical analysis and computational science.[13][14][15][16]
Distinctive aspects of Julia's design include multiple dispatch as its core programming paradigm. Julia supports concurrent, (composable) parallel and distributed computing. Julia uses a just-in-time (JIT) compiler, as Julia compiles code to machine code before running it.[17][18]
Julia is garbage-collected,[19] and includes efficient libraries for floating-point calculations, linear algebra, random number generation, and regular expression matching.
Julia supports calling C (and also e.g. Fortran or Rust) without glue code, using the keyword ccall
. But it's also possible to call e.g. C++, Python, Java, MATLAB and R with help of Julia libraries for that purpose, and it's also possible to use those languages to call Julia, to reuse Julia libraries (that some of are state-of-the-art, such as SciML, made for scientific machine learning, which includes e.g. that DifferentialEquations.jl package).
References
- ↑ "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.
- ↑ 2.0 2.1 "LICENSE.md". GitHub. September 2017.
- ↑ "Contributors to JuliaLang/julia". GitHub.
- ↑ "Julia v1.11.5 has been released".
- ↑ "Releases · JuliaLang/julia". GitHub. Retrieved 30 March 2022.
- ↑ "release-1.6: Backports for 1.6.6 by KristofferC · Pull Request #43735 · JuliaLang/julia". GitHub. Retrieved 19 March 2022.
- ↑ 7.0 7.1 Engheim, Erik (17 November 2017). "Dynamically Typed Languages Are Not What You Think". Medium. Retrieved 27 January 2021.
- ↑ 8.0 8.1 "Julia". Julia. NumFocus project. Retrieved 9 December 2016.
Julia's Base library, largely written in Julia itself, also integrates mature, best-of-breed open source C and Fortran libraries for ...
- ↑ "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
- ↑ "Non-GPL Julia?". Groups.google.com. Retrieved 31 May 2017.
- ↑ "Introduce USE_GPL_LIBS Makefile flag to build Julia without GPL libraries". GitHub.
Note that this commit does not remove GPL utilities such as git and busybox that are included in the Julia binary installers on Mac and Windows. It allows building from source with no GPL library dependencies.
- ↑ "Julia available in Raspbian on the Raspberry Pi".
Julia works on all the Pi variants, we recommend using the Pi 3.
- ↑ Bryant, Avi (15 October 2012). "Matlab, R, and Julia: Languages for data analysis". O'Reilly Strata. Archived from the original on 26 April 2014.
- ↑ Singh, Vicky (23 August 2015). "Julia Programming Language – A True Python Alternative". Technotification.
- ↑ Krill, Paul (18 April 2012). "New Julia language seeks to be the C for scientists". InfoWorld.
- ↑ Finley, Klint (3 February 2014). "Out in the Open: Man Creates One Programming Language to Rule Them All". Wired.
- ↑ Fischer, Keno; Nash, Jameson. "Growing a Compiler - Getting to Machine Learning from a General Purpose Compiler". Julia Computing Blog. Retrieved 11 April 2019.
- ↑ "Creating a sysimage". PackageCompiler Documentation.
- ↑ "Suspending Garbage Collection for Performance...good idea or bad idea?". Groups.google.com. Retrieved 31 May 2017.
Further reading
- Nagar, Sandeep (2017). Beginning Julia Programming: For Engineers and Scientists. Springer. ISBN 9781484231715.
- Bezanson, J; Edelman, A; Karpinski, S; Shah, V. B (2017). "Julia: A fresh approach to numerical computing". SIAM Review. 59 (1): 65–98. arXiv:1411.1607. CiteSeerX 10.1.1.760.8894. doi:10.1137/141000671. S2CID 13026838.
- Joshi, Anshul (2016). Julia for Data Science - Explore the world of data science from scratch with Julia by your side. Packt. ISBN 9781783553860.
External links

- Official website
- See also: The web page of the company Julia Computing, while the language itself is open source.
- 2012 software
- Array programming languages
- Articles with example Julia code
- Notebook interface
- Cross-platform software
- Data mining and machine learning software
- Data-centric programming languages
- Dynamically typed programming languages
- Free compilers and interpreters
- Free computer libraries
- Free data analysis software
- Free data visualization software
- Free software programmed in C
- Free software programmed in Julia
- Free software projects
- Free statistical software
- Functional languages
- High-level programming languages
- Homoiconic programming languages
- Lisp programming language family
- Multi-paradigm programming languages
- Numerical analysis software for Linux
- Numerical analysis software for macOS
- Numerical analysis software for Windows
- Numerical libraries
- Numerical linear algebra
- Numerical programming languages
- Object-oriented programming languages
- Parallel computing
- Procedural programming languages
- Programming languages
- Programming languages created in 2012
- Software using the MIT license
- Statistical programming languages
- Text-oriented programming languages
- Programming languages supporting units of measure