Ossity is our latest product. It's a search hub and web research tool. Try it now for free!
This page has been Textised! The original page address was https://julialang.org/
The Julia Programming Language
Dynamic
Julia is dynamically typed, feels like a scripting language, and has good support for interactive use, but can also optionally be separately compiled.
Composable
Open source
Julia is an open source project with over 1,000 contributors. It is made available under the MIT license. The source code is available on GitHub.
General Computing
[Image: minesweeper gameover]
Build, Deploy or Embed Your Code
Parallel Computing
[Image: parallel prefix graphical result]
Parallel and Heterogeneous Computing
The Julia compiler can also generate native code for GPUs. Packages such as DistributedArrays.jl and Dagger.jl provide higher levels of abstraction for parallelism.
Distributed Linear Algebra is provided by packages like Elemental.jl and TSVD.jl. MPI style parallelism is also available through MPI.jl.
Machine Learning
[Image: cartpole reinforcement learning problem visualization]
Scalable Machine Learning
Scientific Computing
[Image: Lorenz Attractor visualization]
Rich Ecosystem for Scientific Computing
Data Science
[Image: Visualization of weighted data changing as more data is plotted]
Interact with your Data
The Julia data ecosystem provides DataFrames.jl to work with datasets, and perform common data manipulations. CSV.jl is a fast multi-threaded package to read CSV files and integration with the Arrow ecosystem is in the works with Arrow.jl. Online computations on streaming data can be performed with OnlineStats.jl.
The Queryverse provides query, file IO and visualization functionality. In addition to working with tabular data, the JuliaGraphs packages make it easy to work with combinatorial data.
Julia can work with almost all databases using JDBC.jl and ODBC.jl drivers. In addition, it also integrates with the Spark ecosystem through Spark.jl.
Visualization
[Image: Visualization of waves in 3D, as a heatmap, and on the x y axis]
Data Visualization and Plotting
Data visualization has a complicated history. Plotting software makes trade-offs between features and simplicity, speed and beauty, and a static and dynamic interface. Some packages make a display and never change it, while others make updates in real-time.
Plots.jl is a visualization interface and toolset. It provides a common API across various backends, like GR.jl, PyPlot.jl, and PlotlyJS.jl. Makie.jl is a sophisticated package for complex graphics and animations. Users who are used to "grammar of graphics" plotting APIs should take a look at Gadfly.jl. VegaLite.jl provides the Vega-Lite grammar of interactive graphics interface as a Julia package. For those who do not wish to leave the comfort of the terminal, there is also UnicodePlots.jl.
Lorenz Attractor in Julia
function fill_twos!(a)
for i=1:length(a)
a[i] = 2
end
end
function fast_strange_twos(n)
a = Array(randbool() ? Int64 : Float64, n)
fill_twos!(a)
return a
end
Julia has been downloaded over 45 million times and the Julia community has registered over 10,000 Julia packages for community use.
These include various mathematical libraries, data manipulation tools, and packages for general purpose computing. In addition to these, you can easily use libraries from Python, R, C/Fortran, C++, and Java.
If you do not find what you are looking for, ask on Discourse, or even better, contribute one!
Textise: Back to top |