LINUX.ORG.RU

Автор Wayland композитора Way Cooler переписывает своё детище с Rust на C

 , ,


2

9

Как-то давно смотрел список Wayland композиторов, в нём был проект Way-Cooler, примечательный тем, что декларировался как духовный наследник AwesomeWM и проект использовал Rust. Но недавно я набрёл на пост автора с грустными новостями. В новостях про Rust часто просят привести примеры ПО, разрабатываемого на этом языке, т.е. многим интересен опыт реального применения этого языка. Именно таким опытом и делится автор по ссылке выше.

Для Ъ я попробую перевести пару самых главных, на мой взгляд, тезисов из поста. Надеюсь мой перевод не исказит смысл оригинала.

Автор на протяжении примерно года писал биндинг к библиотеке wlroots, за это время он внёс более 1000 изменений и в итоге репозиторий wlroots-rs содержал более 11 тысяч строк Rust кода, при чём это не просто копипаста одного куска для каждой сущности библиотеки, автор написал несколько макросов, один из которых сам же назвал уродливым. Автор пишет, что все 11 тысяч строк это просто обёртки, которые занимаются управлением памяти и при этом они не покрывают и половины API wlroots. Кроме того, автор заметил, что разобраться и пользоваться плодом его трудов довольно сложно и некоторые отказываются от использования wlroots-rs в пользу wlroots.

Основными проблемами при написании обёртки для wlroots автор называет описание модели владения объектами wlroots на языке Rust. По ссылке автор показывает несколько примеров кода, которые демонстрируют проблему. Кроме того, автор не видит возможности написать на Safe Rust расширение протокола Wayland.

В итоге автор принял непростое решение переписать Way-Cooler на C. Автор упоминает некоторые другие проекты, столкнувшиеся с аналогичной проблемой написания биндингов, которые приняли противоположное решение – переписать библиотеки на Rust.

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

Ответ на: комментарий от i-rinat

А? Ну тогда хорошо, что ты всё понял и поделился своим мнением в треде. Я надеюсь, ты понимаешь, что от этого мнения других людей не изменятся.

Более чем. Кроме того, с интересом послушаю конструктивное мнение других. И могу даже свое мнение изменить при наличии аргументов, и ошибку признать.

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

да никак. это надо какие-то builtinы добавлять в компилятор чтоб помечать переменные. после этого комплятор сам обнаружит use-after-move.

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

Поскольку на D нет такой модели, как в Расте, то и написать биндинги будет также просто как и на плюсах.

В этом и проблема. Ваши рассуждения основаны на ложном факте. Я в 10-й раз прошу вас привести примеры кода, где Rust сложнее D для написания биндингов.

Обратите внимание, что я дискутирую с вами, а не с ТС. К нему у меня претензий нет. Он всё правильно написал.

у Раста есть повышенные гарантии безопасности, это фишка языка.

Лишь одна из.

А у D есть гарантии 100% интеграции с сишным кодом, скажем так.

Почему вы решили, что у Rust такой фишки нет? Ведь она есть. И это было одним из требований при создании языка. Ибо сейчас, firefox содержит код и на C++ и на Rust. И без удобных и эффективных биндингов это было бы невозможно.

Но вы же это не воспринимаете, к сожалению.

ТС жалуется на то, что нормальные биндинги к Сишной либе, которая изобретает свою систему владения, писать довольно сложно. И я уже который раз пытаюсь донести до вас мысль о том, что ни D, ни любой другой ЯП тут не поможет. Проблема в самой сишной либе.

Необходимость следования строгой модели, использование borrow checker - это та плата за гарантии, предоставляемые языком Rust.

Я так понимаю, что с C++ вы не знакомы, как в прочем и с Rust. Фишка в том, что Rust не изобретает ничего нового. Вам нужно понять, что типичный код на Rust выглядит так же как и на C++ (не синтаксически, конечно). Разница лишь в том, что Rust проверяет, что программист всё сделал верно, а C++ - нет. Единственное «ограничение» - это отсутствие возможности взять две мутабельные ссылки на объект без unsafe.

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

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

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

Я взял язык, который мне больше всего нравится. Что там будет через n лет мне без разницы. Я могу просто забить на проект и всё.

Ну дык и многие проекты стартуют на том, что обещает быстрый выхлоп, доводят до MVP, а там либо в корзину, либо, если деньги начинает приносить, клепают дальше. И либо переписывают (как в LinkedIn на Scala/Java c Ruby, либо как в Instagram на C++ с Python-а), либо так и продолжают жрать кактус.

И поэтому все банки на жирной жабе, где даже специально фиг что сломаешь.

Вы думаете, что Java в банки вот так раз и пришла? Этот процесс затянулся не на один год.

Или вот ту же Scala взять. Ведь исследовательский же проект был 15 лет тому назад. Без большой коммерческой силы за спиной. А сейчас в тех же банках вполне себе на Scala клепают.

Ну и в свое время акцент на Java был из-за моды на монолиты. Сейчас мода на микросервисы, в которых Go вполне себе. В том числе и в банках.

Так что, боюсь, вы перспективы Rust-а оцениваете по тараканам в своей голове.

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

If all you do is write Safe Rust, you will never have to worry about type-safety or memory-safety.

Видите там слово «all»? Так вот, если у вас хотя бы в конкретном участке кода есть unsafe rust, тогда это уже не «all». Или вы будете спорить?

а вы видите там слово «never»? ваша проблема в том, что вам хочется всех убедить, что логическое отрицание слова «never» - это «always». хотя на самом деле это «at least sometimes». (о чем я и говорю - бинарная логика).

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

вам многократно написали, что фишка rust - не в отсутствии безопасного кода, а в его локальности; что использование вручную проверенного библиотечного unsafe кода дает как минимум те же гарантии, что и использование проверенного компилятором safe кода; что С требует сохранять бдительность 100% времени, а раст - 5%.

но, к сожалению, это всё ничего не значит по-вашему, и раз rust не даёт гарантий в 100% случаев, получается, никакого такого преимущества у него нет.

слив засчитан

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

MyTrooName ★★★★★
()
Последнее исправление: MyTrooName (всего исправлений: 1)

Ну и отлично, а с С на Obj-C пусть перепишет

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

ну да, тебя спросили:

Какие возможности делают его хотя бы частично безопасным?

а ты начал отвечать на вопрос, который сам придумал:

А кто вам сказал, что «возможности» == «безопасность». Если вам нужна безопасность в принципе, то C++ вам вряд ли нужен. Возможности – это, например:

офигеть конкретика

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

Этот топик называется «Автор Wayland композитора Way Cooler переписывает своё детище с Rust на C (комментарий)».

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

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

автор статьи, кстати, тоже вызывал вопросы по поводу своей компетентности, если ты внимательно читал тред.

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

Так что, боюсь, вы перспективы Rust-а оцениваете по тараканам в своей голове.

Хвалим X - плохо. Ругаем Х - тоже плохо. Вы уж определитесь.

Ну дык и многие проекты стартуют на том, что обещает быстрый выхлоп

Я же сразу указал на энтерпраз, а не на стартапы.

Вы думаете, что Java в банки вот так раз и пришла? Этот процесс затянулся не на один год.

Я об этом вообще не думаю. Речь шла совсем о другом.

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

И что же здесь для вас неконкретно?

Или вы из тех, кто пытается искать безопасность в C++?

Или для вас, как и для RazrFalcon-а, «возможность языка» — это всегда про безопасность языка?

Поконкретнее, пожалуйста.

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

Биндинги это просто способ указания языку как вызвать код написанный на другом языке. Если сама сторонняя либа у вас сегфолтится, то любой биндинг к этой либе также будет сегфолтится.

проблема wlroots-rs как раз в том, что автор пытался написать биндинг, который не будет сегфолтится, но у него не получилось.

если ты погуглишь wlroots-rs, в первой строчке ты увидишь:

swaywm/wlroots-rs: Attemp at safe Rust bindings for wlroots - GitHub

https://github.com/swaywm/wlroots-rs

и не получилось, кстати, не потому, что rust г-но, а потому что не осилил.

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

Или для вас, как и для RazrFalcon-а, «возможность языка» — это всегда про безопасность языка?

Где вы это берёте?! Или вы сами на свои вопросы отвечаете?

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

Хвалим X - плохо. Ругаем Х - тоже плохо. Вы уж определитесь.

Мне-то зачем? Я в перспективах Rust-а не сомневаюсь, хоть мне этот язык не особо и нравится. А вот вам нравится, вы им пользуетесь, но в перспективы не верите. Как так у вас получается — хз.

Я же сразу указал на энтерпраз, а не на стартапы.

Есть стойкое ощущение, что про энтерпрайз вы наслышаны еще меньше, чем про возможности C++.

Я об этом вообще не думаю.

В данном признании слово «этом» лишнее, оно сюда по ошибке попало.

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

но в перспективы не верите

Верить - это в церковь. Завтра мозила схлопнется и конец расту.

В данном признании слово «этом» лишнее, оно сюда по ошибке попало.

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

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

Завтра мозила схлопнется и конец расту.

Ну так вы же сами сказали: «Верить - это в церковь.» Вы же верите, что без Mozilla Rust-у не выжить? Верите. Так что в церковь.

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

неконкретно

«неконкретно» - это отвечать на вопрос о «возможностях, связанных с безопасностью» возможностями, не связанными с безопасностью

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

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

не пойми неправильно, у тебя там наверняка прекрасные примеры приведены… но к чему?

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

Я спросил про безопасный, современный C++ - вы съехали, сказав, что C++ не про безопасность. Но зато там есть такие фичи - огого. В итоге опять какая-то абстрактная, шаблонная магия которую используют 2.5 наркомана.

Фичи - это то, что делает код проще и надёжнее для всех. То есть сам язык и std, а не велосипеды, которые можно соорудить из говна и палок на уровне «посмотрите как я могу».

Вот structured bindings например - это да, это фича. optional, variant, array_view, string_view - это всё упрощает код для всех. Да даже auto и лямбды.

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

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

не пойми неправильно, у тебя там наверняка прекрасные примеры приведены… но к чему?

Вы перечитайте исходное сообщение: Автор Wayland композитора Way Cooler переписывает своё детище с Rust на C (комментарий)

В нем ничего не было про безопасность. И когда RazrFalcon попытался перевести разговор в плоскость «возможности для безопасности», то я ему и сказал, что речь не о безопасности вообще.

если же ты считаешь, что вопрос был задан не по теме, не нужно выкидывать из него часть слов

Не говорите что делать мне, а я не буду говорить, куда вам пойти. Особенно когда очевидно, что вы не даете себе труда разобраться в предмете разговора.

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

Вы же верите, что без Mozilla Rust-у не выжить?

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

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

Я спросил про безопасный, современный C++ - вы съехали, сказав, что C++ не про безопасность.

Мозги включите. Хотя о чем-то я.

Давайте еще раз, для даунов.

Речь шла о том, что опытные C++ники используют возможности современного C++.

Речи о том, что эти возможности как-то связаны с безопасностью не было. Это вы все время пытаетесь перевести разговор на безопасность. Ибо придерживаетесь точки зрения:

Фичи - это то, что делает код проще и надёжнее для всех.

Так вот, не обязательно фича делает код проще и надежнее. Не обязательно даже в сочетании проще или надежнее.

Яркий пример — SFINAE. Фича. Мощная. Делает ли она что-то проще или надежнее? Сильно вряд ли.

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

Если вы этого не можете, то это не значит, что подобное не облегчает жизнь кому-то другому.

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

Это факт.

Вы называете фактом то, что еще не произошло?

Батюшки, да у царя появился конкурент в плане невменяемости.

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

В нем ничего не было про безопасность

конечно не было. в этом и проблема. а вот в том, на которое это сообщение отвечает - было:

Количество багов в плюсовом коде говорит строго об обратном.

В C++ мы же может гарантировать корректность только своего кода.

можем и дальше подниматься по цепочке, и выяснить, с чего все началось, и кто первый повернул не туда; а можем просто констатировать факт, что тебе про фому - ты про ерему, и наоборот

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

Речь шла о том, что опытные C++ники используют возможности современного C++.

Вернулись к тому, с чего начали: к «современному С++». Я спрашиваю что за возможности - в ответ тишина.

Если вы этого не можете, то это не значит, что подобное не облегчает жизнь кому-то другому.

Я спрашивал про фичи, которые облегчат жизнь мне.

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

а можем просто констатировать факт, что тебе про фому - ты про ерему, и наоборот

При этом когда мне стали задвигать про Фому, я прямо сказал, что говорю про Ерему. Так в чем претензия?

Вы хотите услышать, что Rust безопаснее C++? Да, безопаснее. Я где-то утверждал обратное?

Вы хотите обсуждать только те возможности C++, которые про безопасность?

Тогда без меня, т.к. для меня C++ — это не про безопасность вообще. И я могу рассказывать про возможности, которые упрощают жизнь мне и моим коллегам-плюсовикам. Насколько эти возможности влияют на безопасность — это отдельный разговор. Мне не сильно интересный.

Что здесь неконкретного?

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

Я спрашиваю что за возможности - в ответ тишина.

Так вы определитесь, спрашиваете ли вы про «возможности» или про «возможности, повышающие безопасность». А то ведь первое является надмножеством над вторым.

Я спрашивал про фичи, которые облегчат жизнь мне.

ХЗ. Вообще-то C++ не для даунов, вроде вас или упоминавшегося здесь RussianFellow с RSDN. Так что, вам облегчит жизнь разве что отказ от C++.

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

При этом когда мне стали задвигать про Фому, я прямо сказал, что говорю про Ерему. Так в чем претензия?

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

Вы хотите обсуждать только те возможности C++, которые про безопасность? Тогда без меня, т.к. для меня C++ — это не про безопасность вообще

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

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

а в том, что ты оффтопишь сам с собой.

В данном случае на пару с вами. Ибо вообще не понял, что вы хотели донести своими претензиями по поводу неконкретности. Так что если хотите конкретики — начните с себя.

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

Вы называете фактом то, что еще не произошло?

передергиваешь

– если поссать на оголенный провод, можно коньки отбросить, это факт.

– Вы НаЗыВаЕтЕ фАкТоМ тО, чТо ЕщЕ нЕ пРоИзОшЛо? БаТюШкИ

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

Сейчас создать язык без мешков денег невозможно

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

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

– если поссать на оголенный провод, можно коньки отбросить, это факт.

Да вы, батенька, демагог.

Можно было бы поиграть в игру «докопайся до столба» и сказать, что оголенный провод не обязательно будет под напряжением, а даже если и под напряжением, то еще и каким именно. И то, что факт относится к «можно отбросить», а не к гарантированному летальному исходу.

Но давайте не будем играть. По сути последствия мочеиспускания на оголенный провод под напряжением определяются объективными и многократно проверенными физическими законами.

Тогда как последствия прекращения финансирования разработки Mozilla Rust-а — это непростой и недетерминированный процесс, исход которого точно никто не знает. И который сейчас может лишь предсказываться с некоторой степенью вероятности.

Так что фактом является лишь то, что Mozilla оплачивает труд ряда разработчиков Rust-а.

А вот то, что с Rust-ом еще не произошло (и произойдет ли вообще) фактом быть не может.

Но если ваша цель поиспражняться в троллинге, то можете попробовать еще как-то себя проявить.

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

факт - это скорее вот это:

Это факт. Сейчас создать язык без мешков денег невозможно

а по сути согласен.

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

Тогда как последствия прекращения финансирования разработки Mozilla Rust-а — это непростой и недетерминированный процесс, исход которого точно никто не знает.

Разработка ПО требует денег. Нет денег — сопровождение на уровне не выше, чем у хобби-проектов.
Rust это не тот язык, что может выжить в пустыне.

quantum-troll ★★★★★
()
Ответ на: комментарий от MyTrooName

Ну так проект мы собираемся писать сегодня. Мы же не знаем проживёт ли раст ещё 5 лет.

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

Суть safe кода не в том, что весь код — safe, а в том, что только малая часть кода unsafe. Ты решил упороться на манер Царя? Ну, удачи на этом нелёгком пути.

у него в никнейме написано «царь», что ты хотел

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

ХЗ. Вообще-то C++ не для даунов, вроде вас или упоминавшегося здесь RussianFellow с RSDN. Так что, вам облегчит жизнь разве что отказ от C++.

Меланхоликам, должно быть, хорошо с C++ - кучу деталей надо держать в голове. Может, они кайфуют от этого. Хотя меланхолики так устроены, что вечно не в ладах с окружающим миром. Так что, 100%-го кайфа не получится.

А rust - это из серии «написал и забыл». Можно не заморачиваться мелочами так сильно, что удобно. При этом код получается быстрый, потребляет мало памяти. Что еще надо для счастья?!

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

С C++ та же фигня, учитывая наличие Евгения и псевдоцаришки.

Virtuos86 ★★★★★
()
Ответ на: комментарий от quantum-troll

Rust это не тот язык, что может выжить в пустыне.

Ну я вот честно не знаю, как у людей (не у одного!) в голове может одновременно сочетаться признание за Rust-ом неоспоримых достоинств (т.е. конкурентных преимуществ) и уверенность в том, что без финансирования Mozilla-ы Rust умрет.

Остается разве что напомнить несколько примеров из не такого уж давнего прошлого.

Язык Scala был исследовательским проектом с не очень понятными перспективами, за которым не было большой коммерческой силы. Но на тот момент это был чуть ли не самый продвинутый язык для JVM, который начал активно применяться. И в 2011-ом году разработчики Scala получают грант в размере 2.3M Euro на пять лет.

Операционная система Salfish OS. Появилась на осколках того, что пилила в свое время Nokia. Для чего была создана новая компания Jolla. И хотя сколько-нибудь заметного присутствия Salfish OS на рынке смартфонов не было вообще никогда, разработка продолжается и деньги на эту разработку находятся.

Да даже сама Mozilla появилась как результат организации развития открытых Netscape исходников. Т.е. исходники были, денег не было. Но появилась организация и, в итоге, появились деньги и на Firefox, и на Rust. Кстати, напомню, что кроме Mozilla в Rust вкладывался активно еще и Samsung.

Так что имея хотя бы эти примеры перед глазами и трубя о том, насколько Rust превосходит C++, зная о том, что Rust уже нашел применение в сотнях (если не тысячах) компаний по всему миру (включая Google), и при этом не верить в то, что при (гипотетическом) внезапном исчезновении одного источника финансирования не найдутся другие источники, способные поддержать проект...

Ну вот не знаю, как это охарактеризовать вообще.

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

Так что, 100%-го кайфа не получится.

Вообще-то речь шла не о кайфе.

Я даже нигде не говорил, что разрабатывать на C++ лучше/удобнее, чем на Rust. Речь шла о том, что если возможности C++ используются активно, то выгоды от перехода с C++ на Rust не столь очевидны, как в ситуациях, когда неосиляторы трахаются с «C с классами».

А rust - это из серии «написал и забыл». Можно не заморачиваться мелочами так сильно, что удобно. При этом код получается быстрый, потребляет мало памяти. Что еще надо для счастья?!

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

Жизнь слишком коротка, чтобы отравлять ее мучениями с C++.

А если вас в C++ что-нибудь держит (скажем, как в моем случае, наличие legacy), то не стоит пытаться сделать из C++ то, чем он не является.

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

А если вас в C++ что-нибудь держит (скажем, как в моем случае, наличие legacy), то не стоит пытаться сделать из C++ то, чем он не является.

А ведь всё-равно пытаются. Core Guidelines, расширения всякие. К чему бы это? Неосиляторы?

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

Ну вот не знаю, как это охарактеризовать вообще.

Пессимизм. Но ты прав, хотя бы из-за наличия людей, пилящих rust-analyzer.
Так что worst-case scenario далеко не самый вероятный.

quantum-troll ★★★★★
()
Ответ на: комментарий от red75prim

Core Guidelines

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

расширения всякие

Про какие расширения идет речь?

К чему бы это?

К тому, что за почти 35 лет своего развития C++ стал слишком большим. А его сообщество слишком фрагментировано. И вопрос «Как программировать на C++?» получил слишком много (не)правильных ответов.

Неосиляторы?

И это тоже. Оных в рядах C++ников на порядки больше, чем среди Rust-оманов. Не исключено, что программирующих на C++ неасиляторов (среди 2-3 миллионов действующих C++ программистов) тупо больше, чем программистов на Rust. Вообще.

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

Так что worst-case scenario далеко не самый вероятный.

В любом случае этот worst-case не является фактом.

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

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

И, поскольку ноги в C++ регулярно отстреливают, то можно с этим тоже что-то сделать.

Но упора на безопасность, как это происходит в Rust (или в безопасных языках с VM) в C++ нет. И лично я сомневаюсь, что когда-нибудь будет. Но это только мое имхо.

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


– если поссать на оголенный провод, можно коньки отбросить, это факт.

Сори что влез в ваш дискус, но то что выше - не факт. Там в струе промежутки есть.

hbars ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.