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


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 post announcing the milestone, the minders of the language claim to have achieved some of their goals.


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


More from The Register

Open-source enterprise software slinger Red Hat bravely reveals that IT bosses love open-source enterprise software

Hold the front page

'Software delivered to Boeing' now blamed for 737 Max warning fiasco

Engineers knew of problem in 2017. Management didn't until after fatal crash

Pure Storage swallows Swedish filer biz for its, er, purely file storage software

Gulps down firm for undisclosed number of kronor

NPM today stands for Now Paging Microsoft: GitHub just launched its own software registry

GitHub Package Registry provides libraries and other bits and bytes for Java, JavaScript, Ruby, .NET and more

Refactoring whizz: Good software shouldn't cost the earth – it's actually cheaper to build

Interview Repeat after me, better software costs less...

Apple fakes intimacy in our dead-eyed digital world with software fix

You looking at me, FaceTime?

Red Hat shoves OpenShift in VMware's software-defined data centre stack

New reference architecture rolls together containers and VMs

CAST links arms with Software Heritage to tease out your open-source ancestry

Who do you think you are?

We asked, you answered: The truth about software reliability

Research results It's not just about quality

Cisco snaps up Brit networking software bods Ensoft

From main customer to owner