Julia 1.0

Translations: Simplified Chinese, Traditional Chinese, Spanish

The much anticipated 1.0 release of Julia is the culmination of nearly a decade of work to build a language for greedy programmers. JuliaCon2018 celebrated the event with a reception where the community officially set the version to 1.0.0 together.

Julia was first publicly announced with a number of strong demands on the language:

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.

A vibrant and thriving community has grown up around this language, with people from all around the world iteratively refining and shaping Julia in pursuit of that goal. Over 700 people have contributed to Julia itself and even more people have made thousands of amazing open source Julia packages. All told, we have built a language that is:

Try Julia by downloading version 1.0 now. If you’re upgrading code from Julia 0.6 or earlier, we encourage you to first use the transitional 0.7 release, which includes deprecation warnings to help guide you through the upgrade process. Once your code is warning-free, you can change to 1.0 without any functional changes. The registered packages are in the midst of taking advantage of this stepping stone and releasing 1.0-compatible updates.

The single most significant new feature in Julia 1.0, of course, is a commitment to language API stability: code you write for Julia 1.0 will continue to work in Julia 1.1, 1.2, etc. The language is “fully baked.” The core language devs and community alike can focus on packages, tools, and new features built upon this solid foundation.

But Julia 1.0 in not just about stability, it also introduces several new, powerful and innovative language features. Some of the new features since version 0.6 include:

There are countless other improvements, both large and small. For a complete list of changes, see the 0.7 NEWS file. In our original “Why We Created Julia” blog post in 2012, we wrote

It’s not complete, but it’s time for a 1.0 release—the language we’ve created is called Julia.

We may have jumped the gun a bit with mentioning an impending 1.0 release, but the time has finally arrived and it is a heck of a release. We are truly proud of what’s been accomplished by the thousands of people who have contributed in so many ways to this truly modern language for numerical and general programming.