Skip to content
Stefan Karpinski edited this page Jun 2, 2011 · 89 revisions
               _
   _       _ _(_)_     |
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |
  | | | | | | |/ _` |  |   A fresh approach to technical computing.
  | | |_| | | | (_| |  |
 _/ |\__'_|_|_|\__'_|  |
|__/                   |

Resources

Overview

Julia is a very high-level dynamic language with simple, optional typing, multiple dispatch, and good performance, achieved by using just-in-time (JIT) compilation, implemented using LLVM. The language is multi-paradigm, combining features of functional, object-oriented, and imperative programming, featuring multiple dispatch as the central unifying language feature (the carpet that ties the room together).

Some advantages of Julia over comparable systems include:

  • Free and open source (BSD licensed)
  • High performance just-in-time compilation and execution
  • Consistent and powerful generic function model
  • User-defined types are as fast and efficient as built-ins
  • Simple syntax for defining new types
  • Designed for parallelism and distributed computation
  • Multi-dimensional array comprehensions
  • Lightweight "green" threading (coroutines)
  • Powerful but unobstrusive type system via optional type annotations
  • Elegant and extensible automatic conversions for numeric and other types
  • Efficient support for Unicode, including but not limited to UTF-8
  • Powerful shell-like capabilities for managing other processes
  • Lisp-like macros and other powerful metaprogramming facilities

Contents

  1. Introduction
  2. Getting Started
  3. Numbers and Arithmetic
  4. Strings
  5. Functions
  6. Control Flow
  7. Variables
  8. Types
  9. Methods
  10. Running External Programs
  11. Arrays
  12. Parallel Computing
  13. Calling C Code
  14. Standard Library Reference
  15. Metaprogramming

Clone this wiki locally