bk99.de entertain the web since 1997

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

Read the original article

Search the Web Archive