Обновить
134

Пользователь

0,1
Рейтинг
117
Подписчики
Отправить сообщение

За это время Rust прошел путь от идеи до v1.97.1.

Rust v1.0 был выпущен 15 мая 2015 года. Работа над языком была начата в 2006 году. А перечисленные изменения произошли с С++ начиная с 2020 до 2025 года

Причем тут язык? Макросы – средства компилятора

получается и С++ не виноват в ошибках программистов? Он ведь всего лишь дал возможность, а программисты воспользовались ей неверно?
Только тут есть нюанс - никто не хочет в С++ сделать себе баг. А вставить вредонос в цепочку поставок очень много кто хочет и Rust даёт именно эту возможность, принципиально отсутствующую в С++ на уровне языка

Да неужели? И что, был хоть один случай?

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

Тем не менее проблемы были:

https://github.com/rust-lang/rust/issues/74616


В итоге они делают вот это:
https://rust-lang.github.io/rust-project-goals/2025h1/macro-improvements.html

Улучшают "временное" решение с macro_rules "до уровня процедурных макросов", так как процедурные оказались невероятно сложны, медленны и небезопасны

В итоге в языке сразу две плохих реализации макросов

https://github.com/sunface/rust-course/issues/1562

"For macro_rules, there are indeed some problems. Therefore, Rust plans to replace it with the new declarative macros in the future: they work in a similar way but solve the existing issues. After that, macro_rules will become deprecated."

Но сейчас уже как будто отказываются, потому что невозможно убрать

Хорошая статья, после неё много кому станет яснее, почему реклама Rust сошла на нет

Вместо хорошего механизма "временно" вставили костыль с этими макросами (это типа хотели сделать временным)

Плюсы: люди могут накостылять какую-то дичь типа парса json на компиляции без необходимости делать сложные фичи такие как constexpr, вариадики и тд из С++

Минусы:

- каждый пользователь в каждом макросе буквально обязан написать компилятор Rust на чудовищном синтаксисе

- время компиляции

- изменения в компиляторе языка становятся ломающими, ведь у кого-то сломаются эти макросы

- и конечно же "безопасный" язык, в котором любая библиотека может на компиляции внутри макроса пойти в сеть и слить все ваши данные (не только код, а вообще всё) и потом зашифровать вашу систему. Безопасно

По итогу это с растом навсегда, эта (и некоторые другие фичи) почти полностью блокируют добавление в раст новых фич

За время пока в C++ добавили корутины, концепты, статическую рефлексию, deducing this, статические операторы(), вариадик оператор[], consteval и ещё оочень много фич языка, в Rust добавили...

- async fn и impl Trait в трейтах (исправление костыля связанного с тем как реализован async в Rust, в С++ аналогичная "фича" невозможна, так как ограничения такого не было)

судя по стилю очень напоминает ллм статью, так что я не уверен существует ли это в реальности

Не далёк тот день, когда все windows по геопозиции определят, что им нужно немедленно сжечь cpu и видеокарту

Думаю, в современном мире нужно иметь несколько симок и несколько телефонов.

думаю в современном мире телефоны, симкарты и прочее просто устарело и не имеет никакого смысла

Есть интернет, должны быть центры выдачи токенов для авторизации, которые вместо телефона будут использоваться для создания почты и регистрации в разных сервисах

И хотелось бы нормальную почту, которая ПРОСТО ПОЧТА, а то яндекс почта и gmail скурвились давно

С таким количеством это уровень уже чего-то типа "все спутники над определённой областью начали светить в одно место и сожгли"

Не читал всё, взгляд зацепился за фразу

> Автократии — более подходящие покупатели этой технологии, чем демократии

За последние 10 лет разве не стало понятно ВСЕМ, что страны не делятся на "автократии" и "демократии", это деление просто выдумано

 Заправился сам - помоги ближнему.

буквально сервис для создания наплыва потребителей на одну заправку, вместо равномерного распределения. "общественное благо", заставь дурака богу молиться - лоб расшибёт

ну вообще-то купишь. Канистры + на возможную перепродажу перекупами

сервису необязательно даже лгать, просто "честно" собирать "отзывы" и в итоге естественно набегут "сознательные граждане" из колцентров одной русскоязычной страны и напишут как у них не хватило бензина. Какие ещё люди будут писать в эти "сервисы" хоть что-то? По какой причине им это делать?

Покуда единственная причина дефицита это повышенный спрос вызванный паникой, её надо раздувать. Сознательно или бессознательно, по заказу или без, но раздувать, иначе дефицит кончится

https://github.com/llvm/llvm-project/blob/main/clang/lib/Lex/Lexer.cpp
https://github.com/llvm/llvm-project/blob/main/clang/include/clang/Basic/TokenKinds.def#L372


лексер маппит напрямую "class" -> kw_class, превращая текст в поток токенов, так что

> парсер смотрит, является ли это слово служебным или рядовым

Не соответствует коду


Я всё жду, когда кто-нибудь добрый обернёт стандартную библиотеку во что-нибудь удобное. Чтобы вместе того же mt3999… я даже название его не помню, хотя пишу его регулярно… ну, как пишу — копипащу из ДипСика… 

а что мешает самому обернуть под свои задачи за строк 10? Это же абсолютно элементарно делается. И потому и не добавлено в стандарт, потому что у всех разное получится под своё

Это не разные диалекты, это с одной стороны LLVM - "поддерживаем С++17, озаботьтесь что ваш код компилируется на С++17 и не зависит от каких-то стрёмных расширений"

А с другой стороны какая-то идиотия джавы, которая фичи делит не по логике, а по хз чему

> Когда меня приглашают на собеседования как знатока C++, я обычно отказываюсь. Надоело объяснять, что мой С++ особенный.

моё личное мнение (как контрибьютора LLVM) - все знающие хорошо С++ знают его одинаково, с одинаковым набором фич. "диалектами" можно назвать QT и unreal engine, где есть свои кастомные расширения, но и там основа есть та же. И есть пара стилей

  • С-стайл - неоправданно близко к С

  • "слишком модерн С++" - шаблоны ради ничего, переусложнения, накрученные ranges

  • "поганая джава" - бесконечные интерфейсы и менеджеры

Все эти "стили" это разновидности плохо понятого С++, любой кто всё же осознал язык в итоге приходит к чему-то среднему и одному и тому же

чтобы это сделать нужно сделать лексер зависимым от контекста. Т.е. по разному разбирать символы на лексемы в зависимости от того какую конструкцию мы парсим. А это плохо и никому не нужно

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

это противоречит смыслу контрактов

возможно. Не знаю как можно всерьёз утверждать о невозможности того, что уже сделано и амазон и в Китае и тд

1
23 ...

Информация

В рейтинге
3 903-й
Зарегистрирован
Активность