Julia is a high-level, high-performance dynamic programming language for technical computing
with syntax that is familiar to users of other technical computing environments.
It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and
an extensive mathematical function library.
The library, largely written in Julia itself, also integrates mature, best-of-breed C and
Fortran libraries for linear algebra, random number generation, signal processing, and string processing.
In addition, the Julia developer community is contributing a number of external packages through
Julia's built-in package manager at a rapid pace.
IJulia, a collaboration between the IPython and Julia communities, provides a powerful browser-based
graphical notebook interface to Julia.
Julia programs are organized around multiple dispatch; by defining functions and overloading them for
different combinations of argument types, which can also be user-defined.
A Summary of Features:
* Multiple dispatch: providing ability to define function behavior across many combinations of argument types
* Dynamic type system: types for documentation, optimization, and dispatch
* Good performance, approaching that of statically-compiled languages like C
* Built-in package manager
* Lisp-like macros and other metaprogramming facilities
* Call Python functions: use the PyCall package
* Call C functions directly: no wrappers or special APIs
* Powerful shell-like capabilities for managing other processes
* Designed for parallelism and distributed computation
* Coroutines: lightweight "green" threading
* User-defined types are as fast and compact as built-ins
* Automatic generation of efficient, specialized code for different argument types
* Elegant and extensible conversions and promotions for numeric and other types
* Efficient support for Unicode, including but not limited to UTF-8
* MIT licensed: free and open source