Hasty Briefsbeta

Bilingual

Python Is So Slow. Can Julia Solve the Two-Language Problem?

8 hours ago
  • #Turing Award Lectures
  • #Programming Languages
  • #Scientific Computing
  • Award acceptance lectures by Turing Award-winning computer scientists often stand out as influential exceptions to the banality of the genre.
  • Examples include John Backus's 1977 lecture inspiring functional programming, Ken Thompson's 1984 warning about compiler backdoors, and Edsger Dijkstra's 1972 call for humility.
  • Kenneth Iverson's 1979 lecture 'Notation as a Tool of Thought' argued that mathematical notation fosters discovery, exemplified by APL, a programming language designed to fuse mathematical and programming languages.
  • The two-language problem in scientific computing today involves prototyping in slow Python and rewriting performance-critical parts in faster languages like C++ or Rust.
  • Julia, created in 2012, aims to be a single language as ergonomic as Python and as fast as C, addressing this problem.
  • Julia has gained a sober, academic community and offers significant speedups (e.g., 10x to 1000x faster than Python) but remains niche due to Python's robust ecosystem and lack of Big Tech adoption.
  • Julia is used in high-performance fields like drug discovery and machine learning at institutions like ASML, CERN, and NASA.
  • The two-language problem persists across domains (e.g., gaming with C++/Lua, backends with Python/Go), and it's uncertain if any language can fully solve it.
  • The piece is part of a series on AI-enabling languages, reflecting on the potential for future innovations akin to Iverson's insights.