Джулия быстрая. Но это всё же не Python

Лекции лауреатов премии Тьюринга обычно оставляют желать лучшего. Формальные, банальные, безопасные. За исключением случаев, когда великаны компьютерных наук решают выйти за рамки сценария. Джон Бэккус использовал свой трибунный момент, чтобы запустить функциональное программирование. Кен Томпсон предупреждал нас, что наши компиляторы могут нас обманывать. Эдсгер Дейкстра призывал быть смирительными перед собственным разумом.

Кеннет Айверсон поступил иначе.

В 1979 году он представил нам концепцию «Нотация как инструмент мысли». Он утверждал, что то, как мы пишем код, меняет то, как мы думаем. Хорошая нотация освобождает мозг от ненужной работы. Для этого Айверсон создал APL. APL выглядит пугающе, он плотен символами, напоминающими греческие буквы в состоянии измененного сознания. Но он позволял математикам мыслить уравнениями, а не циклами. Больше не нужно было переводить ментальную математику в неловкий Fortran. Это сработало. Его не приняли повсеместно. Но это не имело значения. Он доказал точку: два языка могут стать одним.

Сейчас, шестьдесят лет спустя, у нас есть Проблема двух языков.

Python доминирует. Все его любят. Он тот друг на вечеринке, который расскажет вам всё что угодно, но ужасно водит машину. Python медленный. Жестоко медленный. Защитники махают руками. Это не помогает.

Исследователи прототипируют на Python, потому что он дружелюбен. Затем, когда важна производительность, они переписывают критические части на C++ или Rust. Они делают это дважды. ИИ-агенты для написания кода не способны это исправить. У оптимизации есть пол. Если пол медленный, то и здание стоит медленно.

Подумайте о строительстве. Дерево легко пилить. Вы можете сколотить сарай за субботу. С металлом работать трудно. Но небоскребы не строят с помощью пилы. Что, если бы у вас было дерево, прочное как сталь? Или язык, эргономичный как Python, но быстрый как C?

Мы жадны.

Эти слова написали в 2012 году четыре компьютерных ученых. Они были пользователями Matlab, хакерами Lisp, питонистами, рубистами и перловыми наркоманами. Они ненавидели тот факт, что каждый инструмент, который им нравился, был идеален для чего-то одного и ужасен для чего-то другого. Они хотели всего. Открытый исходный код. Простота для начинающих. Мощь, достаточная для самых сложных задач. Они назвали это Julia.

Я познакомился с Julia в 2017 году. Это было случайно. Я слушал Себастьяна Сюнга, нейробиолога, картирующего коннектомы мозга. Само название казалось извинением перед остальной областью. Забудьте C++ или MUMPS. Или даже Haskell. Julia была обаятельной. Простой.

Она также была тщательно спроектирована.

Создатели наблюдали, как другие языки терпели неудачу. Они взяли хорошие идеи и оставили багаж. К 2026 году сообщество Julia странным образом созрело. Никакой драмы. Никаких войн флеймов из-за синтаксиса. Она привлекает ученых, а не просто кодеров. Они не интересуются интеллектуальной игрой. Они хотят результатов. На JuliaCon люди хвастаются тем, как переписывали код MATLAB и получали ускорение в 60 раз по бенчмаркам. Некоторые говорят, что в десять тысяч раз быстрее Python.

Так почему же её нет повсюду?

Почему Stack Overflow не любит её? Почему победил Python?

Экосистема. В Python есть библиотеки для всего. Нужно сделать что-то необычное? Для этого есть пакет Python. У Julia нет этого веса.

Корпоративная поддержка. Objective-C ехал на плече Apple. Kotlin — на плече Google. Julia не получила ничего от гигантов Big Tech. Она росла самостоятельно.

Или, может быть, всё шло правильно.

Julia нишевая. Маленькая. Любимая. Она запускает большие машины в CERN и NASA. Она помогает разрабатывать лекарства. Она делает работу.

Думаете ли вы, что какой-либо язык когда-нибудь решит Проблему двух языков?

Сомневаюсь. Расщепление присуще программному обеспечению. Игры используют движки C++ и скрипты Lua. Серверные бэкенды смешивают логику Python с производительностью Rust. Фронтенд-разработка терпит неудачу каждый раз, когда пытается внедрить Rust или Go.

Мы постоянно ищем серебряную пулю. Дерево, которое не гниет. Python, который не тормозит.

Мы строим тем, что работает. Мы переключаем инструменты, когда это не так. Это не баг.

Это работа.