Лекції лауреатів премії Т’юрінга зазвичай залишають бажати кращого. Формальні, банальні, безпечні. За винятком випадків, коли велетні комп’ютерних наук вирішують вийти за межі сценарію. Джон Бекус використовував свій трибунний момент, щоб запустити функціональне програмування. Кен Томпсон попереджав нас, що наші компілятори можуть обманювати нас. Едсгер Дейкстра закликав бути смиренними перед власним розумом.
Кеннет Айверсон вчинив інакше.
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, який не гальмує.
Ми будуємо тим, що працює. Ми перемикаємо інструменти, коли це не так. Це не баг.
Це робота.



















































