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.