Software Should Be Memory Safe

Software Should Be Memory Safe

Andrew Kravchuk

Чтобы хоть как-то отвлечься от совершенно чернушной новостной повестки (в конце концов, сколько уже можно буквально плакать, открывая тваттер), решил обратиться к событиям в IT-индустрии, а там тоже не всё радужно. Полюбуйтесь: белый дом Соединённых Штатов Америки выпускает пресс-релиз, в котором разработчиков призывают к использованию т.н. memory-safe языков программирования. Это не шутка, сходите по ссылке: Future Software Should Be Memory Safe. Вообще говоря, под определение "memory-safe programming language" попадает много чего, включая нежно любимый мной Lisp, в котором идея автоматического управления памятью впервые и появилась. А особенная мякотка в том, что сайт, на котором этот пресс-релиз лежит, сделан на WordPress, сделанном, в свою очередь, на PHP, самом дырявом в мире ЯП, который, тем не менее, формально можно отнести к категории memory-safe.

Далее следует моя аналитика этого события уровня "дед орёт на облако" (ну а чего вы ожидали от человека, считающего Ричарда Мэттьюсовича Столлмана своим героем чуть ли не с подросткового возраста).

небинарные крабики

Сначала о последствиях, которые не заставили себя долго ждать. Разумеется, в зарубежном тваттере сразу же радостно, прямо как на видео, повылазили мелкие небинарные крабики (у меня есть теория, почему среди программистов на Rust аномально много трансгендеров и прочих представителей нетитульных сексуальностей, но приводить её не буду, а то меня отменят нахуй).

Стадо крабиков шутит, мол, пишешь на C — преступник, и радуется, что теперь их правительство официально принуждает людей использовать предмет их фагготрии, но хорошего в этом мало. Почему?

Расскажу сказку. Как-то в одной не особенно наглой, но тем не менее мультимиллионной корпорации один программист в свободное от работы время решил слепить свой язык программирования вокруг одной-единственной идеи — переложить flow analysis на того, кто пишет код, и чуть что больно бить его по рукам строжайшей статической типизацией. Сказано — сделано, взял сишный синтаксис из-за всякого отсутствия вкуса, слабал компилятор, паразитирующий на LLVM и готово. В принципе, до этого так никто не делал, потому что flow analysis худо-бедно автоматически делался компиляторами на протяжении уже нескольких десятилетий, но почему бы и нет, пусть расцветает тысяча цветов. Профессиональное сообщество на его опус посмотрело, кто-то даже поигрался, хмыкнул и забыл — всё равно для каких-либо то ни было серьёзных применений никаких преимуществ оно не даёт.

На языке начали переписывать части заглавного продукта этой не очень наглой корпорации, и так бы оно там и затухло, однако история делает поворот. В 2020 году корпорация по формальной причине мировой пандемии увольняет толпу бездельников, занимавшимся ̶п̶е̶р̶е̶л̶и̶в̶а̶н̶и̶е̶м̶ ̶и̶з̶ ̶п̶у̶с̶т̶о̶г̶о̶ ̶в̶ ̶п̶о̶р̶о̶ж̶н̶е̶е̶ переписыванием заглавного продукта на этот ЯП, и так бы они и разбежались по разным местам перекладывать JSON'ы за миску лапши, но тут подсуетились корпорации понаглее и побогаче, которые, как известно, спят и видят, как бы скатить весь мир в киберпанковую антиутопию, где они контролируют вообще всё, не мытьём так катаньем. Увидели они для себя потрясающую возможность: формально новый подход в языкостроении, как будто бы позволяет писать низкоуровневый и притом безопасный код (на самом деле нет), а главное, пилится какими-то наивными синеволосыми технобро с аниме-аватарками, но без какого ли бы то ни было стандарта или даже плана развития — идеальный кандидат для реализации старой доброй стратегии трёх E — Embrace, Extend, Extinguish.

Рис. 1. Популярность поискового запроса "rust"

И вот группа самых наглых мегакорп огранизовывает для этого в начале 2021 целый Foundation, и вдруг, вот это чудо, популярность языка стремительно растёт вверх (см. рис. 1)! Разумеется, не из-за миллионов долларов, вбуханных в наглый маркетинг, а исключительно из-за его технических преимуществ (на самом деле нет). В интернете появляется целая культура долбоёбов, которые к месту и не месту в соцсетях оставляют комментарии вида "нужно всё переписать на нашем ржавом языке, он ведь безопасный!!!111!1!".

Рис.2. Характерный представитель Rust Evangelism Strike Force в дикой природе

Прищучивают старого доброго Линуса Торвальдса, который, не стесняясь в выражениях, одинаково хуесосил и авторов плохого кода, и корпорации, пытавшиеся проворачивать фазу Embrace с его детищем — теперь и в ядро (!) некогда свободной операционной системы тащат это копроративное поделие.

В общем, внимательный читатель уже понял, что мы в этой сказочке живём, а обсуждаемая новость означает, что мегакорпам хватило денег на то, чтобы положить к себе в карман ни много ни мало правительство США. Грустно всё это, как будто бы не хватало войн, так ещё и теперь человечество всё стремительнее скатывается вот в этот high tech, low life, где ты и пёрнуть не можешь без контролирующего зонда в заднице, который ты сам же купил всего лишь за $19.99 в месяц.

Ну и что же я предлагаю в связи со всем этим делать? Игнорируйте копроративного троянского краба, не пишите на Rust и про Rust. Пишите на Common Lisp, с безопасностью памяти там всё шикарно уже на протяжении сорока лет, а жадные ручонки корпораций до него не дотянутся, потому что то, что мертво, умереть не может, оно лишь восстаёт вновь, сильнее и крепче, чем прежде.

Report Page