You know what’s the cool new language on the block? Julia! This is a completely fresh approach to technical computing. It sure is a high level and high-performance language but what you don’t know is that it also provides a sophisticated compiler. The syntax is good old familiar one and some amazing features tell us that it is a star in the making. They call it the ‘language of the future’ and here’s why.
- Julia has the best-of-breed open source C and Fortran libraries for linear algebra, random number generation, signal processing, and string processing.
- Julia enables the ability of multiple dispatches. Which means you can define function behavior across many combinations of argument types.
- It provides the just-in-time compiler which allows you to cut out the compilation cycle while getting a major speed boost over Python and R.
- Julia is highly readable. The functions are first class objects and programming in Julia is very “Lisp-like.”
- Julia is inherently designed for parallel computing and works pretty well. It provides a number of key building blocks for distributed computation, making it flexible enough to support a number of styles of parallelism.
- You can call Python functions using the PyCall package from Julia.
- Metaprogramming. Julia is “homoiconic” which means Julia code can be represented as a data structure within the language. Hence, you can write programs that automatically generate other programs. Killer, isn’t it?
If I were to sum it up, I wouldn’t. Why? Because Julia’s Manifesto does it all up beautifully. ‘Why did they create Julia?’, is a question crisply answered on their website. Let me quote some words for you:
“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.
(Did we mention it should be as fast as C?)”
They created what they said and there’s more to come. No wonder they call Julia the language of tomorrow.