Julia is a high-level, dynamic programming language. Its features are well suited for numerical analysis and computational science. Distinctive aspects of Julia's design include a type system with parametric polymorphism in a dynamic programming language; with multiple dispatch as its core programming paradigm.The most significant departures of Julia from typical dynamic languages are:The core language imposes very little; Julia Base and the standard library are written in Julia itself, including primitive operations like integer arithmeticA rich language of types for constructing and describing objects, that can also optionally be used to make type declarationsThe ability to define function behavior across many combinations of argument types via multiple dispatchAutomatic generation of efficient, specialized code for different argument typesGood performance, approaching that of statically-compiled languages like C