|Julia 1.0 Released|
|Written by Kay Ewbank|
|Friday, 10 August 2018|
Julia 1.0 has been released after almost a decade of work. Julia has been designed to be open source, fast, dynamic, usable for general programming and more specialist areas such as statistics.
Julia is a dynamic language for technical computing that is especially good at running MATLAB and R-style programs. Development began on Julia at MIT in 2009 by Professor of Computer Science Alan Edelman with Jeff Bezanson, Stefan Karpinski, and Viral B. Shah.
When Julia was first announced, the list of what the developers wanted was impressively ambitious:
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.
Now that version 1.0 has been released, the developers say that a good performance has been achieved because Julia was designed from the beginning for high performance. Julia programs compile to efficient native code for multiple platforms via LLVM. Julia is also Julia is dynamically-typed and has good support for interactive use. Its typing is optional, and its syntax is designed to be useful for math.
For general use the standard library provides asynchronous I/O, process control, logging, profiling, and a package manager. The changes from version 0.6 start with the new built-in package manager that is faster than the previous version, and that supports per-project package environments.
The new version also provides anew canonical representation for missing values to make it easier for developers to represent and work with missing data. Any generic collection type can support missing values simply by allowing elements to include the pre-defined value
Other improvements include changes to the built-in
"Your program won’t fail hours or days into a job because of a single stray byte of invalid Unicode. All string data is preserved while indicating which characters are valid or invalid."
Another improvement is the ability to overload the dot operator, so that types can use the
or email your comment to: email@example.com