Why Julia wants to combine speed and expressiveness
Summary
The founders of Julia describe a dynamic language for technical computing without separate languages for prototype and production. Julia was presented publicly in 2012. The implementation uses LLVM.
Ideas
- Multiple dispatch selects methods based on the types of all arguments.
- JIT compilation generates specialised machine code at run time.
- A mathematical syntax remains interactive and compact.
- Metaprogramming allows domain-specific extensions within the language.
Insights
- Two-language problems arise when productivity and performance require separate tools.
- Specialisation from type information can make dynamic surfaces fast.
- A common language makes exchange between research and production easier.
Facts
- Julia is developed as free software.
Recommendations
- Measure real programs rather than isolated language benchmarks.
- Avoid unnecessary type instability in hot loops.
References
Links to the original source and the Web Archive open in a new tab.