LINUX.ORG.RU

Доказана эффективность Rust

 , , , ,


3

6

… но на самом деле не совсем. Доказана типобезопасность подмножества Rust. Соответствующая статья опубликована аж целых два года назад. А доказательство верифицировано, просто афигенский рокетсайнс.

Считаю, что об этом полезно будет узнать жителям ЛОРа, особенно некоторым анонимам.

P.S. Сам с удивлением узнал сей факт, читая наброс humbug на хабре. Очень качественный наброс, кстати. Рекомендую.

И что? Пока что писать на нем больно. Во-первых, IDE не вдуплили как статически анализировать макросы, а порой даже подсветить не в состоянии. Разрабы либ же обожают обмазывться макросами по поводу и без.

Во-вторых, эта тупая возня tokio vs async-std. Половина кода под первый, половина под второй. Куда бежать не понятно

Не готов для продакшона

anonymous ()

Пока корпорациям не понадобится Rust, продвигаться он не будет.

Вон С#, вроде и клон Java, а как был продвинут.

gedisdone ★★★ ()
Ответ на: комментарий от gedisdone

Пока корпорациям не понадобится Rust, продвигаться он не будет.

Куда не будет? Кем продвигаться? Мне тут писать на русте за бабло уже дважды в этом году предлагали.

hateyoufeel ★★★★★ ()
Ответ на: комментарий от gedisdone

Значит, языку пришло светлое настоящее.

Молодец, ты попался на пропаганду.

anonymous ()
Ответ на: комментарий от anonymous

Пусть это и пропаганда. На каких языках будет больше предложений работы, те языки и буду рассматривать.

gedisdone ★★★ ()
Ответ на: комментарий от gedisdone

На каких языках будет больше предложений работы

Ахахах.....

stasolog ()

и чо даже спуктр с мелтдауном его не берут?

anonymous ()
Ответ на: комментарий от gedisdone

На каких языках будет больше предложений работы, те языки и буду рассматривать

Java, Python, JavaScript, PHP - абсолютные лидеры. Руст-хруст пока даже в перспективе не светит выйти в лидеры по предложениям работы.

anonymous ()

Потыкался я в него. Больной синтаксис, как и у крестов, да проще в плане конструкций, но его не для людей делали. Всякие конструкции вида

Vec<_>
делают мне больно

peregrine ★★★★★ ()
Ответ на: комментарий от peregrine

А что тебя здесь смущает? Vec<T>, где T очевидно из контекста. Зачем лишний раз прописывать и так прописанный рядом тип?

Siborgium ()

Доказана типобезопасность подмножества Rust

Programming language research considered irrelevant.

Знаете, мне что-то подумалась аналогия с коронавирусом, когда сначала проблема игнорируется, а в итоге она проявляется, и приводит к панике к противоположной крайностью в виде расстрела за выход из дома.

Длительная диктатура лютейше небезопасных C/C++ привела к тому, что теперь возраждается культ Ада. Сатанисты забыли уже, как этот ЯП провалился. И провалился он из-за того, что трудоемкость написания кода затмевает трудоемкость отладки онного, при том, что некоторые операции все равно нельзя обезопасить и какой-то уровень опасности всегда остается.

И ради чего это всё? Чтобы убрать уязвимости в браузере? Для этого нужно всего-лишь перестать совать данные в стэк вызовов, нужно вырезать под корень все нуль-терминированные строки, ну и небезопасные операции с массивами по указателям должны наконец стать исключением, а не правилом, то есть, должны обзавестись проверкой границ даже если производится какое-то копирование памяти — всё, у вас исчезает 90% сложных багов без повышения трудоемкости написания кода.

byko3y ()
Ответ на: комментарий от Siborgium

А что тебя здесь смущает? Vec<T>, где T очевидно из контекста. Зачем лишний раз прописывать и так прописанный рядом тип?

Во-о-от... Зачем лишний раз прописывать тип, который и так рядом прописан? Зачем вообще это самое «Vec<_>» существует в коде?

byko3y ()
Ответ на: комментарий от byko3y

Так не всегда очевидно, что должен быть именно Vec. Например, при использовании collect.

Siborgium ()
Ответ на: комментарий от byko3y

Насколько я знаю, хром пишется на современном C++, включая любимые тобой нормальные строки, проверки границ и прочее. Баги и уязвимости в нём всё равно продолжают находить, в том числе и те, которые в Rust принципиально невозможны.

Блин, почему бы просто не признать, что люди смогли сделать хороший ЯП, который просто объективно лучше C++, с какой стороны ни посмотри. Так и есть ведь. Взяли накопленный опыт, взяли полезные в низкоуровневом программировании концепции, сделали хороший язык, сделали хороший инструментарий и всё просто работает.

В то время, как в С++ в 2020 году нет общепринятого способа скачать и подключить нужную библиотеку.

Legioner ★★★★★ ()
Ответ на: комментарий от Legioner

хром пишется

А что на раст уже есть проекты, сравнимые с хром? Даже мозила вон писала писала свой браузер, да как-то остановилась.

anonymous ()
Ответ на: комментарий от anonymous

Мозилла не писала на Rust браузер. На Rust написан движок Servo и различные компоненты Firefox. По мере обкатки и стабилизации код Servo бэкпортируется в Firefox.

Siborgium ()

те, кто готов отдать свою свободу (с/с++), чтобы приобрести немного временной безопасности (раст), не заслуживают ни свободы, ни безопасности

anonymous ()

Очень качественный наброс, кстати. Рекомендую.

1к комментов, а читать скучно. Лора на них нет.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от Legioner

что люди смогли сделать хороший ЯП, который просто объективно лучше C++, с какой стороны ни посмотри.

Смотрю со стороны синтаксиса. Редкостное говно. Сделать хуже, чем в C++ нужно было суметь. И у чуваков это получилось. Очень старались, видимо.

Смотрю со стороны поддержки ООП. Унылое говно. Да, понятно, что у модных и молодежных хипстеров ООП не в почете (как и все, что не нужно им здесь и сейчас). Но ООП – это обычный инструмент. И как у любого инструмента у него есть границы применимости. И там, где ООП применим, у Rust-а можно ожидать заката Солнца вручную.

Смотрю со стороны простоты использования в старых проектах на C и C++ (особенно тех, где смесь C и C++). Втянуть в такой проект Rust и выстраивать safe-прослойки между Rust-ом и унаследованным кодом из C/C++ – это дополнительные сложности и трудозатраты.

Смотрю со стороны разработки отзывчивого GUI приложения. Что-то за 5 лет стабильного Rust-а ничего толкового растоманы создать не смогли. В XXI-ом то веке, хотя в начале 1990-х GUI-вые библиотеки росли как грибы после дождя. Часть из них до сих пор живы.

Так что да, C++ нельзя назвать хорошим и удобным языком, в нем до сих пор нет общепринятой системы сборки и управления зависимостями. Да и сама экосистема C++ сильно сегментирована.

Но, при всем при этом, Rust далеко не везде оказывается лучше C++. Хотя казалось бы, при такой всеобщей любви к Rust-у звездунов с LOR-а, StackOverflow, Reddit, HackerNews и прочих площадок «за потрындеть».

eao197 ★★★★★ ()
Ответ на: комментарий от eao197

В XXI-ом то веке, хотя в начале 1990-х GUI-вые библиотеки росли как грибы после дождя.

Ну за 20-30 лет требования к GUI сильно выросли. Сейчас это почти неподъемная задача. Даже MS всё никак не может осилить новый UI.

RazrFalcon ★★★★★ ()

Надо также в сишку засунуть ccc-analyzer, назвать это новым языком, а потом бегать и говорить всем про то, какой язык безопасный и в нем нельзя выстрелить себе в ногу.

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

anonymous ()
Ответ на: комментарий от RazrFalcon

UI то они давно осилили. Наверное среди хипстеров мало желающих закопаться в sysdm и прочие *.cpl. Кто этот ужас делал, тех уже нет с нами

Больше печалит, что новый UI снова прибили к винде. Эх, не видать на нашем веку переносимый гуй, окромя веба

anonymous ()
Ответ на: комментарий от RazrFalcon

Да, если заниматься трындежом на форумах о том, какой Rust классный и что разработка GUI сейчас неподъемная задача, то ничего не появится и в следующие 5 лет.

А так-то многие Rust-оманы зарабатывают кодингом на C++, C#, Python, Ruby, может быть даже на Haskell. А на Rust-е, в лучшем случае, пет-проекты клепают. И то не факт.

eao197 ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Но ведь это у тебя есть эмоциональная связь с инструментом и горит от любого его упоминания в негативном контексте, а регистрант выше просто говорит о реальности.

anonymous ()
Ответ на: комментарий от RazrFalcon

Ну за 20-30 лет требования к GUI сильно выросли. Сейчас это почти неподъемная задача.

Так не обязательно все делать сразу, на первое время хватит минимума. И по граблям ходить не надо, есть готовые решения на других языках, можно смотреть их идеи и реализацию, многое даже можно один в один переписывать.

Serral ()
Ответ на: комментарий от RazrFalcon

Я-то за 28 лет программирования на C++ наелся этим языком досыта. И периодически оглядываюсь по сторонам в поиска адекватной замены для него. Особенно когда на сопровождение попадает старый проект, написанный хз какими криворучками, особенно фанатами чистой сишки, которые смогли осилить C++ разве что в объеме «Си с классами».

Но проблема в том, что замены нет.

И даже Rust, будучи самой лучшей попыткой создать реальную альтернативу C++ на данный момент, такой заменой не является. Часть причин была озвучена выше.

При этом (мне кажется объективно) изрядная часть рекламирующих Rust в Интернетах сами на нем ничего не пишут. По крайней мере не пишут кода для конкретного заказчика, с конкретными сроками, бюджетами, требованиями и пр.

eao197 ★★★★★ ()
Последнее исправление: eao197 (всего исправлений: 1)
Ответ на: комментарий от Serral

Ну так люди этим и заняты. Просто задача титаническая.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от eao197

Пишут достаточно. Просто ниша не рыбная. Заказчикам нужен очередной CMS, а не системная либа. Тут и у C/C++ всё плохо, ибо новых проектов так же нет.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от eao197

рекламирующих Rust в Интернетах сами на нем ничего не пишут.

На самом деле реально пишущих на расте людей единицы. 99% «писателей» нарасте это бывшие питонщики или С#еры, или Qtшники, (которые не умеют в с++). Фактически они занимаются сборкой сторонних крейтов со всеми их проблемами и косяками, создавая проекты-дерьмодемоны. Я уже год-полтора сижу в 5 группах по расту (пара русскоязычных в телеге в том числе). Основные решения проблем (как в русских, так и англоязычных группах) – найти нужный крейт. Нет крейта - нет решений.

И вот тут еще одна вещь. Обычно крейты, которые делают реально что-то полезное, написаны с unsafe во все поля.

anonymous ()
Ответ на: комментарий от RazrFalcon

Тут и у C/C++ всё плохо, ибо новых проектов так же нет.

ХЗ что считать «новыми». Если с нуля под совершенно новую задачу, то может и нет. А если на базе существующего кода, под что-то типа того, что было раньше, но с новыми требованиями, то вполне себе.

eao197 ★★★★★ ()
Ответ на: комментарий от anonymous

найти нужный крейт

а ты хочешь, чтобы они сначала писали, а только потом узнавали о существовании крейта с нужным функционалом?

anonymous ()

читая наброс humbug на хабре

Я так понимаю, у вашей секты текст == наброс, да?

DllMain ()
Ответ на: комментарий от anonymous

а ты хочешь, чтобы они сначала писали

Нет конечно. Любая херня, вроде лефтпада, должнa подлючаться как сторонняя либа, даже если пишется 3 строчками и даже в таком систаксисе как у раст. Очевидно же (с).

anonymous ()
Ответ на: комментарий от hateyoufeel

О каких суммах речь идёт? На ингредиенты для мамкиного борща уже хватает? :-)

BattleCoder ★★★★★ ()
Ответ на: комментарий от eao197

Ну очередной GUI на Qt - это норма, ибо у Qt альтернатив нет. И все будут грызть кактус/С++.

Простой пример - это pet-проекты, которые пилю я. Вменяемых аналогов на C/C++ нет. Так или иначе всё приходится пилить с нуля, начиная с банальной XML либы.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от RazrFalcon

аналогов на C/C++ нет

У местного метапога и его пет проекта тоже аналоговнет ¯_( ͡° ͜ʖ ͡°)_/¯

anonymous ()
Ответ на: комментарий от RazrFalcon

Ну очередной GUI на Qt - это норма

В данном случае речь не про GUI.

eao197 ★★★★★ ()

При чем тут pvs? Что за унылый форс, или это всё что вы слышали о статичной верификации.

anonymous ()
Ответ на: комментарий от anonymous

Покажите современные, удобные либы на C++ >= 14 для: разбора cmd, работы с процессами, XML, CSS, SVG, gzip, TrueType. Хотя бы по одной.

PS: для раста это всё есть, если что. Работа с процессами вообще из коробки.

RazrFalcon ★★★★★ ()
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от eao197

Это был просто пример. Многие вынуждены писать на C++ только из-за Qt.

RazrFalcon ★★★★★ ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)