Julia (programming Language)
   HOME

TheInfoList



OR:

Julia is a
high-level High-level and low-level, as technical terms, are used to classify, describe and point to specific goals of a systematic operation; and are applied in a wide range of contexts, such as, for instance, in domains as widely varied as computer scienc ...
, general-purpose dynamic
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
, designed to be fast and productive, for e.g. data science, artificial intelligence, machine learning, modeling and simulation, most commonly used for
numerical analysis Numerical analysis is the study of algorithms that use numerical approximation (as opposed to symbolic computation, symbolic manipulations) for the problems of mathematical analysis (as distinguished from discrete mathematics). It is the study of ...
and
computational science Computational science, also known as scientific computing, technical computing or scientific computation (SC), is a division of science, and more specifically the Computer Sciences, which uses advanced computing capabilities to understand and s ...
. Distinctive aspects of Julia's design include a type system with
parametric polymorphism In programming languages and type theory, parametric polymorphism allows a single piece of code to be given a "generic" type, using variables in place of actual types, and then instantiated with particular types as needed. Parametrically polymorph ...
and the use of
multiple dispatch Multiple dispatch or multimethods is a feature of some programming languages in which a Subroutine, function or Method (computer programming), method can be dynamic dispatch, dynamically dispatched based on the run time (program lifecycle phase), ...
as a core
programming paradigm A programming paradigm is a relatively high-level way to conceptualize and structure the implementation of a computer program. A programming language can be classified as supporting one or more paradigms. Paradigms are separated along and descri ...
, a default just-in-time (JIT) compiler (with support for
ahead-of-time compilation In computer science, ahead-of-time compilation (AOT compilation) is the act of compiling an (often) higher-level programming language into an (often) lower-level language before execution of a program, usually at build-time, to reduce the amount ...
) and an efficient (multi-threaded) garbage collection implementation. 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, but Julia programs/
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
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 reuse libraries from other languages (or itself be reused from other); Julia has a special no-boilerplate keyword allowing calling e.g. C, Fortran or
Rust Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO(OH) ...
libraries, and e.g. PythonCall.jl uses it indirectly for you, and Julia (libraries) can also be called from other languages, e.g.
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (prog ...
and R, and several Julia packages have been made easily available from those languages, in the form of Python and R
libraries A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
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 Project Jupyter (pronounced "Jupiter") is a project to develop open-source software, open standards, and services for interactive computing across multiple programming languages. It was spun off from IPython in 2014 by Fernando Pérez and Brian ...
, and since 2025 Google Colab officially supports Julia natively. Julia is sometimes used in
embedded system An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is e ...
s (e.g. has been used in a satellite in space on a
Raspberry Pi Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
Compute Module 4; 64-bit Pis work best with Julia, and Julia is supported in Raspbian).


History

Work on Julia began in 2009, when
Jeff Bezanson Jeff Bezanson (born December 26, 1981) is an American computer scientist best known for co-creating the Julia (programming language), Julia programming language with Stefan Karpinski, Alan Edelman and Viral B. Shah in 2012. The language spawned ...
,
Stefan Karpinski Stefan Karpinski is an American computer scientist known for being a co-creator of the Julia (programming language), Julia programming language. He is an alumnus of Harvard and works at Julia Computing, which he co-founded with Julia co-creators ...
, Viral B. Shah, and
Alan Edelman Alan Stuart Edelman (born June 1963) is an American mathematician and computer scientist. He is a professor of applied mathematics at the Massachusetts Institute of Technology (MIT) and a Principal Investigator at the MIT Computer Science and Ar ...
set out to create a free language that was both high-level and fast. On 14 February 2012, the team launched a website with a blog post explaining the language's mission. In an interview with ''
InfoWorld ''InfoWorld'' (''IW'') is an American information technology media business. Founded in 1978, it began as a monthly magazine. In 2007, it transitioned to a Web-only publication. Its parent company is International Data Group, and its sister pu ...
'' in April 2012, Karpinski said of the name "Julia": "There's no good reason, really. It just seemed like a pretty name." Bezanson said he chose the name on the recommendation of a friend, then years later wrote: Julia's
syntax In linguistics, syntax ( ) is the study of how words and morphemes combine to form larger units such as phrases and sentences. Central concerns of syntax include word order, grammatical relations, hierarchical sentence structure (constituenc ...
is now considered stable, since version 1.0 in 2018, and Julia has a
backward compatibility In telecommunications and computing, backward compatibility (or backwards compatibility) is a property of an operating system, software, real-world product, or technology that allows for interoperability with an older legacy system, or with Input ...
guarantee for 1.x and also a stability promise for the documented (stable)
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
, while in the years before in the early development prior to 0.7 the syntax (and semantics) was changed in new versions. All of the (registered package)
ecosystem An ecosystem (or ecological system) is a system formed by Organism, organisms in interaction with their Biophysical environment, environment. The Biotic material, biotic and abiotic components are linked together through nutrient cycles and en ...
uses the new and improved syntax, and in most cases relies on new APIs that have been added regularly, and in some cases minor additional syntax added in a forward compatible way e.g. in Julia 1.7. In the 10 years since the 2012 launch of pre-1.0 Julia, the community has grown. The Julia package ecosystem has over 11.8 million lines of code (including docs and tests). The JuliaCon
academic conference An academic conference or scientific conference (also congress, symposium, workshop, or meeting) is an Convention (meeting), event for researchers (not necessarily academics) to present and discuss their scholarly work. Together with academic jou ...
for Julia users and developers has been held annually since 2014 with JuliaCon2020 welcoming over 28,900 unique viewers, and then JuliaCon2021 breaking all previous records (with more than 300 JuliaCon2021 presentations available for free on YouTube, up from 162 the year before), and 43,000 unique viewers during the conference. Three of the Julia co-creators are the recipients of the 2019 James H. Wilkinson Prize for Numerical Software (awarded every four years) "for the creation of Julia, an innovative environment for the creation of high-performance tools that enable the analysis and solution of computational science problems." Also, Alan Edelman, professor of
applied mathematics Applied mathematics is the application of mathematics, mathematical methods by different fields such as physics, engineering, medicine, biology, finance, business, computer science, and Industrial sector, industry. Thus, applied mathematics is a ...
at
MIT The Massachusetts Institute of Technology (MIT) is a private research university in Cambridge, Massachusetts, United States. Established in 1861, MIT has played a significant role in the development of many areas of modern technology and sc ...
, has been selected to receive the 2019
IEEE Computer Society IEEE Computer Society (commonly known as the Computer Society or CS) is a technical society of the Institute of Electrical and Electronics Engineers (IEEE) dedicated to computing, namely the major areas of hardware, software, standards and people ...
Sidney Fernbach Award "for outstanding breakthroughs in high-performance computing, linear algebra, and computational science and for contributions to the Julia programming language." Both Julia 0.7 and version 1.0 were released on 8 August 2018. Work on Julia 0.7 was a "huge undertaking" (e.g., because of an "entirely new optimizer"), and some changes were made to semantics, e.g. the
iteration Iteration is the repetition of a process in order to generate a (possibly unbounded) sequence of outcomes. Each repetition of the process is a single iteration, and the outcome of each iteration is then the starting point of the next iteration. ...
interface was simplified. Julia 1.6 was the largest release since 1.0, and it was the
long-term support Long-term support (LTS) is a product lifecycle management policy in which a stable release of computer software is maintained for a longer period of time than the standard edition. The term is typically reserved for open-source software, where it ...
(LTS) version for the longest time, faster on many fronts, e.g. introduced parallel precompilation and faster loading of packages, in some cases "50x speedup in load times for large trees of binary artifacts". Since 1.7 Julia development is back to time-based releases. Julia 1.7 was released in November 2021 with many changes, e.g. a new faster
random-number generator Random number generation is a process by which, often by means of a random number generator (RNG), a sequence of numbers or symbols is generated that cannot be reasonably predicted better than by random chance. This means that the particular ou ...
and Julia 1.7.3 fixed e.g. at least one security issue. Julia 1.8 was released in 2022 and 1.8.5 in January 2023, with 1.8.x improvements for distributing Julia programs without source code, and compiler speedup, in some cases by 25%, and more controllable
inlining In computing, inline expansion, or inlining, is a manual or compiler optimization that replaces a function call site with the body of the called function. Inline expansion is similar to macro expansion, but occurs during compiling, without cha ...
(i.e. now also allowing applying @inline at the call site, not just on the function itself). Julia 1.9 was released on 7 May 2023. It has many improvements, such as the ability to precompile packages to native machine code (older Julia versions also have precompilation for packages, but only partial, never fully to native code, so those earlier versions had a "first use" penalty, slowing down while waiting to fully compile). Precompiled packages, since version 1.9, can be up to hundreds of times faster on first use (e.g. for ''CSV.jl'' and ''DataFrames.jl''), and to improve precompilation of packages a new package ''PrecompileTools.jl'' has been introduced. Julia 1.10 was released on 25 December 2023 with many new features, e.g. parallel garbage collection, and improved package load times and a new parser, i.e. it rewritten in Julia, with better error messages and improved stacktrace rendering. Julia 1.11 was released on 7 October 2024 (and 1.11.5 on 14 April 2025), and with it 1.10.5 became the next
long-term support Long-term support (LTS) is a product lifecycle management policy in which a stable release of computer software is maintained for a longer period of time than the standard edition. The term is typically reserved for open-source software, where it ...
(LTS) version (i.e. those are the only two supported versions), since replaced by 1.10.8 released on 10 March, and 1.6 is no longer an LTS version. Julia 1.11 adds e.g. parallel garbage collection and the new public keyword to signal safe public API (Julia users are advised to use such API, not internals, of Julia or packages, and package authors advised to use the keyword, generally indirectly, e.g. prefixed with the @compat macro, from ''Compat.jl'', to also support older Julia versions, at least the LTS version). Julia 1.11.1 has much improved startup (over 1.11.0 that had a regression), and over 1.10, and this can be important for some benchmarks. It's possible to compile very small binary executables using juliac which is available in the upcoming Julia 1.12 (now in beta3), and other compilers exist usable for older Julia versions, that also allows compiling though not to small binaries with the main one.


JuliaCon

Since 2014, the Julia Community has hosted an annual Julia Conference focused on developers and users. The first JuliaCon took place in Chicago and kickstarted the annual occurrence of the conference. Since 2014, the conference has taken place across a number of locations including MIT and the University of Maryland, Baltimore. The event audience has grown from a few dozen people to over 28,900 unique attendees during JuliaCon 2020, which took place virtually. JuliaCon 2021 also took place virtually with keynote addresses from professors
William Kahan William "Velvel" Morton Kahan (born June 5, 1933) is a Canadian mathematician and computer scientist, who is a professor emeritus at University of California, Berkeley. He received the Turing Award in 1989 for "his fundamental contributions to nu ...
, the primary architect of the
IEEE 754 The IEEE Standard for Floating-Point Arithmetic (IEEE 754) is a technical standard for floating-point arithmetic originally established in 1985 by the Institute of Electrical and Electronics Engineers (IEEE). The standard #Design rationale, add ...
floating-point standard (which virtually all CPUs and languages, including Julia, use), Jan Vitek, Xiaoye Sherry Li, and Soumith Chintala, a co-creator of
PyTorch PyTorch is a machine learning library based on the Torch library, used for applications such as computer vision and natural language processing, originally developed by Meta AI and now part of the Linux Foundation umbrella. It is one of the mo ...
. JuliaCon grew to 43,000 unique attendees and more than 300 presentations (still freely accessible, plus for older years). JuliaCon 2022 will also be virtual held between July 27 and July 29, 2022, for the first time in several languages, not just in English.


Sponsors

The Julia language became a NumFOCUS fiscally sponsored project in 2014 in an effort to ensure the project's long-term sustainability. Jeremy Kepner at
MIT Lincoln Laboratory The MIT Lincoln Laboratory, located in Lexington, Massachusetts, is a United States Department of Defense federally funded research and development center chartered to apply advanced technology to problems of national security. Research and dev ...
was the founding sponsor of the Julia project in its early days. In addition, funds from the
Gordon and Betty Moore Foundation The Gordon and Betty Moore Foundation is an American foundation established by Intel co-founder Gordon E. Moore and his wife Betty I. Moore in September 2000 to support scientific discovery, environmental conservation, patient care improvements ...
, the Alfred P. Sloan Foundation,
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
, and agencies such as
NSF NSF may stand for: Political organizations *National Socialist Front, a Swedish National Socialist party *NS-Frauenschaft, the women's wing of the former German Nazi party * National Students Federation, a leftist Pakistani students' political g ...
,
DARPA The Defense Advanced Research Projects Agency (DARPA) is a research and development agency of the United States Department of Defense responsible for the development of emerging technologies for use by the military. Originally known as the Adva ...
,
NIH The National Institutes of Health (NIH) is the primary agency of the United States government responsible for biomedical and public health research. It was founded in 1887 and is part of the United States Department of Health and Human Service ...
,
NASA The National Aeronautics and Space Administration (NASA ) is an independent agencies of the United States government, independent agency of the federal government of the United States, US federal government responsible for the United States ...
, and FAA have been essential to the development of Julia.
Mozilla Mozilla is a free software community founded in 1998 by members of Netscape. The Mozilla community uses, develops, publishes and supports Mozilla products, thereby promoting free software and open standards. The community is supported institution ...
, the maker of Firefox web browser, with its research grants for H1 2019, sponsored "a member of the official Julia team" for the project "Bringing Julia to the Browser", meaning to Firefox and other web browsers. The Julia language is also supported by individual donors on GitHub.


The Julia company

JuliaHub, Inc. was founded in 2015 as Julia Computing, Inc. by Viral B. Shah, Deepak Vinchhi,
Alan Edelman Alan Stuart Edelman (born June 1963) is an American mathematician and computer scientist. He is a professor of applied mathematics at the Massachusetts Institute of Technology (MIT) and a Principal Investigator at the MIT Computer Science and Ar ...
,
Jeff Bezanson Jeff Bezanson (born December 26, 1981) is an American computer scientist best known for co-creating the Julia (programming language), Julia programming language with Stefan Karpinski, Alan Edelman and Viral B. Shah in 2012. The language spawned ...
,
Stefan Karpinski Stefan Karpinski is an American computer scientist known for being a co-creator of the Julia (programming language), Julia programming language. He is an alumnus of Harvard and works at Julia Computing, which he co-founded with Julia co-creators ...
and Keno Fischer. In June 2017, Julia Computing raised US$4.6million in seed funding from
General Catalyst General Catalyst (GC) is a global investment and transformation company that makes seed to growth stage investments and beyond. The firm has invested in 800+ businesses, including global companies such as Airbnb, Anduril Industries, Applied In ...
and Founder Collective, the same month was "granted $910,000 by the Alfred P. Sloan Foundation to support
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
Julia development, including $160,000 to promote diversity in the Julia community", and in December 2019 the company got $1.1million funding from the US government to "develop a neural component
machine learning Machine learning (ML) is a field of study in artificial intelligence concerned with the development and study of Computational statistics, statistical algorithms that can learn from data and generalise to unseen data, and thus perform Task ( ...
tool to reduce the total energy consumption of heating, ventilation, and air conditioning (HVAC) systems in buildings". In July 2021, Julia Computing announced they raised a $24 million
Series A round A series A is the name typically given to a company's first significant round of venture capital financing. It can be followed by the word round, investment or financing. The name refers to the class of preferred stock sold to investors in excha ...
led by Dorilton Ventures, which also owns team
Williams Racing Williams Racing, legally known as Williams Grand Prix Engineering Limited and competing as Atlassian Williams Racing, is a British Formula One team and constructor. It was founded by Frank Williams (1942–2021) and Patrick Head. The team w ...
, that partnered with Julia Computing. Williams' Commercial Director said: "Investing in companies building best-in-class cloud technology is a strategic focus for Dorilton and Julia's versatile platform, with revolutionary capabilities in simulation and modelling, is hugely relevant to our business. We look forward to embedding Julia Computing in the world's most technologically advanced sport". In June 2023, JuliaHub received (again, now under its new name) a $13 million strategic new investment led by AE Industrial Partners HorizonX ("AEI HorizonX"). AEI HorizonX is a venture capital investment platform formed in partnership with
The Boeing Company The Boeing Company, or simply Boeing (), is an American multinational corporation that designs, manufactures, and sells airplanes, rotorcraft, rockets, satellites, and missiles worldwide. The company also provides leasing and product support s ...
, which uses Julia. Tim Holy's work (at
Washington University in St. Louis Washington University in St. Louis (WashU) is a private research university in St. Louis, Missouri, United States. Founded in 1853 by a group of civic leaders and named for George Washington, the university spans 355 acres across its Danforth ...
's Holy Lab) on Julia 1.9 (improving responsiveness) was funded by the
Chan Zuckerberg Initiative The Chan Zuckerberg Initiative (CZI) is an organization established and owned by Facebook founder Mark Zuckerberg and his wife Priscilla Chan with an investment of 99 percent of the couple's wealth from their Facebook shares over their lifetim ...
.


Language features

Julia is a
general-purpose programming language In computer software, a general-purpose programming language (GPL) is a programming language for building software in a wide variety of application Domain (software engineering), domains. Conversely, a Domain-specific language, domain-specific pro ...
, while also originally designed for numerical/technical computing. It is also useful for low-level
systems programming Systems programming, or system programming, is the activity of programming computer system software. The primary distinguishing characteristic of systems programming when compared to application programming is that application programming aims t ...
, as a
specification language A specification language is a formal language in computer science used during systems analysis, requirements analysis, and systems design to describe a system at a much higher level than a programming language, which is used to produce the exec ...
, high-level synthesis (HLS) tool (for hardware, e.g.
FPGA A field-programmable gate array (FPGA) is a type of configurable integrated circuit that can be repeatedly programmed after manufacturing. FPGAs are a subset of logic devices referred to as programmable logic devices (PLDs). They consist of a ...
s), and for web programming at both server and client side. The main features of the language are: * Multiple dispatch: providing ability to define function behavior across combinations of argument types *
Dynamic type In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a ''type'' (for example, integer, floating point, string) to every '' term'' (a word, phrase, or other set of symbols). Usuall ...
system: types for documentation, optimization, and dispatch * Performance approaching that of
statically-typed In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a ''type'' (for example, integer, floating point, string) to every '' term'' (a word, phrase, or other set of symbols). Usuall ...
languages like C * A built-in
package manager A package manager or package management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner. A package manager deals wi ...
*
Lisp Lisp (historically LISP, an abbreviation of "list processing") is a family of programming languages with a long history and a distinctive, fully parenthesized Polish notation#Explanation, prefix notation. Originally specified in the late 1950s, ...
-like macros and other
metaprogramming Metaprogramming is a computer programming technique in which computer programs have the ability to treat other programs as their data. It means that a program can be designed to read, generate, analyse, or transform other programs, and even modi ...
facilities * Designed for
parallel Parallel may refer to: Mathematics * Parallel (geometry), two lines in the Euclidean plane which never intersect * Parallel (operator), mathematical operation named after the composition of electrical resistance in parallel circuits Science a ...
and
distributed computing Distributed computing is a field of computer science that studies distributed systems, defined as computer systems whose inter-communicating components are located on different networked computers. The components of a distributed system commu ...
*
Coroutine Coroutines are computer program components that allow execution to be suspended and resumed, generalizing subroutines for cooperative multitasking. Coroutines are well-suited for implementing familiar program components such as cooperative task ...
s: lightweight ''green'' threading * Automatic generation of code for different argument types * Extensible conversions and promotions for numeric and other types Multiple dispatch (also termed multimethods in Lisp) is a
generalization A generalization is a form of abstraction whereby common properties of specific instances are formulated as general concepts or claims. Generalizations posit the existence of a domain or set of elements, as well as one or more common characteri ...
of
single dispatch In computer science, dynamic dispatch is the process of selecting which implementation of a polymorphic operation (method or function) to call at run time. It is commonly employed in, and considered a prime characteristic of, object-oriented ...
the polymorphic mechanism used in common
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
(OOP) languages, such as
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (prog ...
, C++,
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
,
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
, and
Smalltalk Smalltalk is a purely object oriented programming language (OOP) that was originally created in the 1970s for educational use, specifically for constructionist learning, but later found use in business. It was created at Xerox PARC by Learni ...
that use
inheritance Inheritance is the practice of receiving private property, titles, debts, entitlements, privileges, rights, and obligations upon the death of an individual. The rules of inheritance differ among societies and have changed over time. Offi ...
. In Julia, all concrete types are subtypes of abstract types, directly or indirectly subtypes of the Any type, which is the top of the type hierarchy. Concrete types cannot themselves be subtyped the way they can in other languages; composition is used instead (see also inheritance vs subtyping). By default, the Julia runtime must be pre-installed as user-provided source code is run. Alternatively, Julia (GUI) apps can be quickly bundled up into a single file with ''AppBundler.jl'' for "building Julia GUI applications in modern desktop application installer formats. It uses Snap for Linux, MSIX for Windows, and DMG for MacOS as targets. It bundles full Julia within the app". ''PackageCompiler.jl'' can build standalone
executable In computer science, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instruction (computer science), in ...
s that need no Julia source code to run. In Julia, everything is an object, much like object-oriented languages; however, unlike most object-oriented languages, all functions use
multiple dispatch Multiple dispatch or multimethods is a feature of some programming languages in which a Subroutine, function or Method (computer programming), method can be dynamic dispatch, dynamically dispatched based on the run time (program lifecycle phase), ...
to select methods, rather than single dispatch. Most programming paradigms can be implemented using Julia's
homoiconic In computer programming, homoiconicity (from the Greek words ''homo-'' meaning "the same" and ''icon'' meaning "representation") is an informal property of some programming languages. A language is homoiconic if a program written in it can be manip ...
macros and packages. Julia's syntactic macros (used for
metaprogramming Metaprogramming is a computer programming technique in which computer programs have the ability to treat other programs as their data. It means that a program can be designed to read, generate, analyse, or transform other programs, and even modi ...
), like Lisp macros, are more powerful than text-substitution macros used in the
preprocessor In computer science, a preprocessor (or precompiler) is a Computer program, program that processes its input data to produce output that is used as input in another program. The output is said to be a preprocessed form of the input data, which i ...
of some other languages such as C, because they work at the level of
abstract syntax tree An abstract syntax tree (AST) is a data structure used in computer science to represent the structure of a program or code snippet. It is a tree representation of the abstract syntactic structure of text (often source code) written in a formal ...
s (ASTs). Julia's macro system is
hygienic Hygiene is a set of practices performed to preserve health. According to the World Health Organization (WHO), "Hygiene refers to conditions and practices that help to maintain health and prevent the spread of diseases." Personal hygiene refer ...
, but also supports deliberate capture when desired (like for
anaphoric macro An anaphoric macro is a type of programming macro that deliberately captures some form supplied to the macro which may be referred to by an ''anaphor'' (an expression referring to another). Anaphoric macros first appeared in Paul Graham's ''On Lis ...
s) using the esc construct. Julia draws inspiration from various dialects of Lisp, including Scheme and
Common Lisp Common Lisp (CL) is a dialect of the Lisp programming language, published in American National Standards Institute (ANSI) standard document ''ANSI INCITS 226-1994 (S2018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperli ...
, and it shares many features with Dylan, also a multiple-dispatch-oriented dynamic language (which features an
infix An infix is an affix inserted inside a word stem (an existing word or the core of a family of words). It contrasts with '' adfix,'' a rare term for an affix attached to the outside of a stem, such as a prefix or suffix. When marking text for ...
syntax rather than a Lisp-like prefix syntax, while in Julia "everything" is an expression), and with
Fortress A fortification (also called a fort, fortress, fastness, or stronghold) is a military construction designed for the defense of territories in warfare, and is used to establish rule in a region during peacetime. The term is derived from L ...
, another numerical programming language (which features multiple dispatch and a sophisticated parametric type system). While
Common Lisp Object System The Common Lisp Object System (CLOS) is the facility for object-oriented programming in American National Standards Institute, ANSI Common Lisp. CLOS is a powerful dynamic programming language, dynamic object system which differs radically from t ...
(CLOS) adds multiple dispatch to Common Lisp, not all functions are generic functions. In Julia, Dylan, and Fortress, extensibility is the default, and the system's built-in functions are all generic and extensible. In Dylan, multiple dispatch is as fundamental as it is in Julia: all user-defined functions and even basic built-in operations like + are generic. Dylan's type system, however, does not fully support parametric types, which are more typical of the ML lineage of languages. By default, CLOS does not allow for dispatch on Common Lisp's parametric types; such extended dispatch semantics can only be added as an extension through the CLOS Metaobject Protocol. By convergent design, Fortress also features multiple dispatch on parametric types; unlike Julia, however, Fortress is statically rather than dynamically typed, with separate compiling and executing phases. The language features are summarized in the following table: An example of the extensibility of Julia, the ''Unitful.jl'' package adds support for physical
units of measurement A unit of measurement, or unit of measure, is a definite magnitude (mathematics), magnitude of a quantity, defined and adopted by convention or by law, that is used as a standard for measurement of the same kind of quantity. Any other qua ...
to the language.


Interoperability

Julia has built-in support for calling C or Fortran language libraries using the @ccall macro. Additional libraries allow users to call to or from other languages such as
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (prog ...
, C++,
Rust Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO(OH) ...
, R,
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
and to use with
SQL Structured Query Language (SQL) (pronounced ''S-Q-L''; or alternatively as "sequel") is a domain-specific language used to manage data, especially in a relational database management system (RDBMS). It is particularly useful in handling s ...
.


Separately-compiled executables option

Julia can be compiled to binary
executable In computer science, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instruction (computer science), in ...
s with ''PackageCompiler.jl''. Smaller executables can also be written using a static subset of the language provided by ''StaticCompiler.jl'' that does not support
runtime dispatch In computer science, dynamic dispatch is the process of selecting which implementation of a polymorphic operation (method or function) to call at run time. It is commonly employed in, and considered a prime characteristic of, object-oriented ...
(nor garbage collection, since excludes the runtime that provides it).


Interaction

The Julia official distribution includes an interactive command-line
read–eval–print loop A read–eval–print loop (REPL), also termed an interactive toplevel or language shell, is a simple interactive computer programming environment that takes single user inputs, executes them, and returns the result to the user; a program written ...
(REPL), with a searchable history,
tab completion Command-line completion (also tab completion) is a common feature of command-line interpreters, in which the program automatically fills in partially typed commands. Command line interpreters are programs that allow a user to interact with the u ...
, and dedicated help and
shell Shell may refer to: Architecture and design * Shell (structure), a thin structure ** Concrete shell, a thin shell of concrete, usually with no interior columns or exterior buttresses Science Biology * Seashell, a hard outer layer of a marine ani ...
modes, which can be used to experiment and test code quickly. The following fragment represents a sample session example where strings are concatenated automatically by println: julia> p(x) = 2x^2 + 1; f(x, y) = 1 + 2p(x)y julia> println("Hello world!", " I'm on cloud ", f(0, 4), " as Julia supports recognizable syntax!") Hello world! I'm on cloud 9 as Julia supports recognizable syntax! The REPL gives user access to the system shell and to help mode, by pressing ; or ? after the prompt (preceding each command), respectively. It also keeps the history of commands, including between sessions. Code can be tested inside Julia's interactive session or saved into a file with a .jl extension and run from the command line by typing: $ julia Julia uses
UTF-8 UTF-8 is a character encoding standard used for electronic communication. Defined by the Unicode Standard, the name is derived from ''Unicode Transformation Format 8-bit''. Almost every webpage is transmitted as UTF-8. UTF-8 supports all 1,112,0 ...
and
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latices are found in nature, but synthetic latices are common as well. In nature, latex is found as a wikt:milky, milky fluid, which is present in 10% of all floweri ...
codes, allowing it to support common math symbols for many operators, such as ∈ for the in operator, typable with \in then pressing (i.e. uses
LaTeX Latex is an emulsion (stable dispersion) of polymer microparticles in water. Latices are found in nature, but synthetic latices are common as well. In nature, latex is found as a wikt:milky, milky fluid, which is present in 10% of all floweri ...
codes, or also possible by simply copy-pasting, e.g. possible for
sqrt In mathematics, a square root of a number is a number such that y^2 = x; in other words, a number whose ''square'' (the result of multiplying the number by itself, or y \cdot y) is . For example, 4 and −4 are square roots of 16 because 4 ...
and cbrt functions). Julia has support for
Unicode Unicode or ''The Unicode Standard'' or TUS is a character encoding standard maintained by the Unicode Consortium designed to support the use of text in all of the world's writing systems that can be digitized. Version 16.0 defines 154,998 Char ...
15.1 (Julia 1.12-DEV supports latest 16.0 release) for the languages of the world, even for source code, e.g. variable names (while it's recommended to use English for public code, and e.g. package names). Julia is supported by ''
Jupyter Project Jupyter (pronounced "Jupiter") is a project to develop open-source software, open standards, and services for interactive computing across multiple programming languages. It was spun off from IPython in 2014 by Fernando Pérez and Brian ...
'', an online interactive "notebooks" environment, and
Pluto.jl
', a "reactive notebook" (where notebooks are saved as pure Julia files), a possible replacement for the former kind. In addition Posit's (formerly
RStudio RStudio IDE (or RStudio) is an integrated development environment for R, a programming language for statistical computing and graphics. It's available in two formats: RStudio Desktop is a regular desktop application while RStudio Server runs ...
Inc's) Quarto publishing system supports Julia, Python, R and Observable
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
(those languages have official support by the company, and can even be weaved together in the same notebook document, more languages are unofficially supported). The REPL can be extended with additional modes, and has been with packages, e.g. with an
SQL Structured Query Language (SQL) (pronounced ''S-Q-L''; or alternatively as "sequel") is a domain-specific language used to manage data, especially in a relational database management system (RDBMS). It is particularly useful in handling s ...
mode, for database access, and ''RCall.jl'' adds an , to work with the
R language R, or r, is the eighteenth letter of the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''ar'' (pronounced ), plural ''ars''. The lette ...
. Julia's
Visual Studio Code Visual Studio Code, commonly referred to as VS Code, is an integrated development environment developed by Microsoft for Windows, Linux, macOS and web browsers. Features include support for debugging, syntax highlighting, intelligent code comp ...
extension provides a fully featured
integrated development environment An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
with "built-in dynamic autocompletion, inline results, plot pane, integrated REPL, variable view, code navigation, and many other advanced language features" e.g. debugging is possible, linting, and profiling.


Use with other languages

Julia is in practice
interoperable Interoperability is a characteristic of a product or system to work with other products or systems. While the term was initially defined for information technology or systems engineering services to allow for information exchange, a broader de ...
with other languages, in fact the majority of the top 20 languages in popular use. Julia can be used to call shared library functions individually, such as those written in C or Fortran, and packages are available to allow calling other languages (which do not provide C-exported functions directly), e.g. Python (with ''PythonCall.jl''), R, MATLAB, C# (and other .NET languages with ''DotNET.jl'', from them with ''JdotNET''), JavaScript, Java (and other JVM languages, such as Scala with ''JavaCall.jl''). And packages for other languages allow to call to Julia, e.g. from Python, R (to Julia 1.10.x currently possible),
Rust Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO(OH) ...
, Ruby, or C#. Such as with juliacall (part of ''PythonCall.jl'') to call from Python and a different ''JuliaCall'' package for calling, Julia up to 1.10.x, from R. Julia has also been used for hardware, i.e. to compile to
VHDL VHDL (Very High Speed Integrated Circuit Program, VHSIC Hardware Description Language) is a hardware description language that can model the behavior and structure of Digital electronics, digital systems at multiple levels of abstraction, ran ...
, as a
high-level synthesis High-level synthesis (HLS), sometimes referred to as C synthesis, electronic system-level (ESL) synthesis, algorithmic synthesis, or behavioral synthesis, is an automated design process that takes an abstract behavioral specification of a digital ...
tool, for example
FPGA A field-programmable gate array (FPGA) is a type of configurable integrated circuit that can be repeatedly programmed after manufacturing. FPGAs are a subset of logic devices referred to as programmable logic devices (PLDs). They consist of a ...
s. Julia has packages supporting markup languages such as
HTML Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets ( ...
(and also for
HTTP HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
),
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
,
JSON JSON (JavaScript Object Notation, pronounced or ) is an open standard file format and electronic data interchange, data interchange format that uses Human-readable medium and data, human-readable text to store and transmit data objects consi ...
and
BSON BSON (; Binary JSON) is a computer data interchange format extending JSON. It is a binary form for representing simple or complex data structures including associative arrays (also known as name-value pairs), integer indexed arrays, and a suit ...
, and for
database In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
s (such as PostgreSQL, Mongo, Oracle, including for TimesTen, MySQL, SQLite, Microsoft SQL Server, Amazon Redshift, Vertica, ODBC) and web use in general.


Package system

Julia has a built-in
package manager A package manager or package management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner. A package manager deals wi ...
and includes a default registry system. Packages are most often distributed as source code hosted on
GitHub GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
, though alternatives can also be used just as well. Packages can also be installed as binaries, using artifacts. Julia's package manager is used to query and compile packages, as well as managing environments. Federated package registries are supported, allowing registries other than the official to be added locally.


Implementation

Julia's core is implemented in Julia and C, together with C++ for the
LLVM LLVM, also called LLVM Core, is a target-independent optimizer and code generator. It can be used to develop a Compiler#Front end, frontend for any programming language and a Compiler#Back end, backend for any instruction set architecture. LLVM i ...
dependency. The code parsing, code-lowering, and bootstrapping were implemented in FemtoLisp, a Scheme dialect, up to version 1.10. Since that version the new pure-Julia stdlib package ''JuliaSyntax.jl'' is used for the parsing (while the old one can still be chosen) which improves speed and "greatly improves parser error messages in various cases". The LLVM compiler infrastructure project is used as the back end for generating optimized
machine code In computer programming, machine code is computer code consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). For conventional binary computers, machine code is the binaryOn nonb ...
for all commonly used platforms. With some exceptions, the
standard library In computer programming, a standard library is the library (computing), library made available across Programming language implementation, implementations of a programming language. Often, a standard library is specified by its associated program ...
is implemented in Julia.


Current and future platforms

Julia has tier 1
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
support, for 64-bit
Apple Silicon Apple silicon is a series of system on a chip (SoC) and system in a package (SiP) processors designed by Apple Inc., mainly using the ARM architecture family, ARM architecture. They are used in nearly all of the company's devices including Mac ...
Macs, natively (previously such
Apple M1 Apple M1 is a series of ARM-based system-on-a-chip (SoC) designed by Apple Inc., launched 2020 to 2022. It is part of the Apple silicon series, as a central processing unit (CPU) and graphics processing unit (GPU) for its Mac desktops and no ...
-based Macs were only supported by ''running in
Rosetta 2 Rosetta is a dynamic binary translator developed by Apple Inc. for macOS, an application compatibility layer between different instruction set architectures. It enables a transition to newer hardware, by automatically translating software. The ...
emulation''), and also fully supports Intel-based Macs.
Windows on ARM Windows on ARM may refer to: * Windows Mobile * Windows Phone * Windows RT, a deprecated ARM32 version of Windows 8/8.1 * Windows 10 on ARM, Windows 10 compiled for ARM64 devices * Windows 11 on ARM, Windows 11 compiled for ARM64 devices * Windows S ...
has no official support yet. Julia has "initial support of OpenBSD in julia." but more is coming to make it actually work: https://github.com/JuliaLang/julia/issues/53632 --> Julia has four support tiers. All
IA-32 IA-32 (short for "Intel Architecture, 32-bit", commonly called ''i386'') is the 32-bit version of the x86 instruction set architecture, designed by Intel and first implemented in the i386, 80386 microprocessor in 1985. IA-32 is the first incarn ...
processors completely implementing the
i686 The P6 microarchitecture is the sixth-generation Intel x86 microarchitecture, implemented by the Pentium Pro microprocessor that was introduced in November 1995. It is frequently referred to as i686. It was planned to be succeeded by the NetBur ...
subarchitecture are supported and all 64-bit
x86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set architecture, instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new ope ...
(aka
amd64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new operating modes: 64-bit mode an ...
), i.e. all less than about a decade old are supported. 64-bit
Armv8 ARM (stylised in lowercase as arm, formerly an acronym for Advanced RISC Machines and originally Acorn RISC Machine) is a family of RISC instruction set architectures (ISAs) for computer processors. Arm Holdings develops the ISAs and lice ...
(and later; i.e.
AArch64 AArch64, also known as ARM64, is a 64-bit version of the ARM architecture family, a widely used set of computer processor designs. It was introduced in 2011 with the ARMv8 architecture and later became part of the ARMv9 series. AArch64 allows ...
) processors are supported on first tier (for macOS); otherwise second tier on Linux, and ARMv7 (AArch32) on third tier. Hundreds of packages are GPU-accelerated: Nvidia GPUs have support with ''
CUDA In computing, CUDA (Compute Unified Device Architecture) is a proprietary parallel computing platform and application programming interface (API) that allows software to use certain types of graphics processing units (GPUs) for accelerated gene ...
.jl'' (tier 1 on 64-bit Linux and tier 2 on 64-bit Windows, the package implementing PTX, for compute capability 3.5 (Kepler) or higher; both require CUDA 11+, older package versions work down to CUDA 9). There are also additionally packages supporting other accelerators, such as Google's TPUs, and some Intel (integrated) GPUs, through '' oneAPI.jl'', and AMD's GPUs have support with e.g.
OpenCL OpenCL (Open Computing Language) is a software framework, framework for writing programs that execute across heterogeneous computing, heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), di ...
; and experimental support for the AMD
ROCm ROCm is an Advanced Micro Devices (AMD) software stack for graphics processing unit (GPU) programming. ROCm spans several domains, including general-purpose computing on graphics processing units (GPGPU), high performance computing (HPC), and h ...
stack. for several ARM platforms, from small Raspberry Pis to the world's fastest (at one point, until recently) supercomputer Fugaku's ARM-based A64FX.
PowerPC PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
LE (64-bit) has tier 3 support, meaning it "may or may not build", and its tier will lower to 4 for 1.12, i.e. then no longer builds/works. Julia has official (tier 2) support for 64-bit ARMv8 meaning e.g. newer 64-bit (ARMv8-A)
Raspberry Pi Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
computers work with Julia (e.g. the Pi Compute Module 4 has been used in space running Julia code). For many Pis, especially older 32-bit ones, it helps to cross-compile the user's Julia code for them. The older 32-bit ARMv7 Pis worked in older Julia versions (still do, but for latest Julia version(s), note downgraded from tier 3 to its current tier 4: "Julia built at some point in the past, but is known not to build currently."). The original
Raspberry Pi Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
1 has no official support (since it uses ARMv6 which has newer had a support tier; though some cut-down Julia has been known to run on that Pi). Pico versions of the Pi are known to no work (since using the M-profile Arm, not running under Linux; not yet supported). Julia is now supported in Raspbian while support is better for newer Pis, e.g., those with Armv7 or newer; the Julia support is promoted by the
Raspberry Pi Foundation The Raspberry Pi Foundation is a UK-based educational charity founded in 2008 to promote the study of computer science and related subjects globally, particularly among young people. It is best known for initiating the Raspberry Pi series of sing ...
. On some platforms, Julia may need to be compiled from source code (e.g., the original
Raspberry Pi Raspberry Pi ( ) is a series of small single-board computers (SBCs) developed in the United Kingdom by the Raspberry Pi Foundation in collaboration with Broadcom Inc., Broadcom. To commercialize the product and support its growing demand, the ...
), with specific build options, which has been done and unofficial pre-built binaries (and build instructions) are available. Julia has also been built for 64-bit
RISC-V RISC-V (pronounced "risk-five") is an open standard instruction set architecture (ISA) based on established reduced instruction set computer (RISC) principles. The project commenced in 2010 at the University of California, Berkeley. It transfer ...
(has tier 3 support), i.e. has some supporting code in core Julia. While Julia requires an
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
by default, and has no official support to run without, or on
embedded system An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is e ...
platforms such as
Arduino Arduino () is an Italian open-source hardware and open-source software, software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardwar ...
, Julia code has still been run on it, with some limitations, i.e. on a baremetal 16 
MHz The hertz (symbol: Hz) is the unit of frequency in the International System of Units (SI), often described as being equivalent to one event (or cycle) per second. The hertz is an SI derived unit whose formal expression in terms of SI base u ...
8-bit In computer architecture, 8-bit integers or other data units are those that are 8 bits wide (1 octet). Also, 8-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers or data bu ...
( ATmega328P) AVR-microcontroller Arduino with 2 KB RAM (plus 32 KB of flash memory).


Adoption

Julia has been adopted at many universities including
MIT The Massachusetts Institute of Technology (MIT) is a private research university in Cambridge, Massachusetts, United States. Established in 1861, MIT has played a significant role in the development of many areas of modern technology and sc ...
,
Stanford Leland Stanford Junior University, commonly referred to as Stanford University, is a private research university in Stanford, California, United States. It was founded in 1885 by railroad magnate Leland Stanford (the eighth governor of and th ...
,
UC Berkeley The University of California, Berkeley (UC Berkeley, Berkeley, Cal, or California), is a public land-grant research university in Berkeley, California, United States. Founded in 1868 and named after the Anglo-Irish philosopher George Berkele ...
, Ferdowsi University of Mashhad and the
University of Cape Town The University of Cape Town (UCT) (, ) is a public university, public research university in Cape Town, South Africa. Established in 1829 as the South African College, it was granted full university status in 1918, making it the oldest univer ...
. Large private firms across many sectors have adopted the language including
Amazon Amazon most often refers to: * Amazon River, in South America * Amazon rainforest, a rainforest covering most of the Amazon basin * Amazon (company), an American multinational technology company * Amazons, a tribe of female warriors in Greek myth ...
,
IBM International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
,
JP Morgan JPMorgan Chase & Co. (stylized as JPMorganChase) is an American multinational finance corporation headquartered in New York City and incorporated in Delaware. It is the largest bank in the United States, and the world's largest bank by mar ...
AI Research, and ASML. Julia has also been used by government agencies including
NASA The National Aeronautics and Space Administration (NASA ) is an independent agencies of the United States government, independent agency of the federal government of the United States, US federal government responsible for the United States ...
and the FAA, as well as every US national energy laboratory.


Scientific computing and engineering

*
Amazon Amazon most often refers to: * Amazon River, in South America * Amazon rainforest, a rainforest covering most of the Amazon basin * Amazon (company), an American multinational technology company * Amazons, a tribe of female warriors in Greek myth ...
, for
quantum computing A quantum computer is a computer that exploits quantum mechanical phenomena. On small scales, physical matter exhibits properties of wave-particle duality, both particles and waves, and quantum computing takes advantage of this behavior using s ...
and
machine learning Machine learning (ML) is a field of study in artificial intelligence concerned with the development and study of Computational statistics, statistical algorithms that can learn from data and generalise to unseen data, and thus perform Task ( ...
through Amazon SageMaker * ASML, for
hard real-time Real-time computing (RTC) is the computer science term for hardware and software systems subject to a "real-time constraint", for example from event to system response. Real-time programs must guarantee response within specified time constrai ...
programming with their machines * The Climate Modeling Alliance for climate change modeling *
CERN The European Organization for Nuclear Research, known as CERN (; ; ), is an intergovernmental organization that operates the largest particle physics laboratory in the world. Established in 1954, it is based in Meyrin, western suburb of Gene ...
, to analyze data from the
Large Hadron Collider The Large Hadron Collider (LHC) is the world's largest and highest-energy particle accelerator. It was built by the CERN, European Organization for Nuclear Research (CERN) between 1998 and 2008, in collaboration with over 10,000 scientists, ...
( LHCb experiment) * NASA and the
Jet Propulsion Laboratory The Jet Propulsion Laboratory (JPL) is a Federally funded research and development centers, federally funded research and development center (FFRDC) in La Cañada Flintridge, California, Crescenta Valley, United States. Founded in 1936 by Cali ...
use Julia to model spacecraft separation dynamics, analyze
TRAPPIST The Trappists, officially known as the Order of Cistercians of the Strict Observance (, abbreviated as OCSO) and originally named the Order of Reformed Cistercians of Our Lady of La Trappe, are a Religious order (Catholic), Catholic religious o ...
exoplanet An exoplanet or extrasolar planet is a planet outside the Solar System. The first confirmed detection of an exoplanet was in 1992 around a pulsar, and the first detection around a main-sequence star was in 1995. A different planet, first det ...
datasets, and analyze
cosmic microwave background The cosmic microwave background (CMB, CMBR), or relic radiation, is microwave radiation that fills all space in the observable universe. With a standard optical telescope, the background space between stars and galaxies is almost completely dar ...
data from the
Big Bang The Big Bang is a physical theory that describes how the universe expanded from an initial state of high density and temperature. Various cosmological models based on the Big Bang concept explain a broad range of phenomena, including th ...
* The Brazilian INPE, for space missions and
satellite A satellite or an artificial satellite is an object, typically a spacecraft, placed into orbit around a celestial body. They have a variety of uses, including communication relay, weather forecasting, navigation ( GPS), broadcasting, scient ...
simulations * Julia has also flown in space, on a small satellite, used for a GPS module. And Julia has also been used to design satellites constallations. * Embedded hardware to plan and execute flight of autonomous U.S.
Air Force Research Laboratory The Air Force Research Laboratory (AFRL) is a scientific research and development detachment of the United States Air Force Air Force Materiel Command, Materiel Command dedicated to leading the discovery, development, and integration of direct- ...
VTOL A vertical take-off and landing (VTOL) aircraft is one that can takeoff and landing, take off and land vertically without relying on a runway. This classification can include a variety of types of aircraft including helicopters as well as thrust- ...
drones


Pharmaceuticals and drug development

Julia is widely used for drug development in the pharmaceutical industry, having been adopted by
Moderna Moderna, Inc. ( ) is an American pharmaceutical and biotechnology company based in Cambridge, Massachusetts, that focuses on RNA therapeutics, primarily mRNA vaccines. These vaccines use a copy of a molecule called messenger RNA (mRNA) to carry inst ...
,
Pfizer Pfizer Inc. ( ) is an American Multinational corporation, multinational Pharmaceutical industry, pharmaceutical and biotechnology corporation headquartered at The Spiral (New York City), The Spiral in Manhattan, New York City. Founded in 184 ...
,
AstraZeneca AstraZeneca plc () (AZ) is a British-Swedish multinational pharmaceutical and biotechnology company with its headquarters at the Cambridge Biomedical Campus in Cambridge, UK. It has a portfolio of products for major diseases in areas includi ...
,
Procter & Gamble The Procter & Gamble Company (P&G) is an American multinational consumer goods corporation headquartered in Cincinnati, Ohio. It was founded in 1837 by William Procter and James Gamble. It specializes in a wide range of personal health/con ...
, and
United Therapeutics United Therapeutics Corporation is an American biotechnology company that develops pharmaceuticals and technologies related to organ transplantation, including xenotransplantation. Many of the company's products are focused towards lung disease an ...
.


Economics, finance, and political science

* The
Federal Reserve Bank of New York The Federal Reserve Bank of New York is one of the 12 Federal Reserve Banks of the United States. It is responsible for the Second District of the Federal Reserve System, which encompasses the New York (state), State of New York, the 12 norther ...
, for macroeconomic modeling in Julia since 2015, including estimates of
COVID-19 Coronavirus disease 2019 (COVID-19) is a contagious disease caused by the coronavirus SARS-CoV-2. In January 2020, the disease spread worldwide, resulting in the COVID-19 pandemic. The symptoms of COVID‑19 can vary but often include fever ...
shocks in 2021 * Also the
Bank of Canada The Bank of Canada (BoC; ) is a Crown corporations of Canada, Crown corporation and Canada's central bank. Chartered in 1934 under the ''Bank of Canada Act'', it is responsible for formulating Canada's monetary policy,OECD. OECD Economic Surve ...
,
central bank A central bank, reserve bank, national bank, or monetary authority is an institution that manages the monetary policy of a country or monetary union. In contrast to a commercial bank, a central bank possesses a monopoly on increasing the mo ...
, for macroeconomic modeling *
BlackRock BlackRock, Inc. is an American Multinational corporation, multinational investment company. Founded in 1988, initially as an enterprise risk management and fixed income institutional asset manager, BlackRock is the world's largest asset manager ...
, the world's largest asset manager, for financial time-series analysis *
Aviva Aviva plc is a British multinational insurance company headquartered in London, England. It has about 19 million customers across its core markets of the United Kingdom, Ireland and Canada. In the United Kingdom, Aviva is the largest general ...
, the UK's largest general insurer, for actuarial calculations *
Mitre Corporation The Mitre Corporation (stylized as The MITRE Corporation and MITRE) is an American not-for-profit organization with dual headquarters in Bedford, Massachusetts, and McLean, Virginia. It manages federally funded research and development centers ...
, for verification of published election results * Nobel laureate Thomas J. Sargent, for macroeconometric modeling


See also

*
Comparison of numerical-analysis software The following tables provide a comparison of numerical analysis software. Applications General Operating system support The operating systems the software can run on natively (without emulation). Language features Colors indicate ...
*
Comparison of statistical packages The following tables compare general and technical information for many statistical analysis software packages. General information Operating system support ANOVA Support for various ANOVA methods Regression Support for various regression ...
*
Differentiable programming Differentiable programming is a programming paradigm in which a numeric computer program can be differentiated throughout via automatic differentiation. This allows for gradient-based optimization of parameters in the program, often via gradient ...
* JuMP an algebraic modeling language for mathematical optimization embedded in Julia *
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (prog ...
* Nim *
Ring (The) Ring(s) may refer to: * Ring (jewellery), a round band, usually made of metal, worn as ornamental jewelry * To make a sound with a bell, and the sound made by a bell Arts, entertainment, and media Film and TV * ''The Ring'' (franchise), a ...
*
Mojo Mojo may refer to: * Mojo (African-American culture), a magical charm bag used in Hoodoo Arts, entertainment and media Film and television * ''Mojo'' (2017 film), a 2017 Indian Kannada drama film written and directed by Sreesha Belakvaadi * '' ...


References


Further reading

* * * * Tobin A Driscoll and Richard J. Braun (Aug. 2022). "Fundamentals of Numerical Computation: Julia Edition". SIAM. . * C. T. Kelley (2022). "Solving Nonlinear Equations with Iterative Methods: Solvers and Examples in Julia", SIAM. . * * Clemens Heitzinger (2022): "Algorithms with Julia", Springer, ISBN 978-3-031-16559-7.


External links

* * {{Authority control 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 and open source compilers Free and open source interpreters Free computer libraries Free data analysis software Free data and information 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