Julia: A Modern Day Computing Language
What we have here today is the most youngest and modern day programming language, Julia. Has anyone of you have watched the movie titled ‘Julie and Julia’? Its one of my favorite movie and I find it pretty much related to the overall growth of this company except cooking..obviously! Like in the movie, this company has also combines the features of best of many known languages like C, Matlab, Fortran etc. And its equipped with modern day tools for better performance.
Julia is a high-level, high-performance dynamic programming language for technical computing, and if you have worked with any other programming language then you will surely be comfortable with its syntax. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library.
The co-founders of this language, Keno Fischer, Viral Shah, Stefan Karpinski, Alan Edelman, and Jeff Bezanson, had also launched their startup in 2015, Julia Computing LLC, to provide training, commercial support, and consulting for those who want to use the language.
The company has explained this language as follows:
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 (i.e., has the same representation of code and data), 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. … 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*B and launch a thousand computations on a thousand machines, calculating a vast matrix product together.
Many organizations have already used this programming language, like the US Federal Aviation Administration (FAA), the New York Fed, and Blackrock Capital are among the many that have used the language. It is being used across sectors — financial services, 3D printing, semiconductors. It has entered the classrooms of several computer science colleges around the world.
You need a new modern-day language to process the huge data that is aggregated as part of internet-of-things and the cloud, says Shah.
Features of Julia Programming Language
- High Performance JIT(ust In Time) compiler
Julia’s LLVM base JIT compiler allows Julia to approach and often match the performance of C.
- Designed for Parallelism and Cloud Computing
Julia is not rigid and doesn’t force its user to follow a particular kind of parallelism, in fact, it offers them a number of key building blocks for Distributed Computation. Parallel programming in Julia is built on two primitives: remote references and remote calls. A remote reference is an object that can be used from any process to refer to an object stored on a particular process. A remote call is a request by one process to call a certain function on certain arguments on another (possibly the same) process.
- Free, and Open-Source Programming Language
The software is given free while the company makes money from services and consultancy. The core of the Julia implementation is licensed under the MIT license..
- Syntax similar to MATLAB
Provides developer some convenience while coding for mathematical calculations.
- C functions called directly (no wrappers or special APIs needed)
- Built-in package manager
- Call Python functions: use the PyCall package
- Powerful shell-like capabilities for managing other processes
- Automatic generation of efficient, specialized code for different argument types
- Lisp-like macros and other metaprogramming facilities
If you are interested to know more about this language then you can view the videos available online, of their various workshops and media announcements.