Can Julia give us everything?
Julia - Wooden 3D rendered letters/message image via Shutterstock
This programming language compiles straight to machine code as it runs, it seems to be a valid alternative to Hadoop and it might follow in the footsteps of C speed wise. Does Julia, a four-year-old programming language, have what it takes to compete with the industry’s finest?
Last year, Viral Shah, one of Julia’s creators, told Venture Beat that even though big tech companies have not adopted Julia because “they tend to have their own programming languages,” the team was seeing rapid adoption in finance and financial modeling services, and also in business logistics and companies interested in high-performance computing (HPC). One year later, Keith Lubell, CTO at Berkery Noyes, a New York-based investment bank told Waters Technology that Wall Street is starting to notice Julia.
Julia’s biggest fan — Federal Reserve Bank of New York
Julia has gathered quite an impressive portfolio of positive reviews. If you take a look at Julia Computing, a consultancy which promises to help firms looking to use the Julia language, you will see a lot of praise with regard to this programming language’s speed, high performance, and flexibility. More importantly, the Federal Reserve Bank of New York chose to run its DSGE model (dynamic stochastic general equilibrium) —used for forecasting and policy analysis— on Julia and ditch MATLAB. In the official statement announcing the shift to Julia, FRBNY stated that even though MATLAB is “a widely used, mature programming language” which has served their purposes very well for a long time, Julia has some irresistible benefits such as:
- it is more accessible to users from academic institutions or organizations without the resources for purchasing a license
- it boasts performance as fast as that of languages like C or Fortran
- it is still simple to learn
According to FRBNY, after testing their code, they discovered that “the model estimation is about ten times faster with Julia than before, a very large improvement.”
What is Julia and why was it created?
In a blog post published four years ago by the creators of this programming language, Jeff Bezanson, Alan Edelman, Stefan Karpinski, and Viral Shah revealed that every language language they used had a trade-off so they decided to develop something that has it all.
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?)
While we’re being demanding, we want something that provides the distributed power of Hadoop — without the kilobytes of boilerplate Java and XML; without being forced to sift through gigabytes of log files on hundreds of machines to find our bugs. We want the power without the layers of impenetrable complexity. We want to write simple scalar loops that compile down to tight machine code using just the registers on a single CPU. We want to write
A*Band launch a thousand computations on a thousand machines, calculating a vast matrix product together.
Julia’s biggest problem right now
— the community. Julia is four years old and even though it is starting to receive attention from the financial industry, it has failed to grab developers’ attention. Julia’s community is rather small but that is fully understandable since its rivals have had decades to loyalize users.
Waters Technology cited Lubell as saying that “there is a fear that a language with a larger user base like Python could potentially improve its performance, and then leave Julia in the dust.”
What’s next for Julia
The creators of this programming language have been busy working on version 0.5, which was released last month. This “pivotal release introduced more transformative features than any release since the first official version —several of these features set the stage for even more to come in the lead up to Julia 1.0.”
There are now over one thousand registered packages but if this programming language wants to win developers’ hearts, it will have to step up its game.