Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Numerical Computing Dynamic Language Julia 1.0 Released

Numerical Computing Dynamic Language Julia 1.0 Released

Leia em Português

This item in japanese

The latest version of Julia 1.0, a high-level, high-performance dynamic language for technical computing, includes language API stability and a new built-in package manager.

The Julia computing team announced the release of Julia version 1.0 last week at the JuliaCon 2018 event, held in London. This is the first complete and stable version of Julia and according to the team, this release is the most important milestone since it was introduced back in February 2012.

Julia 1.0 aims to deliver a performance comparable to C++ language, with the productivity and ease of use of Python and R languages. Last year the researchers used Julia on a supercomputer to catalog and analyze 200 million astronomical objects in 15 minutes — one thousand times faster than the previous rate.

In regards to the new language API stability, the code you write for Julia 1.0 will continue to work in subsequent versions of the language (such as Julia 1.1, 1.2, etc). 

The new built-in package manager makes it easier to install packages and their dependencies. It also supports per-project package environments and records the exact state of a working application to share with others. Finally, the redesign also introduces support for private packages and package repositories.

Julia also provides a new canonical representation for missing values. Being able to represent and work with missing data is fundamental to statistics and data science. Any generic collection type can support missing values by allowing elements to include the pre-defined value missing.

In Julia 1.0, broadcasting, already a core language feature, is simple to extend to custom types and implement optimized computations on GPUs and other vectorized hardware.

Julia is a dynamically-typed programming language and has good support for interactive use. Julia programs compile to native code for multiple platforms via LLVM. Julia has support for descriptive datatypes, and type declarations can be used to clarify and solidify programs. The language is a good choice for numerical computing programming use cases, which in turn makes it a good choice for math-related functions. Serveral numeric datatypes are supported and parallelism is available out of the box.

The multiple dispatch feature in Julia language makes it easy to express many object-oriented and functional programming patterns. The standard library provides asynchronous I/O, process control, logging, profiling, and a package manager. Multiple dispatch is a natural fit for defining number and array like datatypes. The default Julia packages include matrices of unit quantities, and data table columns of currencies and colors.

Julia is based on the MIT license model. You can run Julia either in the terminal using the built-in Julia command line, or in the browser on JuliaBox website with Jupyter notebooks.

For more information on the latest release, checkout Julia 1.0 Documentation or download it to try it. Other useful resources include the Julia Packages, source code, discussion forum and the Slack channel.

Rate this Article