Features of Julia


Julia is really good at scientific computing but is not restricted to just that, as it can also be used for web and general purpose programming. Some of Julia's features are mentioned as follows:

  • Julia is a modern, expressive, high-performance programming language designed for scientific computation and data manipulation.
  • It is designed for distributed and parallel computation.
  • Julia provides an extensive library of mathematical functions with great numerical accuracy.
  • Julia gives the functionality of multiple dispatch. It will be explained in detail in coming chapters. Multiple dispatch refers to using many combinations of argument types to define function behaviors. Julia provides efficient, specialized, and automatic generation of code for different argument types.
  • Matlab is relatively fast (although less than Julia) and it is easy to learn and use, but it is rather costly to purchase and its age is starting to show.
  • While Julia’s ecosystem is not as mature as C++, Python or R’s, the growth rate of the penetration of the language is increasing.
  • The Pycall package enables Julia to call Python functions in its code and MATLAB packages using the MATLAB.jl package. Functions and libraries written in C can also be called directly without any need for APIs or wrappers.
  • Julia provides powerful shell-like capabilities for managing other processes in the system.
  • Unlike other languages, user-defined types in Julia are compact and quite fast as built-ins.
  • Scientific computations makes great use of vectorized code to gain performance benefits. Julia eliminates the need to vectorize code to gain performance. Devectorized code written in Julia can be as fast as the vectorized code.
  • It uses lightweight green threading, also known as tasks or coroutines, cooperative multitasking, or one-shot continuations.
  • Julia has a powerful type system. The conversions provided are elegant and extensible.
  • It has efficient support for Unicode
  • It has facilities for metaprogramming and Lisp-like macros.
  • It has a built-in package manager (Pkg).
  • It's free and open source with an MIT license.
  • Elegant and extensible conversions and promotions for numeric and other types.
  • Free and open source (MIT licensed).
  • Powerful shell-like capabilities for managing other processes.