aboutsummaryrefslogtreecommitdiff
path: root/development/julia/README
blob: da9edfb00c3c61dca6f7d1a550011d68f2c58bb8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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