Julia is a free, high-level, high-performance dynamic programming language for technical computing, with syntax intended to be familiar to users of other technical computing environments, such as Matlab. It provides a compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library. The library, mostly written in Julia itself, also integrates C and Fortran libraries for linear algebra, random number generation, FFTs, and string processing. More libraries continue to be added over time. Julia programs are organized around defining functions, and overloading them for different combinations of argument types (which can also be user-defined).