Julia (programming language)

[19][20][21] 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[17][22] (with support for ahead-of-time compilation[23][24][25]) and an efficient garbage collection implementation.

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's Visual Studio Code extension provides a fully-featured integrated development environment with "built-in dynamic autocompletion, inline results, plot pane, integrated REPL, variable view, code navigation, and many other advanced language features"[28] e.g. debugging is possible, linting, and profiling.

[29][30][31][32] Work on Julia began in 2009, when Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and Alan Edelman set out to create a free language that was both high-level and fast.

"[20] Bezanson said he chose the name on the recommendation of a friend,[33] then years later wrote: Maybe julia stands for "Jeff's uncommon lisp is automated"?

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 interface was simplified.

[42] Julia 1.6 was the largest release since 1.0, and it was the long-term support (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".

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

[51] The event audience has grown from a few dozen people to over 28,900 unique attendees[52] during JuliaCon 2020, which took place virtually.

JuliaCon 2021 also took place virtually[53] with keynote addresses from professors William Kahan, the primary architect of the IEEE 754 floating-point standard (which virtually all CPUs and languages, including Julia, use),[54] Jan Vitek,[55] Xiaoye Sherry Li, and Soumith Chintala, a co-creator of PyTorch.

[57] Jeremy Kepner at MIT Lincoln Laboratory was the founding sponsor of the Julia project in its early days.

[64] JuliaHub, Inc. was founded in 2015 as Julia Computing, Inc. by Viral B. Shah, Deepak Vinchhi, Alan Edelman, Jeff Bezanson, Stefan Karpinski and Keno Fischer.

[65][66] In June 2017, Julia Computing raised US$4.6 million in seed funding from General Catalyst and Founder Collective,[67] the same month was "granted $910,000 by the Alfred P. Sloan Foundation to support open-source Julia development, including $160,000 to promote diversity in the Julia community",[68] and in December 2019 the company got $1.1 million funding from the US government to "develop a neural component machine learning tool to reduce the total energy consumption of heating, ventilation, and air conditioning (HVAC) systems in buildings".

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.

AEI HorizonX is a venture capital investment platform formed in partnership with The Boeing Company, which uses Julia.

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.

Additional libraries allow users to call to or from other languages such as Python,[84] C++,[85][86] Rust, R,[87] Java[88] and to use with SQL.

[93] The Julia official distribution includes an interactive command-line read–eval–print loop (REPL),[94] with a searchable history, tab completion, and dedicated help and shell modes,[95] which can be used to experiment and test code quickly.

[96] The following fragment represents a sample session example where strings are concatenated automatically by println:[97] The REPL gives user access to the system shell and to help mode, by pressing ; or ?

[76] Julia has packages supporting markup languages such as HTML (and also for HTTP), XML, JSON and BSON, and for databases (such as PostgreSQL,[108] Mongo,[109] Oracle, including for TimesTen,[110] MySQL, SQLite, Microsoft SQL Server,[109] Amazon Redshift, Vertica, ODBC) and web use in general.

[118] The LLVM compiler infrastructure project is used as the back end for generating optimized machine code for all commonly-used platforms.

[127][128] Julia has been built for several ARM platforms, from small Raspberry Pis to the world's fastest (at one point, until recently) supercomputer Fugaku's ARM-based A64FX.

While Julia requires an operating system by default, and has no official support to run without or on embedded system platforms such as Arduino, Julia code has still been run on it, with some limitations, i.e. on a baremetal 16 MHz 8-bit (ATmega328P) AVR-microcontroller Arduino with 2 KB RAM (plus 32 KB of flash memory).

Large private firms across many sectors have adopted the language including Amazon, IBM, JP Morgan AI Research,[136] and ASML.

[18][137] Julia is widely used for drug development in the pharmaceutical industry, having been adopted by Moderna, Pfizer, AstraZeneca, Procter & Gamble, and United Therapeutics.