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
