Julia language, which has grown to become one of the most loved languages among data scientists and developers has released a new version to its earlier Julia 1.4. The new version offers a ton of new features and performance improvements for the developer community.
It has brought a lot of new developments such as struct layout and allocation optimisations, multithreading API stabilisation and improvements, latency improvements, fixing bugs and more. It has also brought about some impressive algorithmic improvements for some popular cases such as generating normally-distributed double-precision floats.
As the blog post states, this release brings one of the major and long-desired optimisations that can significantly reduce heap allocations in some workloads. The earlier version had a significant limitation when it came to layout optimisations for immutable objects — if an immutable object pointed to a heap-allocated, mutable object, it would itself need to be heap-allocated. This has been fixed in Julia 1.5 as it allows the compiler to track multiple roots inside object fields.
Improving upon its support for parallelism, it has introduced multithreading API stabilisation and improvements. The company said that with this release, they are marking most of the thread API as stable. It offers improved thread-safety of some top-level expressions such as type definitions, global assignments, modules and more. It also offers improvements to task switch performance and more.
It has also released convenient shorthand that has already become popular in several other languages, such as TypeScript.
As the blog post notes, after a lengthy discussion and several designs considered and prototyped, it has settled for the following solution in v1.5 such as making the REPL behave like IJulia, and Julia versions 0.6 or earlier, keeping the 1.0 behaviour in files, to avoid breaking anybody’s code, printing a warning if code in a file would behave differently than in the REPL and more.
The new release has made Pkg protocol the new default, which allows downloading new versions of package registries, package tarballs and artefacts—everything that’s needed to install and use packages from a single place. Now by default, everything is downloaded from https://pkg.julialang.org. It avoids challenges such as vanishing resources, lack of insights, firewall problems, performance and more.
Julia recently hosted JuliaCon allowing the attendees to deep-dive into the latest developments brought by them.