Опубликован релиз языка программирования общего назначения Rust 1.67, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки)...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=58558
долгих лет! очень рад! круто!
https://www.youtube.com/watch?v=ItBgDuUi3Xk
в тему!
> для платформ Sony PlayStation 1Они потерялись во времени эдак 18 лет назад.
Они идут и шум их слышен на 18 годах от текущего... пока...
Представляешь, когда они до 5-ой плойки дойдут?
>> для платформ Sony PlayStation 1
> Они потерялись во времени эдак 18 лет назад.Кто "они"?
Одному чу[в|д]аку было интересно - он и запилил поддержку. Хотя мог бы попукивать в уютное старое кресло и строчить бессмысленные анти-растовые комменты опеннете.
Знаний растаманов хватает только на технологии прошлого века.
> Знаний растаманов хватает только на технологии прошлого века.Т.е. ты нам сейчас покажешь свой порт gcc на пятую плойку (ну или хотя бы первую)? Или как обычно у опеннетных балаболок, начнутся виляния задом?
Зачем портировать то, что было изначально использовано самой Сонькой?! Карл, PS изначально на gcc!
>> Т.е. ты нам сейчас покажешь свой порт gcc на пятую плойку (ну или хотя бы первую)? Или как обычно у опеннетных балаболок, начнутся виляния задом?
>> Или как обычно у опеннетных балаболок, начнутся виляния задом?
> Зачем <виляния задом поскипаны>Яснопонятно.
> Карл, PS изначально на gcc!
Т.е ты сейчас дашь ссылку на tier3 поддержку PS в gcc или опять "как обычно"?
Sony used the free software GNU C compiler, also known as GCC
Спаcибо! Ждем больше системных компонентов на rust в Linux
тем временем зиг перешел на самообеспечение
И нафиг он нам нужен в новости про rust? Rust уже в ядре, а на Зиг пишут полтора человека.
зиг ещё хуже раста
Почему?
Заставить писать на нём трудно даже за деньги.
там есть что-нибудь вроде qml? (не враппер, не gtk, не js (qml != js))нормальные десктоп приложухи можно писать?
Slint посмотри(а вообще areweguiyet в помощь)
просили же нормальные...
Да кому он нужен с такой отбитой лицензией?
Есть rui, есть tauri, есть egui, есть еще много других, не таких популярных.
Tauri
Вот бы переписали на расте
На самом деле неплохой критерий для проверки состоятельности языка.
Впрочем, я скорее за то, чтобы писать на нём новые вещи, вроде Libreddit, CSS Quantum, Veloren.
> На самом деле неплохой критерий для проверки состоятельности языка.
> Впрочем, я скорее за то, чтобы писать на нём новые вещи, вроде
> Libreddit, CSS Quantum, Veloren.Вот это да... Вот это нужные проекты!
Братан, без шуток нужные.
Libreddit, в отличие от обычного Reddit на мобильных устройствах, не блокирует тебе информацию из-за того, что ты не авторизовался. Самое то, чтобы находить ту или иную информацию в популярных сообществах.
CSS движок Quantum повысил производительность Firefox благодаря многопоточности.
Veloren, как FOSS игра, претендует себя как альтернатива скатившемуся Cube World. Кому-то это может быть ценно, просто ты не попал в ЦА.
> "#[must_use]"Надо было #[must_die] еще заимплементить на радость анонимусам.
В некоторых проектах на С встречаю функцию die(), которая обычно делает perror и еxit. Да в perl такая есть.
Язык Си - язык ненависти, расовой и гендерной дискриминации.
Насильник - программист на Си (доказанно Хансом Рейзером)
> Язык Си - язык ненависти, расовой и гендерной дискриминации.
> Насильник - программист на Си (доказанно Хансом Рейзером)Кстати, Ханс не насильник. Опять растоман ошибся.
> Язык Си - язык ненависти, расовой и гендерной дискриминации.
> Насильник - программист на Си (доказанно Хансом Рейзером)Ханс убил жену, потому что она изменяла. Ратоманам-куколдам не понять.
А внезапно - почему бы и нет.
Спецификатор, вставляющий принудительно при конпеляции шаблонно сгенерированный код, который ищет все разделяемые ресурсы там, семафоры, отслеживает логику локов внутри функции и при получении сигнала или паники корректно разлочивает, закрывает ресурсы и при необходимости удаляет созданные системные примитивы.Растаманьы думать не должны, они должны писать много кода за три копейки и под страхом твиттерной отмены.
Так на Rust, сынку, платят ГОРАЗДО БОЛЬШЕ чем на твоих С++ и тем более чем на чистом С.
да, да, только помимо программирования на Расте нужно еще свою подпись ставить на документах и вопросы не задавать. Очень много плотють, очень
Пруф? Или так блокчейн платежные системы имеешь в виду?
> Для функций async с Future::Output реализована возможность указания аннотаций "#[must_use]"Почему для async функций указание аннтоации это отдельный случай? Да в сама аннотация помечена как "This is a nightly-only experimental API." https://doc.rust-lang.org/std/hint/fn.must_use.html , а вот в С++ [[nodiscard]] в 17-ом стандарте и до этого можно было использовать через кастомные атрибуты. И это вы называете стабильным языком? Рановато еще.
У многих и стабильных языков 28 летней давности, даже такого нет
> У многих и стабильных языков 28 летней давности, даже такого нетНу раст не позиционирует себя как какие-то многие языки. Он лучший, самый безопасный, замена дырявой сишки. Или не так?
В оригинальной новости расписано подробнее. Async функция возвращает Future и аннотация must_use применялась только к этой структуре, а не к её ожидаемому результату. Теперь это починили и аннотация распространяется в том числе и на Future::Output.
Ну так в плюсах больше 30 лет ждали этой фичи, а тут уже она есть!
Сдаётся мне, 30 лет назад плюсовики даже не знали о такой фиче и полагались на своё идеальное, по мнению экспертов с Опеннета, внимание к деталям. Потом увидели её в каком-то другом языке, поняли, что годно, и потянули себе.
Атрибут must_use стабильный, вы дали ссылку на функцию hint::must_use, которая не стабильна, а не на атрибут.Почему возникла необходимость дорабатывать поведение этого атрибута для асинхронных функций? Дело в том, что сигнатура async-функции
Это синтаксический сахар для сигнатуры примерно такого вида:
async fn foo() -> Bar
fn foo() -> impl Future<Output = Bar>
Если на такую функцию повесить атрибут must_useто получится, что он применяется к возвращаемому типу impl Future, который и так всегда must use. На самом деле, в рамках синтаксиса async-функции, программист ожидает, что must_use применится к значению типа Bar, которое возвращает не функция, а футура, которую вернет функция:
#[must_use]
fn foo() -> impl Future<Output = Bar>Понятно, что с точки зрения внутреннего представления это особый случай поведения #[must_use], который отличен от предыдущего, применимого для объявлений типов и значений, возвращаемых из функций напрямую.
#[must_use]
async fn foo() -> Bar
Получается, что синтаксический сахар, скрывающий суть, был проблемой?
Не то что бы проблемой, просто он расширил применимость синтаксиса объявления функции. Сделав возврат значения футуры синтаксически подобным возвращаемому значению функции, естественно возникла потребность применять все, что положено возвращаемым из функции значениям также и к возвращаемым из футуры, если они записаны в синтаксисе функций.
Код под 1.66 соберется под 1.67?
Да.
Ты уверен?> ошибки, вызванные предположением, что функция изменит значения
Эксперты опеннета не перестают радовать уровнем своей экспертизы.
Оказалось, что приложения на расте могут собираться с ошибками...
Раст от логических ошибок в коде не защищает никак, как и 99,9% других существующих языков. Это отчасти есть только в функциональщине с зависимыми типами. Раст это плюсы в наморднике и строгом ошейнике, дабы подсократить класс ошибок, являющийся основным источником CVE
Дак там немного другое, там UB. Так нагородили, что невозможно понять, что делает ф-я: то ли меняет значение, то ли возвращает. В общем, хренотень нагородили.
А вместо того, чтобы сесть и внимательно продумать заголовки ф-й, начали их костылями подпирать.
На каком языке сразу понятно, что делает функция bar() - меняет значение или возвращает?
В расте же. Если параметр передан как mut, значит меняет.
Прикинь, в других языках тоже есть var, const и out. Растаманы, как обычно, взяли готовое и назвали по-растамановски.
Разберись сначала, потом знакомые слова пиши
меня тянет блевать от использования слов foo и bar.Зачем вы их используете? Они же с реальностью никакой связи не имеют??
От того и используем, что никакой связи с реальностью не имеют, т.к. в контексте их использования она (связь) не нужна.
>Безопасная работа с памятью обеспечивается в Rust во времяПро это написали, а почему про ОСОБЕННОСТИ работы с памятью не написано?
Потому, что аутотренинг в каждой новости. Работа безопасная, безопасная, безопасная - Я СКОЗАЛ БИЗАПАСНАЯ! БИЗАПАСНАЯ! ТУПЫЕ СИШНИКИ ОДЕРЖИМЯ АРИФМЕТИЯКОЙ УКАЗАТЕЛЕЙ, А Я СВОБОДНЫЙ ОТ НАВЫКОВ ПОГРОММИСТ!Просто пролистывай, это надолго. Надо же каждому занюханному колёснику на раффе втолковать, что хруст - безопасный. БезопасТно безопасТный.
> Потому, что аутотренинг в каждой новости.У них еще в changelog'ах к релизам политота проскакивает
Seriously?
> Seriously?Ну вот про Иран https://blog.rust-lang.org/2022/11/03/Rust-1.65.0.html
https://blog.rust-lang.org/2022/02/24/Rust-1.59.0.html
Да уже и сам нашел. Хм.
Еще один cons в сторону этого языка.
Я с Notepad++ поэтому и ушел, бо слишком много всунуто политоты.
> слишком много всунуто политоты.В репах фейсбука на гитхабе тоже политоты много появлиось (в виде плашки в README), но если посмотреть в историю, то добавил их везде 1 человек, притом он менеджер какой-то. Национальность я думаю сами поймете.
Changelog вообще-то тут: https://github.com/rust-lang/rust/blob/master/RELEASES.md
> Changelog вообще-то тут: https://github.com/rust-lang/rust/blob/master/RELEASES.mdНе придирайся. В блоге языка политота. Это даказано. Метка поставлена.
Это не отменят того факта, что в Changelog политики нет.
>>для платформ Sony PlayStationВот где действительно нужна безопасность!
А вот вдруг ты начнешь играть в Syphon Filter 2, а тут бамц! и Прямо в лаборатории на Гейба попрут глючные модельки из-за use-after-free? Или прямиком перед отключение света в туннеле найдется null-указатель?Вишь, какие продуманные.
>>>для платформ Sony PlayStation
> Вот где действительно нужна безопасность!Там уже можно поставить Линукс через уязвимость в браузере. Куда безопаснее?
>>>для платформ Sony PlayStation
> Вот где действительно нужна безопасность!Если кто-то обеспечил поддержку этой платформы, значит ему она там действительно нужна.
Интересно.., только у меня одного получается писать на ржавом так же просто, как на питоне, только намого эффективнее?
> только намого эффективнее?Это когда кол-во кода стремится к нулю? (Все мы эксперты знаем, что лучший код - это его отстутсвие). Нет, ты не один такой.
Да вы все равно не поймете, там за печкой...
Да, только у тебя одного, все остальные сидят на Опеннете и плачутся, что Rust невыносимо ужасный, а им его навязывают под страхом пыток джавой.
Скинь примеры кода. Я то тоже могу писать на расте, не используя ссылки и лайфтаймы, используя везде исключительно владение через Vec или String, передавая все эти значения через clone. И да, это всё равно будет на порядок эффективнее питона. Только смысл в этом какой? Чтобы писать оптимальный код, сопоставимый с кодом на Си, тебе всё равно необходимо использовать ссылки/указатели. А вот с этим у раста и начинаются бесконечные приседания, аннотации всюду лайфтаймов и прочая ментальная эквилибристика. А ещё не забудь везде mut проставить, натыкать где надо Cell/RefCell, обернуть всё в Rc/Arc, расставить move у замыканий и всё это для того, чтобы заставить компилятор всё же скопилировать твой растово-идиоматичный код, который был бы в 10 короче просто с использованием обычных указателей.
Очередной онаним-анимешник рубит правду-матку, со своими 0.20 лет опыта в разработке. Оказывается, на Rust писать сложно, ой-ой-ой! Разработчики Linux-то дураки, не спросили у него, теперь придётся везде (в 10%) расставлять mut и лайфтаймы, а могли бы расставлять const через слово и не париться.
Смотря что ты пишешь и как ты пишешь. Если пытаешься натянуть на Rust свои старые привычки - то да, будут бесконечные RefCell/Rc и пляски с лайфтаймами. Если же уже приноровился к Rust, то в обычном прикладном коде (мы ведь про прикладной код, так как сравниваем с Python, верно?) не будет ни лишних clone, ни проблем с лайфтаймами.
Всё это, безусловно, интересные теоретизирования, но хотелось бы рассмотреть конкретные примеры. Споткнуться в системе типов раста можно много в каких местах, я же покажу только один случай, но зато очень наглядный, который раскрывает всю суть раста в полной мере. Этот пример не про clone, а немного про другое. Я максимально упростил пример, оставив только суть. Предметная область меня не сильно интересует, однако в реальной практике такое случается довольно часто. Не просто же так я этот пример "придумал".Итак, задача: хочу написать простой тип Grouper, который будет группировать значения по определённому ключу и будет иметь два основных метода:
// Устанавливает ключ текущей группы
fn set_current_group(&mut self, current_group: String)
// Вставляет значение в текущую группу, вернёт true в случае успешной вставки
fn add_to_group(&mut self, value: i32) -> boolРеализация: https://play.rust-lang.org/?version=stable&mode=debug&editio...
И правда, всё просто и даже никаких лайфтаймов не нужно. Круто!
Получившийся тип определяется так:
struct Grouper {
groups: HashMap<String, Vec<i32>>,
current_group: String,
}Но такая реализация далеко не самая эффективная. Можно заметить, что в методе add_to_group мы каждый раз ищем один и тот же ключ (current_group) в хешмапе. Всё же, мы пишем на производительном расте, а не на каком-то там медленном питоне. Хочется закешировать текущую группу и обращаться к ней напрямую. Попробуем это как-то изобразить:
struct Grouper {
groups: HashMap<String, Vec<i32>>,
current_group: Option<&'huh? mut Vec<i32>>,
}Вот тут и появляются те самые пляски и приседания. Реализовать подобную структуру без костылей просто невозможно. Ну, конечно, наверняка найдутся растеры с 20 лет опыта за спиной и покажут как правильно решить подобную простую задачу, которая в других языках вообще не явлется проблемой. С удовольствием посмотрю и может тогда, наконец, прозрею и познаю все тайны безопасного программирования. Ну а пока влезу в шкуру растера и попробую всё же "решить" эту проблему. Предлагаю несколько вариантов:
* Просто забить. И таак сойдёт..
Довольно разумное решение, которое оставляет за собой много философских вопросов: а зачем мне вообще в таком случае нужен раст? Какие проблемы он решает? Не даёт мне писать производительный код? Ради чего? Ради т.н. "безопасности"? Стоит ли это того?* Вспомнить "свои старые привычки", то есть просто использовать RefCell. Решение: https://play.rust-lang.org/?version=stable&mode=debug&editio...
Ну то есть, такие полезные типы как Rc и RefCell всё же бывают нужны. Не просто так они добавлены в std. Да, тут растеры будут уверять вас, что их нужно использовать редко и только в действительно "редких" случаях как этот. Только с каких пор простое кеширование значения стало чем-то редким? Ну хорошо, всегда можно найти себе оправдание всякими умными словами "преждевременная оптимизация" (то есть вернуться к первому решению), но поймите, к примеру в C++ это вообще не является проблемой. Иногда, и довольно часто, нужно написать такой код и от этого не уйти. Тем более, даже так это решение не самое оптимальное, ибо RefCell это по своей сути динамический бороу чекер, который проверяет возможность досупа к значению в рантайме, то есть имеет ненулевую стоймость, в отличии от простого указателя. К слову об этом, рассмотрим третье решение.* Да, unsafe! Решение: https://play.rust-lang.org/?version=stable&mode=debug&editio...
Самое сложное из всех представленных. Осмелиться на такое потребует от вас небывалой стойкости духа. Мне приходилось постоянно убирать пот со лба полотенцем, пока я писал это решение, стараясь нигде не разыменовать null и не вызвать UB. Конечно, поскольку этот код использует unsafe, полагаться на его корректность никак нельзя. Я уверен, там куча багов, на которые мне конечно же укажут прошаренные растеры и заклинят меня удалить компилятор и больше не производить на свет подобную ересь.* Использовать 100% safe и zero cost абстракцию, которая решает данную проблему и требует всего лишь подрубить дополнительную зависимость с crates.io
И правда, зачем делать полноценный язык программирования, если можно сделать недоделку и предоставить удобнейший магазин костылей на любой вкус?* А может ну его? Почему бы просто сразу не писать на питоне? Решение: https://www.online-python.com/A4H621D8Og
Иронично, но написать оптимальное решение можно без всяких приплясок даже на питоне!
Думаю, это самое лучшее решение из всех приведённых. Да, это будет не так быстро, но если нужна скорость то почему бы не взять C++? Опять же, никаких подобных проблем в C++ нет. Конечно, каждый язык имеет свои слабые стороны, но хотя бы они, в отличии от раста, не затрагивают существенную часть повседневных нужд и доказали временем свою состоятельность. Они позволяют писать рабочий код, без пафоса повсеместной "безопасности", а просто код, который работает. Да, не идеально, но он работает. Баги есть и будут везде, в том числе и в расте. Я расстрою растеров, но волшебства не существует, простите. Чем раньше вы это поймёте, тем меньшее разочарование в конечном счёте испытаете.Для остальных хочу сказать, каждый раз, когда любители раста рассказывают вам сказки про "не будет ни лишних clone, ни проблем с лайфтаймами", не стоит сразу смеятся им в лицо. Эти люди живут в своём "безопасном" мире, а для них вы лишь недалёкий неуч с опеннета, не важной какой опыт у вас за спиной. Отнеситесь с пониманием. Человеку свойственно умнеть со временем, узнавая что-то новое. К сожалению, не у всех это получается, но терять надежду не стоит. Вот даже в Linux их приняли, лишь бы поменьше обижались. Того гляди, начнут учить нормальные языки вроде Си и научатся писать нормальный код, без тонны костылей и подпорок.
есть еще такое околокостыльное решение в оффициальной доке https://doc.rust-lang.org/nightly/core/cell/index.html#imple...
Чем вам решение с указателем не угодило? Unsafe - это не костыль, это полноправная часть языка. Вы не знали? Просто unsafe нужно правильно использовать и по минимуму, но отказаться от него совсем невозможно.Теперь, что касается самоссылающихся структур. Уж извините, но за 5 лет профессиональной разработки на Rust я ни разу не испытал необходимость реализовывать такое. Это больше 10 проектов, десятки тысяч строк кода. Так что вы явно преувеличиваете, пытаясь показать, что с подобным приходится сталкиваться постоянно.
Это не значит, что я не писал unsafe кода. Писал, когда это было оправдано и необходимо. Так что его доля вряд ли превышает 0.1% от остального кода.
Я вот кстати уже не первый раз замечаю, что у многих есть непонимание того, что unsafe - это не костыль, это - одна из главных "киллер-фич" языка.
>Для функций async с Future::Output реализована возможность указания аннотаций "#[must_use]"Хорошая фича. Такое есть в android, а в обычной java и kotlin нет
>>Для функций async с Future::Output реализована возможность указания аннотаций "#[must_use]"
> Хорошая фича. Такое есть в android, а в обычной java и kotlin
> нетКак можно сравнивать android с java или kotlin?
а растаманам не привыкать сравнивать длинное с тёплым.
Шо, опять? Ведь совсем недавно (середина декабря) был выпуск 1.66.
> Шо, опять? Ведь совсем недавно (середина декабря) был выпуск 1.66.
> середина декабряТы ошалел? Больше месяца прошло уже! Через неделю код уже старый. Забываешь пить смузи?
> Шо, опять? Ведь совсем недавно (середина декабря) был выпуск 1.66.Минорные релизы Rust выходят с периодичностью в 6 недель, по расписанию. С 2015 года так, привет.
Не нужно. Мы подождем релиза carbon 1.0.
У вас уже гошка есть, не нравится?
Не нравится.
эксперты по Расту знают толк в ООП
Программирование умирает, скоро эту отрасль на 99.9% займет искусственный интеллект. У дел останутся только талантливые дарования которые могут этот самый искусственный интеллект писать, вэб-макаки и прочие останутся за кормой.
Только в твоих фантазиях.Заменят тебя и таких как ты, кто пишет однострочники.
Потом наши потомки найдут трактаты идиотов которые пытались на этом "генерировать код". 10 листов описания задачи на 1 лист кода.
Уже лет 15 слышу эти вангования. Вот только что-то всё не сбывается.
ИИ учится на прошлом опыте людей и программистов. Но, технологии бегут семимильными шагами, ИИ нужно постоянно обучать. Если программисты буду использовать только ИИ то все встанет. Но, такого не будет потому что это будет у всех, а бизнесу нужны преимущества.
Достаточно закрыть некрософт гитхаб
ИИ не нужен, нужен ИР. ИИ - это просто скопище знаний, тогда как ИР способен обучаться и мыслить самостоятельно. Но человечеству до этого так же далеко, как ишаку до разума вообще.
Как можно умудриться написать компилятор, которому нужно 32 гигабайта оперативки для сборки самого себя? Что они там курят?
Чуть больше, чем в гугле.
Что в гугл? Какой их компилятор требует столько же оперативы?
Курят чуть больше, чем в гугле.
Бред. У меня на четырёх гигах спокойно собирается.
Если Вы собираете на 4Гб, то чем то Вы не тем занимаетесь. Если конечно это не сборка в виртуалке с 4Гб для спортивного интереса.
> Если Вы собираете на 4Гб, то чем то Вы не тем занимаетесь.
> Если конечно это не сборка в виртуалке с 4Гб для спортивного
> интереса.Это VPS-ка c Фряхой. Делаю всякие эксперименты на ней. Так что да, это для спортивного интереса.
>> Если Вы собираете на 4Гб, то чем то Вы не тем занимаетесь.
>> Если конечно это не сборка в виртуалке с 4Гб для спортивного
>> интереса.
> Это VPS-ка c Фряхой.А, ну тогда все ясно - Бздуны знатные неосиляторы.
>>> Если Вы собираете на 4Гб, то чем то Вы не тем занимаетесь.
>>> Если конечно это не сборка в виртуалке с 4Гб для спортивного
>>> интереса.
>> Это VPS-ка c Фряхой.
> А, ну тогда все ясно - Бздуны знатные неосиляторы.Спасибо за комплимент!
> У меня на четырёх гигах спокойно собирается.Действительно, перепутал ебилды, прошу прощения за дезинформацию. Это было требование другого проекта, вызванное сильным распараллеливанием сборки.
За rust зацепился, наверно, по той причине, что процесс его сборки с -O3 сегфолтился в разных местах.
>> У меня на четырёх гигах спокойно собирается.
> Действительно, перепутал ебилды, прошу прощения за дезинформацию. Это было требование
> другого проекта, вызванное сильным распараллеливанием сборки.Бывает.
Отличный язык! Позволяет безопасно работать с памятью
Отличная память! Позволяет безопасно работать языком
Отличная работа! Безопасно запоминать позволение языком.
Отличный язык! Позволяет проводить поведенческие исследования.
Нет.
Rust уже портировали на raspberry pi?
Уже: https://www.raspberryconnect.com/raspbian-packages/167-raspb...
Но, ведь весь функционал раста можно реализовать и в плюсах.
s/реализовать/реализован/
да даже на ассемблере все это можно реализовать
У ассемблера нет чекера борова, допускает адресную арифметику.
в плюсах нет чекера борова, допускает адресную арифметику
У процессора нет чекера борова, допускает адресную арифметику.
> Но, ведь весь функционал раста можно реализовать и в плюсах.Нельзя, потому что придётся изменить кое-что в фундаментальной философии языка и сломать обратную совместимость. Плюсы на это никогда не пойдут. Так что хорошо, что есть отдельный язык. Можно выбирать.
> потому что придётся изменить кое-что в фундаментальной философии языка и сломать обратную совместимостьЧто придется изменить в С++?
В Rust небезопасные операции являются расширением языка, который по-умолчанию безопасен. В C++ наоборот, примитивы для безопасной работы с памятью являются расширением языка, по-умолчанию небезопасного. Это два принципиально разных подхода.
> В Rust небезопасные операции являются расширением языка, который по-умолчанию безопасен.
> В C++ наоборот, примитивы для безопасной работы с памятью являются расширением
> языка, по-умолчанию небезопасного. Это два принципиально разных подхода.Небезопасные операции можно запретить на уровне линтеров. Вместо обычных указателей использовать обертку (как это сделал chromium c MiraclePtr).
Синтаксис похож на исходник какой-то навороченной заскриптованной web-страницы...
> заскриптованной web-страницы...дважды обфусцированной.
Кстати, статья про синтаксис: https://matklad.github.io/2023/01/26/rusts-ugly-syntax.html
А что это за ниосилятор?
Для тех, кто не понял юмора: статья написана известным экспертом по языку Rust Алексеем Кладовым.
Этот язык изобрели для того, чтобы конкретно отсеять самых поехавших фанатиков, которые преданно будут летая в иллюзиях свободы и безопасности несознательно и в беспамятстве всё делать в угоду корпораций
Расту дороги неисповедимы!
Ну так радуйтеь! Они будут сидеть в своем загончике и никому не меша...
О нет, сишники уже приняли их в ядро, гугел нашлепал 1.5 ляма строк кода для андроида, амазон сделал firecracker...
Как же так-то??
>приняли их в ядроУдивительно, что в поделке корпораций используеется язык от корпораций(нет).
А что же тогда там забыла божественная сишечка? Или было просто лень переписывать?
Только малолетний недоросль может такой вопрос задать. Потому что раста не было, и потому что этот блоатваре был излишний.
Взять и все переписать только в малолетнем недоросле может быть легко, так же, как посуду помыть или убрать мусор за собой.
Назовите хоть одну корпорацию, в которой Rust доминирует.
С помощью ваших сектантов начнет. Ваш выбор ведь вы сами сделали и вам никто его не навязывал, свободные кодеры!
Языки развиваемые корпорациями никогда не взлетят. Расту дорогу может дать только великий Столлман, без одобрения Столлмана он не взлелит.
Языки развиваемые корпорациями никогда не взлетят. Расту дорогу может дать только великий Торвальдс, без одобрения Торвальдс он не взлелит.
> Языки развиваемые корпорациями никогда не взлетят. Расту дорогу может дать только великий
> Столлман, без одобрения Столлмана он не взлелит.Путь к одобрению Столлмана лежит через лицензию.
* Messages for package dev-lang/rust-1.66.1:* There is NOT at least 11520 MiB disk space at "/var/tmp/portage/dev-lang/rust-1.66.1/temp"
*
* Space constraints set in the ebuild were not met!
* The build will most probably fail, you should enhance the space
* as per failed tests.
*
* ERROR: dev-lang/rust-1.66.1::gentoo failed (pretend phase):
* Build requirements not met!
какое же это г-но