Julia 1.2 gets star for special interest computations

Julia 1.2 gets star for special interest computations

The Julia developers have released version 1.2 of their technical computing language that largely contains standard library changes and adds unicode 12.0 support, a new unary operator and more ways to use argument splatting into the mix.

After discussing it for a while, the new release includes \star (or ⋆) as a new unary operator to solve mathematical problems which make the computation of a Moyal product or use of Hodge star operations necessary. Julia 1.2 also allows argument splatting in calls to the pseudo function new in constructors and should be able to work with unicode 12.0 – support for 12.1 is supposed to land in version 1.3.

Since multi-threading is an integral part of the language, the Julia team also invested some time to introduce a thread-safe version of the Condition type. It can be accessed using Threads.Condition and makes, amongst other things, task scheduling primitives thread-safe. Another improvement along those lines is the capability to schedule and switch tasks during @threads loops.

A quick look into the news file of the project lists quite a few changes to the language’s standard library. For example do startswith and endswith now accept a regular expression for the second argument, while extrema and strip are able to receive a function argument, making its behaviour more consistent with minimum and maximum or lstrip and rstrip respectively.

Julia, for those not so much into more data-science oriented languages, has been in development since 2009 and saw its public launch in 2012. According to this year’s user and developer survey, Julia is mostly used in research scenarios and especially appreciated for its performance and ease of use. The results also suggest that the language is mostly used in fields such as data science, engineering, and machine learning at this point in time, which is pretty much what its makers intended

Technical problems the community still sees are the maturity and maintenance of packages, while the package environment is described as at least somewhat robust by most.

Looking forward, it shouldn’t take too long until version 1.3 is ready for prime time and – with it – the opportunity to add methods that allow you to abstract types. The next minor version already has one release candidate to its name and the milestone view of the project only mentions very few issues to fix until the team will move on to Julia 1.4. Half of those problems, however, are performance related regressions a fact that means the number of things to tackle could go up once larger parts of the community start getting to grips with version 1.2.