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