Software

Julia 0.7 arrives but let's call it 1.0: Data science code language hits milestone on birthday

You-hoo, Pythonistas and Rsters

By Thomas Claburn in San Francisco

26 SHARE

Julia, the open-source programming language with a taste for science, turned 1.0 on Thursday, six years after its public debut in 2012. The occasion was presented on YouTube, live from JuliaCon 2018 in London.

Created by Jeff Bezanson, Stefan Karpinski, Viral Shah, and Alan Edelman, the language was designed to excel at data science, machine learning, and scientific computing.

That's a niche – a rather substantial one these days – also served by Python and R, among other languages. However, the Julia aspires to be better, undaunted by being ranked 50 on Tiobe's programming language popularity index for August 2018. For what it's worth, Python presently sits at number 4 while R comes in at 18.

Six years ago, Julia's creators framed their goals thus:

We want a language that’s open source, with a liberal license. We want the speed of C with the dynamism of Ruby. We want a language that’s homoiconic, with true macros like Lisp, but with obvious, familiar mathematical notation like Matlab. We want something as usable for general programming as Python, as easy for statistics as R, as natural for string processing as Perl, as powerful for linear algebra as Matlab, as good at gluing programs together as the shell. Something that is dirt simple to learn, yet keeps the most serious hackers happy. We want it interactive and we want it compiled.

They're targeting perfection and, as might be expected, there's some work still to be done, particularly on how Julia copes with errors (exception handling).

In a julialang.org post announcing the milestone, the minders of the language claim to have achieved some of their goals.

Dynamic

Julia is fast, they say, and can target multiple platforms via LLVM. It implements a multi-dispatch design and comes with a standard library full of niceties like asynchronous I/O and support for parallelism. It's dynamically typed (for those who'd leave typing on autopilot) and optionally typed (for those who want to declare data types, but only at their discretion). It's usable either as general purpose programming language or as a technically-focused tool, thanks to its broad support for numeric data types.

The major achievement of version 1.0 is API stability. Previous version bumps included breaking changes. And 1.0 isn't guaranteed to work with pre-1.0 packages, either. But going forward, code written for Julia 1.0 should work with Julia 1.1, 1.2 and so on, at least until 2.0.

There's a new built-in package manager and support for missing values in datasets. The String type has been changed to allow it to survive arbitrary data. The language's broadcasting capability (useful for binary operations on arrays of different sizes) has been extended to custom data types. And support for named tuples has been added.

The full list of changes is documented in the 0.7.0 release notes – version 0.7 is being released concurrently with 1.0, the only difference between the two being the removal of deprecation warnings (useful for developers who need to update older packages). So this is really the 0.7 release. We won't say anything if you don't.

Julia (like any language) has both fans and detractors. Some people dislike the fact Julia indexes start at one (like Lua) rather than at zero (like Python, C, and just about everything else). However, it does offer the ability to change that. Flexibility appears to be one of Julia's virtues. ®

Sign up to our NewsletterGet IT in your inbox daily

26 Comments

More from The Register

Veracode Software gobbled by private equity house Thoma Bravo for $950m

Home of McAfee and SonicWall slurps app security testing biz from Broadcom

Red Hat sticks its storage software cap on Supermicro hardware

Software-defined storage meets single SKU-ery

IBM's Red Hat gobble: Storage will be a test of Big Blue's commitment to open-source software

Comment Bringing home the bacon

The quickening: Qumulo speed with software boost for new kit

I was born in 1518... we mean.. machine learning-driven caching speedup

Buggy software could lock a Jeep's cruise control

How's that 'self-driving' vision coming along, again?

Open-source software supply chain vulns have doubled in 12 months

Hackers 'mainlining' vulns into projects – report

Facebook can't root out fake news and hate talk, but – oh look – it has software to catch bugs

Plans to open source app, server-side code-fixing tool

Killer performance numbers on software and flash drives, StorONE ...

Would be good to see some independent tests, though

Oops: Cisco accidentally leaked in-house Dirty COW exploit code with biz conf call software

Critical bugs patched in switches, messaging, analytics

JFrog picks up $165m in funding to realise its liquid software vision

Keeping code and cash flowing through the firm's pipelines