Python is very slow. Can Julia solve the problem of the two languages?


As a type, The “award acceptance lecture” is nothing more than a formality and platitude. But there is at least one fascinating exception to this rule: the talks given by prominent computer scientists to mark the day Turing Awards.

Some read like the data: “John Backus.”Is it possible to free programming from the von Neumann method?“(1977) inspired a new paradigm that led to the creation of functional languages ​​like Haskell. Others are caveats: in his book”Reflections on trustworthiness(1984), Ken Thompson explained the danger of backdoor compilers, potentially blocking large collections of security vulnerabilities. Edsger Dijkstra, in “The humble programmer(1972), urged people like him to be wary of intelligence and to recognize the “essential limitations of the human mind.”

For our purposes, consider Kenneth Iverson’s provocative 1979 lecture, “Blogging as a tool for thoughtIn it, he demonstrated that mathematical symbols are not just a convenient abbreviation, but a CO2 For CO2, and 3,888 for MMMDCCCLXXXVIII, they also make new insights easily discoverable. As mathematician Alfred North Whitehead once said: “By relieving the brain of all unnecessary work, good notation frees it to concentrate on more advanced problems.”

Iverson won a Turing Award for APL, a scary-looking programming language that began life as a notation system to connect languages. In the early days of scientific computing, programmers had to think in one language (mathematical notation) and then program in another (for example, Fortran). APL is designed so that unwieldy operations can be written compactly as equations – where lines of code are divided into a few symbols e.g + or ×. The APL turned out to be more influential than the approved one, but it didn’t matter: it showed that two languages ​​could be combined into one.

Year 2026 It’s 60 years since the introduction of APL, and a new type of bilingual problem is confounding the field of scientific computing. The governing programming language is Pythonbut he rules less as a macho conqueror than as a reckless king. In other words, Python is extremely slow, a flaw that even its most ardent defenders will not deny.

Hence the two-language problem: researchers prototype in slow, friendly Python, but for the performance-critical parts, they rewrite in faster, less intuitive languages ​​like C++ or Rust. This limitation cannot be solved by creating a platoon of AI coding agents, because no matter how much you improve the slow language, the faster language will outperform it.

These binary trade-offs exist in other areas. You could say that construction, for example, has a two-material problem. Wood is a flexible material for creating prototypes of a structure, and even an amateur can see a working building and bolt it together. But it is not good for building a skyscraper. This raises an obvious question: What if there was a material that was as controllable as wood but as strong as steel? What if there was a convenient language like Python but just as fast as C?

In 2012, four Computer scientists with strong mathematical bents have come together to tackle the modern-day two-language problem. In a short article entitled “Why we created JuliaThey said they took on the project “because we’re greedy.” Their text starts out like a valentine to programming languages:

We are Matlab power users. Some of us are Lisp hackers. Some are Python purists, some are Ruby purists, some are Perl hackers… We’ve created more search plots than any sane person should. C is the desert island programming language.

But each of these languages ​​is “perfect for some aspects of work and terrible for others,” they wrote. Despite their greed, they wanted “an open source language, with a liberal license… something that is very easy to learn, but at the same time will please the most serious hackers.” Julia will be the one language that unites them all.

Leave a Reply

Your email address will not be published. Required fields are marked *