Julia je rychlá. Ale pořád to není Python

Přednášky vítězů Turingovy ceny obvykle zanechávají mnoho přání. Formální, banální, bezpečný. Kromě případů, kdy se obři počítačové vědy rozhodnou upustit od scénáře. John Baccus využil svého pódiového okamžiku ke spuštění funkčního programování. Ken Thompson nás varoval, že nás naši kompilátoři mohou oklamat. Edsger Dijkstra vyzval k pokoře před vlastní myslí.

Kenneth Iverson dělal věci jinak.

V roce 1979 nám představil koncept „Notace jako nástroj myšlení“. Tvrdil, že způsob, jakým píšeme kód, mění způsob našeho myšlení. Dobrý zápis osvobozuje mozek od zbytečné práce. K tomu Iverson vytvořil APL. APL vypadá děsivě, je hustá se symboly připomínajícími řecká písmena ve stavu změněného vědomí. Ale umožnilo to matematikům myslet spíše v rovnicích než v cyklech. Už nebylo potřeba překládat mentální matematiku do trapného Fortranu. Fungovalo to. Ne všude to bylo akceptováno. Ale na tom nezáleželo. Dokázal, že dva jazyky se mohou stát jedním.

Nyní, o šedesát let později, máme problém dvou jazyků.

Python dominuje. Všichni ho milují. Je to ten kamarád na večírku, který vám řekne cokoliv, jen neřídí hrozné auto. Python je pomalý. Brutálně pomalé. Obránci mávnou rukama. Tohle nepomůže.

Výzkumníci prototypují v Pythonu, protože je přátelský. Poté, když je důležitý výkon, přepíší kritické části v C++ nebo Rust. Dělají to dvakrát. Agenti pro kódování AI to nedokážou opravit. Optimalizace má podlahu. Pokud je podlaha pomalá, pak je pomalá i budova.

Myslete na stavbu. Strom se snadno piluje. Boudu můžete poskládat za sobotu. S kovem se těžko pracuje. Ale mrakodrapy se nestaví pilou. Co kdybyste měli strom silný jako ocel? Nebo jazyk stejně ergonomický jako Python, ale rychlý jako C?

Jsme chamtiví.

Tato slova napsali v roce 2012 čtyři informatici. Byli to uživatelé Matlabu, hackeři Lisp, Pythonisté, Rubyisté a feťáci. Nenáviděli skutečnost, že každý nástroj, který se jim líbil, byl v jedné věci skvělý a v něčem hrozný. Chtěli všechno. Open source. Jednoduchost pro začátečníky. Dostatečně výkonný, aby zvládl i ty nejnáročnější úkoly. Říkali tomu Julia.

Julii jsem potkal v roce 2017. Byla to nehoda. Poslouchal jsem Sebastiana Hsiunga, neurovědce, který mapuje mozkové konektomy. Samotné jméno vypadalo jako omluva zbytku pole. Zapomeňte na C++ nebo MUMPS. Nebo dokonce Haskell. Julia byla okouzlující. Jednoduchý.

Byl také pečlivě navržen.

Tvůrci sledovali selhání jiných jazyků. Vzali dobré nápady a nechali zavazadla. Do roku 2026 komunita Julia dozrála zvláštním způsobem. Žádné drama. Žádné plamenné války o syntaxi. Přitahuje vědce, nejen kodéry. Nezajímají je hry mysli. Chtějí výsledky. Na JuliaConu se lidé chlubí tím, jak přepsali kód MATLABu a dosáhli 60násobného zrychlení benchmarků. Někteří říkají, že desettisíckrát rychleji než Python.

Tak proč to není všude?

Proč se to Stack Overflow nelíbí? Proč vyhrál Python?

Ekosystém. Python má knihovny na všechno. Potřebujete udělat něco neobvyklého? K tomu existuje balíček Python. Julia tuto váhu nemá.

Firemní podpora. Objective-C jel na rameni Applu. Kotlin je na rameni Googlu. Julia nedostala nic od gigantů Big Tech. Vyrostla sama.

Nebo možná všechno šlo správně.

Julia je nika. Malý. Miláček. Provozuje velké stroje v CERNu a NASA. Pomáhá vyvíjet drogy. Ona dělá práci.

Myslíte si, že nějaký jazyk někdy vyřeší problém dvou jazyků?

pochybuji. Rozdělení je součástí softwaru. Hry používají C++ motory a Lua skripty. Serverové backendy kombinují logiku Pythonu s výkonem Rust. Front-end vývoj selže pokaždé, když se pokusí implementovat Rust or Go.

Neustále hledáme stříbrnou kulku. Strom, který nehnije. Python, který nezpomaluje.

Stavíme s tím, co funguje. Pokud tomu tak není, měníme nástroje. To není chyba.

Tohle je práce.

попередня статтяTechnologie, ocel a stíny