Why Julia?

Or: "Why should I waste my precious time learning yet another faddish 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:

  • high-level and easy to learn
  • an interactive, dynamic language
  • but Just-In-Time (JIT) compiled

So, Julia

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

  • solves the infamous two-language problem

  • Most of the standard library is implemented in Julia itself

  • "Users are developers"

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
  • allows the creation of domain-specific languages

Julia is:

  • open source

  • free

  • MIT license (allows commercial use)

  • developed by a worldwide community

Julia is:

  • a new direction in scientific computing

Julia is:

  • the future of scientific computing

Using Julia

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

      julia
  • Inside IJulia notebook (Jupyter notebook with Julia kernel):

      ipython notebook
  • Inside an IDE, e.g. Juno

Getting help with Julia

  • Hands-on Julia: A hands-on tutorial covering the same ground as a series of exercises

Goal of the workshop

  • Introduce some of the basic ideas that makes Julia different
  • Think in a Julian way
  • Based on examples