# Why Julia?¶

# Or: DIRHTLYAPL¶

# "Do I Really Have To Learn Yet Another Programming Language??"¶

## David P. Sanders

### Department of Physics, Faculty of Sciences

### National University of Mexico (UNAM)

### Twitter: @DavidPSanders

### GitHub: dpsanders

# Advantages of Julia¶

Julia:

- is interpreted, but (JIT-) compiled

- is high-level and easy to learn

- designed so easy to make fast from the start

- is fast (~2--3x C speed)

Julia:

- has a sophisticated type system

- but it is not necessary to talk about types

- has multiple dispatch: functions specialised on the types of their arguments

- has sophisticated metaprogramming (macros) for generating code programatically

- allow the creation of domain-specific languages

Julia:

- most of the standard library is implemented in Julia itself

- avoids the infamous "two-language problem"

- "users are developers"

# Using Julia¶

- From the REPL (Read--Eval--Print Loop):

      julia

- Inside IJulia (IPython interface with Julia kernel):

      ipython notebook --profile julia

- Inside an IDE, e.g. LightTable + Jewel + Juno/Jupiter; Julia Studio

# Getting help with Julia¶

- Julia manual: http://julia.readthedocs.org/en/latest/manual

- julia-users mailing list: https://groups.google.com/forum/#!forum/julia-users

In []:

    ;ipython nbconvert Why\ Julia.ipynb --to slides --post serve