Разработчики Chrome экспериментируют с использованием языка Rust. Работа ведётся в рамках инициативы по предотвращению появления ошибок работы с памятью в кодовой базе Chrome. В настоящее время работа ограничивается созданием прототипов средств для использования Rust. Первой задачей, которую необходимо решить до того, как начать полноценно использовать Rust в кодовой базе Chrome, называется обеспечение переносимости между кодом на C++ и Rust...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=53575
Rust обеспечивает безопасность от double-free и use-after-free, а то что "библиотека cxx автоматически создает безопасные биндинги" - это про отсутствие помарки unsafe, что не делает код безбажным и не превращает С++, над которым вы делаете обертку, в гарантированно безопасный даже от тех двух багов, которые Rust заявляет что помогает избежать.Кстати, это и в репозитории генератора оберток cxx написано - мол, наши прекрасные обертки великолепны и безопасны, но ваш код на С++ никто не проверяет. То есть баги как были так и остаются, меняется только то, что Rust-разработчики хрома с гордым лицом переложат ответственность за любые баги на С++-разработчиков, а сами продолжат писать код на "safe rust".
Иногда кажется, кто открылась новая айтишная тоталитарная секта: Швидетели Безопасного Руста.
И у них есть точно такие же брошюрки: "бизапасная память" и "указатели - посланцы сатаны". Объяснить, чем именно достигается этот результат (отказом от ручной работы с указателями) может почти каждый из этой секты; рассказать о возникаемых проблемах этой архитектуры может уже далеко не рядовой аколит, а только реально посвященный; показать, как именно правильно работать с unsafe-кодом для преодоления естественных проблемы, вроде проблемы 10к/10М - могут единицы; рассказать, зачем затравили того автора веб-либы из карго не может никто.Ну, короче, ждём от технарей Брина эпохального "64Гб RAM должно хватить всем для трёх вкладок".
Секта свидетелей незаменимого Си вот точно оформилась.
Понимаешь, братец мой вебмакак... А ведь все те высокоуровневые языки, на которых мы пишем - сами написаны на незаменимом С.
Это не так. Rust изначально на OCaml был написан, затем стал компилировать сам себя.
А зачем он вообще был написан? Пользовались бы OCaml, ну или Ada для супернадёжности.
Значит, чем-то не устроили. Мне тоже интересно чем.
ООП и сборщиком мусора
Фронтенд для LLVM ты хотел сказать?
Я пишу на Си. 20 лет назад деды ассемблерщики точно так же выступали, и синтаксис у си был слишком сложный, и абстракций слишком много, и ассемблер был незаменим, и в ногу себе нельзя было с вертухи пальнуть. Где они теперь?
Вроде живы
https://github.com/videolan/dav1d
https://github.com/xiph/rav1e
Rav1e на треть написан на rust, кстати.
Там на ассемблере только векторные ядра фильтров и т.п. На С это пишется интринсиками, а вообще я считаю что тормоза из комитета должны были добавить векторы в язык, много раз уже писал.Это как раз аргумент в пользу того, что Си как системный язык не развивается.
Давай посчитаем 20 лет назад это 2000 год. В то время деды ассемлерщики не могли топить за ассемблер. Потому-что дедов ассемлерщиков тогда уже не было, они уже тогда "умерли от старости". Тогдашние "деды" это высокоуровневые Фортранщики, Паскальщики и Сишники начинавшие в конце 1970-1980 гг. А "Си плюс-плюсники" тогда писали на "Си с классами" и вполне были ещё модны и молодёжны.Да, деды ассемблерщики на самом деле были, но они жили в конце 1960 - нач. 1970-х. Деды ассемблерщики - это ровесники Никлауса Вирта. И то что ты говоришь скорее могло быть не в Совке а в Штатах.
Вывод: "Ты как тролль вбросил неверную информацию".
> Давай посчитаем 20 лет назад это 2000 год. В то время деды ассемлерщики не могли топить за ассемблер.wasm.ru ведь примерно тогда процветал. fasm это тоже примерно тогда. Может топившие за асм тогда не были дедами, но то что они топили за асм -- это совершенно точно.
Ага МАЛЕНЬКАЯ КУЧКА. Тогда как и сейчас интерес к ассемблеру в основном был нездоровый. Я имею в виду вирусописателей. Покойного Криса Касперски тоже в эту кучу. Если сейчас скомпилировать бинарник на высокоуровненом, то он сохранит всю служебную информацию о вашем компьютере вплоть до часового пояса.Сейчас мало людей у которых есть здоровый интерес к ассемблеру.
Массовый и здоровый ассемлер застал Никлаус Вирт во времена Алгола. Это 1960-е гг. и было это в капстранах, а не в СССР. Читал у него, что ему стыдно было писать на ассеммблере, когда он создавал свой Паскаль.
Уже 1960-х писать на ассемблере в академических кругах было анахронизмом. Но лично я с таким мнением не согласен. Это ошибочное мнение не прошедшее испытание временем.
> Ответка троллюыы.
> Сейчас мало людей у которых есть здоровый интерес к ассемблеру.
Ой, давай теперь поспорим о демаркации здорового и нездорового интересов. В 2000 года ассемблер был ещё важной опцией. Для десктопов, наверное, нет, то в эмбедовке иначе было нельзя. Сегодня в эмбедовке можно и на пайтоне писать. Ну на крайняк на C. Ассемблер для чего-то уж совсем специфичного. Но в 2000 годы люди реально писали на асме, и зарабатывали этим денег.
> Массовый и здоровый ассемлер застал Никлаус Вирт во времена Алгола. Это 1960-е гг. и было это в капстранах, а не в СССР. Читал у него, что ему стыдно было писать на ассеммблере, когда он создавал свой Паскаль.
Массовый и здоровый ассемблер цвёл вовсю в 80/90-е годы на персоналках. Потому как там железо было слабое, софт из-за этого часто очень урезали в возможностях (в качестве рандомного примера 8.3 имена файлов в fat, снимающие необходимость динамического выделения памяти под имя файла), и благодаря этому асм был вполне вариантом. При этом, вместо операционной системы там был DOS, а это значит что работа с железом очень быстро заканчивалась работой с портами ввода/вывода, с прерываниями и прочей лабудой, которая требовала знания ассемблера.
> Уже 1960-х писать на ассемблере в академических кругах было анахронизмом. Но лично я с таким мнением не согласен. Это ошибочное мнение не прошедшее испытание временем.
Это шутка юмора такая? Мнение об исторических событиях теряет связь с этими событиями с каждым прошедшим годом. Возможны некоторые флуктуации в первые несколько десятилетий, но затем всё стабильно отправляется в бездну фантазий.
Ты не в теме просто. Для микроконтроллеров ассемблер был очень популярен.
От безысходности он был очень популярен. Как научились компиляторы Си нормально оптимизировать код при сборке в прошивку, так об Асме большинство забыли, как о страшном сне. Им сейчас в этой сфере если и пользуются, то как правило в случаях, когда реально нужно бороться за каждый байт памяти, чтобы втолкать прошивку в какой-нибудь 8-битный контроллер. Ну или если кодер - совсем упоротый адепт ассемблера.
пациент выше где-то в районе третьей стадии модели Кюблер-Росс1.Отрицание
2.Злость
3.Торг
4.Депрессия
5.ПринятиеКогда Кюблер-Росс описывала эти стадии, она очень точно объяснила, что все это нормальные реакции человека на трагические новости. Она назвала их защитным механизмом. И именно их мы переживаем, когда пытаемся справиться с изменениями. Мы не переживаем эти стадии строго поочередно, точно, линейно, шаг за шагом. Это было бы слишком просто! Происходит так, что мы погружаемся в разные стадии в разное время и даже можем возвращаться обратно к тем стадиям, которые уже переживали. Кюблер-Росс говорит, что стадии могут длиться разные периоды и могут сменять друг друга или существовать одновременно. Это будет идеальным думать, что все мы достигнем стадии «Принятие» со всеми изменениями, с которыми нам предстоит столкнуться, но часто бывает, что некоторые люди зацикливаются на одной из стадий и не могут двигаться дальше.
>что все это нормальные реакции человека на трагические новости.Не на новости, а на утрату (людскую). И да это нормально.
пс: Фильм как раз вышел новый "Час истины".
> открылась новая айтишная тоталитарная сектаСтоит погуглить значения слова "секта" и словосочетания "тоталитарная секта" прежде, чем публично позориться. Ну и что-нибудь о расте узнать.
О том что rust не безопасный недоязык с ужасным синтаксисом и сектой фанбоев можно узнать читая комментарии на opennet. Нет нужды узнавать что-то ещё ведь и так все понятно
Зачем кунаться в каки?
Потому что они "безопасные"™.
> То есть баги как были так и остаются, меняется только то, что Rust-разработчики хрома с гордым лицом переложат ответственность за любые баги на С++-разработчиков, а сами продолжат писать код на "safe rust".Да! Это же основная фишка разделения safe/unsafe в расте. Если ты выставил наружу safe API, то тем самым ты заявил, что твой API удовлетворяет ряду формальный критериев, и если в программе вылезает баг, и выясняется что он из-за того, что твой API не удовлетворяет этим критериям, то, значит, баг в твоём коде, а не в том коде, который этим API пользуется. Соскочить с темы под предлогом "это не баг, а фича" не удастся.
Взять например динамический массив -- Vec. Он выставляет наружу safe-API, который гарантирует, что если этот API использовать в safe-коде, то не будет никаких double-free, выходов за границы буфера, use-after-free, и всяких там проблем с data-race. Если вдруг Vec::push или Vec::pop выйдет за границу, то это косяк Vec. Но если ты воспользуешься unsafe функцией Vec::set_len, и Vec::push выйдет за границу, то это твой косяк. Если ты соберёшь Vec из сырого указателя, при помощи unsafe функции Vec::from_raw_parts, то работоспособность результата -- это твоя зона ответственности, а не зона ответственности разработчиков Vec.
Руки прочь от Rust!
Идите в Darts!!
зачем весь этот зоопарк? неужели так сложно быть внимательным при написании кода? походу да , для современных покемоно-программистов быть внимательнм весьма сложно.
Зачем быть, если можно не быть и освободить ресурс внимания для других задач?
Ждём комментариев про хромокапец от товарищей, которые утверждали, что раст убил лису.
Так оно и есть, мозиле раст не помог, и хромому не поможет. Ждём сообщений "гугл уволил 250 разработчиков".
Что такое "250 разработчиков" для гугла и лисы? Несравнимые размеры.
а, ну да, у гугла будет "уволили 250 тыс разработчиков"
раст не принёс мозиле денег, это досадно, но никто в общем то и не ждал от него этого.. к сожалению другая активность тоже не принесла мозиле денег.. гугл же способен оплатить и за раст и за мозилу, такчто ему от раста только польза.
"В обозримом будущем язык C++ останется первичным в Chrome". Да и толку слушать фанатиков, сегодня они говорят: "Rust убил лису", а завтра: "Rust помог Chrome увеличить производительность/безопасность/удобство на 146%".
Безопасность Раста должна была ускорять разработку из-за того что не нужно проверять все пограничные условия в с/с++, но в итоге получилось что разработка на Расте в 10 раз дольше чем на с/с++ итог всю команду Раста выгнали на мороз.
Команду экспериментального браузера Servo на расте ликвидировали, потому что этот эксперимент больше не нужен. Куски серво на расте уже успешно вошли в лису: stylo еще в 2018 и webrender. Теперь планируется разрабатывать модули на расте сразу в рамках разработки лисы, а не отдельным проектом экспериментального браузера (у которого проблемы с совместимостью с вебом).
Тс-с-с. Не говори им. Очень забавно наблюдать как opennet пошёл в отрыв от реальности, и верит в сказки им же и придуманные. "Выгнали всю команду раста на мороз" -- совершенно ведь не то, что произошло, но опеннет верит. Не мешай им, интересно посмотреть как эта линия фантазирования будет развиваться дальше.
> Безопасность Раста должна была ускорять разработкуС каких пор безопасность языка обязана ускорять разработку продукта)? Безопасность может только гарантировать тебе не встретится с определённым классом багов в твоём продукте, а они куда больнее и затратнее по времени, чем скорость разработки самого продукта.
С тех пор как программистам стали платить деньги. Безопасность которая замедляет разработку есть и в С++.
> Безопасность которая замедляет разработку есть и в С++.Тем кому это мешает, давно сбежали писать на электроне. Так что C++/раст для них давно не проблема.
Думаю для форка название Bright Sun подойдёт...
Скорее "Rusty buggy".
А что? Багги - быстрая машинка, да и постапок среди народа популярен.
Хромирование же против ржавчины делается
Уже 10 минут изучаю как лучше всего окислить хром. Я думаю, у такого Мидаса, как Гугл, всё получится. Ведь всё, чего он касается, деградирует и умирает.
>Ведь всё, чего он касается, деградирует и умираетах, эти фантазии...
>ах, эти фантазии...не фантазии... точнее, половина умирает, а вторая половина оказывается коммерчески успешным, но богомерзким.
богомерзким для кого?
https://killedbygoogle.com/
Ну-ну, такой себе список на 150+ фантазий.
<spoiler>И ведь 2/3 вполне могли себе выстрелить, при грамотной стратегии</spoiler>
ну у вас видимо, что не проект - то успех
сколько сотен проектов гугл купил и сколько убили? Несравнимые значения. К тому же иногда проекты покупают именно чтобы устранить конкурента, а не интегрировать какую-нибудь фичу в свой продукт.
Твой список ≠ "Ведь всё" из вброса выше 🤣
Я же говорил, что растохипсторы жидко обделались со своим Servo в Мозилле и прибежали с ржавчиной в Гугл - ещё раз пытаться корродировать уже там.
Надо же где-то работать 250-ти уволенным разработчикам из Мозилы.
> Я же говорилчрезвычайно важное мнение крупнейшего иксперта опеннетов
Добавление wrapper'а четвертого порядка благодатно скажется на кодовой базе.
А почему Rust? Почему именно этот язык выбрали?
Погуглите про особенности языка программирования Rust, и тогда всё встанет на свои места, всё сразу станет ясно, почему именно этот язык выбрали.
Да, почему? Есть же Ада и реализация – Gnat.
Потому что Хаскель слишком ленив.
Для таких случаев есть Ocaml.
"Страница не грузится, а сразу объявляется загруженной."
А программа не пишется до её использования?
> А почему Rust? Почему именно этот язык выбрали?"Ф хозяйстфе приккотится..."
(через год, выбрасывая дохлую ворону и 250 снова-ненужных мазильных разработчиков: "Не приккотилось!")
Знаешь какие-нибудь годные альтернативы Расту?
Lisp
Smalltalk
>LispНеадекват.
Думаешь, если раст не годен, то его альтернативы могут где-то сгодиться?
Ада.
Решили попробовать. Гугл, в отличие от Мозиллы, может позволить себе провести эксперимент и не резвалиться в процессе.
Ага, один разработчик поэксперементировал и забил, а состряпали целую новость
можно будет qt использовать из rust
возможно...
кутэ/раст/системда и вяленый обязательно, вот тогда точно всё получится. А то гугл как-то не спортивно использует upstart.
У гугла же есть Go.
Кстати да. Но он же вроде скорее как замена C++, так?
нет, golang со своими исполняемыми файлами сам по себе
Исходя из опыта разработчиков Фуксии, go показал себя не очень хорошо в составе кода ОС https://fuchsia.dev/fuchsia-src/contribute/governance/policy...
Какой кашмар. Даже гугол поддался на пиар этого недоязыка. Все кто разбирается понимает что Си безопастнее rust ведь в нем нет unsafe блоков.
Все понимают что на этом языке ничего сложнее hello world ненапишешь и убогий фаерфокс, серво и прочие поделки тому доказательство.
Хром надо на Си переписать.
> Хром надо на Си переписать.Было бы прикольно, глядишь, объём в разы сократился бы. А то уже не знаешь, кто вперёд скачается: 100 ГБ флайт симулятора или исходники хромого.
Хорошая пародия на глупых растохейтерков, браво :)
Fracta1L, тут тебя зовут!
Просто хайпует на расте. Использовать он раст конечно же не будет. Все большие компании что пытались внедрить раст от него отказались, тот же дропбокс.
У хейтеров раста опять сидалище рвёт.
Раст - как вирус, переходит от мёртвого организма к следующему.
Ну так ты не далёк от истины. Именно подобным образом распространяется ржавчина, разрушая на своём пути по кусочку, пока не уничтожит всё.Любопытны некоторые значения слова. В частности мне нравится
Глагол
притупляться dull, rust, hebetateслабеть weaken, wilt, fail, slacken, faint, rust
Си - как вирус, плодит уязвимости везде
Некорректная аналогия с вирусом. Си - это симбиот.
Я вам сегфолты, вы наслаждаетесь UB?
Че сраться то, rust это хипсторская подделка, в отличии от промышленного C++ который как бы в ближайшем будущем никуда не денется, если сам конечно не мутирует в раст хаскель ерланг и же с ними, а то могет судя по движу в новых стандартах
Не может. Деградировать не выйдет, компиляторов много, обратную совместимость они сохраняют, никто не заставит переходить на новый стандарт если он тебе не понравиться.Такое можно сотворить с хипстоподелками, типа go, rust, python. Вот эти любят всё испортить, наломать совместимость и выкинуть без поддержки.
> Такое можно сотворить с хипстоподелками, типа go, rust, python. Вот эти любят всё испортить, наломать совместимость и выкинуть без поддержки.да у нас тут крупнейший исксперт опеннетов, все по машинам
ЧСХ он прав, так как обратной совместимости в этих ЯП нет от слова совсем
Особенно в Go. Прям такая несовместимость, что даже синтаксис за 10 лет вообще не поменялся. Ой, кошмар.
Именно поэтому в каждой го-программе пишут минимальную версию компилятора.
Если я захочу использовать плюхи С++20, то мне тоже придётся указывать минимальную версию компилятора.
> Именно поэтому в каждой го-программе пишут минимальную версию компилятора.Шта?!11.... Тебя головой по асфальту протащили?))
> Именно поэтому в каждой го-программе пишут минимальную версию компилятора.Не в каждой, не надо трындеть. Версии в программе на go пишутся только тогда, когда есть привязка к внешней версии какой-либо библиотеки (или нужны контейнеры). К синтаксису go -- это никакого отношения не имеет.
Ты говоришь про обратную совместимость, а я про новые фичи и сам страуструп утверждает после C++17 что дальнейшее усложнение крестов неизбежно, впрочем как и других ЯП
C++ полностью деградировать не может так как миллиарды строк легаси и никогда переписывать не будет, а вот мутировать так это запросто достаточо вспомнить шаблоны
C++ до Раста уже сейчас слишком далеко, и с каждым годом эта пропасть лишь растет. Объективно, в Расте есть несколько фатальных недостатков, которые мешают сказать, что он безоговорочно лучше, но лет через 5-10 C++ станет уделом консерваторов и легасименов, скриньте
Слышали уже 20 лет назад
...когда он дорастет до уровня оригинального саутруповского С++, такого же, но другого?
>но лет через 5-10 C++ станет уделом консерваторов и легасименов, скриньтеУже лет 15-20 хоронят сишку и никак не похоронят. ИЧСХ все эти годы названия претендентов на роль убийцы меняются чуть ли не по несколько раз в год. Только вот по итогу сишка никуда не делась, а этих претендентов уже через год помнят от силы 2.5 наркомана насилующие полуразложившийся труп очередного гламурного франкенштейна.
лет через 5-10 появятся программисты еще тупее чем сейчас, и вы уже с высоты своего опыта будете смотреть на молодёжь и понимать, что миром правят сми, реклама и пиар, а люди по своей природе стадо баранов.
Ну по тому как работает хром видно, что у разработчиков не только с памятью проблема. В принципе там с головой проблема. И Rust это не исправит.
> CXX — safe FFI between Rust and C++Никакого уважения у этих растоманов. CXX уже давным давно использующееся название переменной окружения для компилятора C++.
Готовятся к покупке лисы небось
> лисыпанды. firefox - это панда, а не лиса.
deepl говорит, что fox - это лиса
А pineapple — это сосна или яблоко?
Хвойное яблоко :)
Правильно.
Пора постепенно отказываться от UB-based языков (да, сишечка, я смотрю на тебя!) и переходить на memory-safe или даже вообще managed.
Шагайте в ваш дотнет, а мы как-нибудь так проживём.
>или даже вообще managedОбезьяны и прочие электронщики ликуют.
Компиляторы и библиотеки сами генерят UB.
Например UB компиляторов: нельзя сдвигать на число большее разрядности сдвигаемого. Казалось бы просто при компиляции явно указываешь процессор. Процессор поддерживает такой сдвиг. А компилятор для этого процессора генерит UB.
Rust конечно спасает от всего: на краю обрыва ставят табличку unsafe, вместо того чтобы сделать ограждение, но ограждение это дорого, а табличка бесплатно и безопасно.
> Казалось бы просто при компиляции явно указываешь процессор.Не, это лишь "казалось бы". Если хочется кардинально решать ситуацию, надо компилятору давать конфиг, указывая там какие именно flavor'ы операций тебе нужны. Скажем, чтобы сдвиг слишком далеко заполнял бы всё нулями. А чтобы операция + на целых выполнялась бы с насыщением. То есть конфиг, который позволяет все UB превратить в DB (в Defined Behaviour).
Но я тебе скажу, почему разработчики не спешат так делать: это способ вместо одного C++ получить много разных несовместимых друг с другом. Сорцы, которые нельзя смешивать, хотя у них и один синтаксис.
Твой способ -- это прибивание сорца гвоздями к архитектуре, но ты можешь это сделать посредством inline ассемблера, для этого не нужны дополнительные специальные инструменты.
> Rust конечно спасает от всего: на краю обрыва ставят табличку unsafe
Разве? Можно хоть один пример? Все эти неопределённости с арифметическими операциями в rust'е снимаются жёстким определением какого-то определённого поведения, а если тебе нужны альтернативы, то вместо + ты можешь использовать saturating_add, или что-нибудь в этом стиле. Никакой unsafe не нужен. Впрочем, я с удовольствием полюбуюсь на пример, где UB решается unsafe'ом.
Сейчас кросскомпиляторное и кроспроцессорное поведение разруливается через портянки условной компиляции и ассеблерные ставки. Если этого не делать, то в одном из компиляторов или в том же самом компиляторе с другими процессорами словим UB. +3 процента производительности после оптимизации и вероятность 90% словить UB на новой архитектуре.
> Сейчас кросскомпиляторное и кроспроцессорное поведение разруливается через портянки условной компиляции и ассеблерные ставки.Можно какой-нибудь современный пример? Я знаю, что оно так разруливалось в 80-х, в 90-х. Но как-то в современном коде я не замечал подобного. Ассемблерные вставки используются не для обхода UB, а для производительности (чтобы сделать лучше компилятора) или для доступа к каким-нибудь возможностям процессора, к которым компилятор не даёт доступа (в ядре такое бывает регулярно).
Есть очень простой способ избежать UB: не писать код с UB. C/C++ это, в общем, позволяют, там самое сложное не пропустить UB в код нечаянно. Но как только ты увидел код с UB в тексте программы, нет никаких проблем переписать этот код на C так, чтобы UB не было бы.
> вероятность 90% словить UB на новой архитектуре.
Ты точно не путаешь UB и баги компилятора? Код без UB на любой архитектуре без UB.
Скатертью дорога!
https://img.championat.com/news/big/i/b/perluidzhi-kollina_1...
еще каких-то +128 ядер в мобилки и 1TB RAM и можно спокойно переходить на руби - безопасней уже некуда
Чтож, пора мне всё-же изучить Rust, а ведь не хотел :(
Зачем ? Маркетинг задавил ? Всеравно эти говноподелия никто не читает и не использует, все привыкли к сям. Да и не написали ничего незаменимого еще, работы над переписыванием под ся нормальных вещей с говноязыков всегдя велись и ведуться, лучше и полезнее так чем стать очередной макакой неуспевающей за "новыми фишками" языка. Это все хайп, как спинер, как каронавирусы и прочая лабуда.
К сожалению, как мартышку ни учи, "проблема с памятью" будет с ней всегда. Как и остальные ошибки. ЭТО НОРМАЛЬНО - быть ламером и делать ошибки. Язык до определённой степени может помогать, но он не отменяет жёсткое, рациональное инженерное мышление - только с ним можно писать надёжное ПО. Плюс профессиональный опыт, конечно.Раст тут довольно странная "помощь", ибо это вообще другой язык, перегруженный прыжками вокруг ссылок. И тот баран, который вывалил на программиста всю эту чехарду, проблемы не решил - он просто разложил кучу ограничений, с которыми писать программу - всё равно, что бегать в лыжах через болото. Так что Мазилы могут смело сворачивать своё УГ - будущего у него не было даже при рождении.
Раст стал популярен как ответ на проблемы Си плюс-плюс. Посмотрим что из него выйдет.
> Так что Мазилы могут смело сворачивать своё УГ - будущего у него не было даже при рождении.Вот что меня вгоняет в задумчивость, это то как комментаторы опеннета, наблюдая одно за другим свидетельства тому, что rust -- это серьёзно и надолго, -- продолжают утверждать про отсутствие будущего у rust'а.
Я понять не могу, что вами движет. Желание потроллить? Или может вы ведёте информационную войну, то есть надеетесь на то, что если миллион раз сказать ложь, то она станет истиной?
> И тот баран, который вывалил на программиста всю эту чехарду, проблемы не решил - он просто разложил кучу ограничений, с которыми писать программу - всё равно, что бегать в лыжах через болото.
Хыхы. Ты говоришь выше про "жёсткое рациональное инженерное мышление", которое позволяет писать надёжное ПО. Так вот именно к такому "бегу в лыжах через болото" и приводит "жёсткое рациональное инженерное мышление" программистов, которые набрали достаточно "профессионального опыта". Открой сорцы ядра linux, и посмотри: они по большей части в общем и целом следуют идеям лайфтаймов и ownership. Я не говорю, что они _везде_ им следуют, потому что скорее всего это не так: там где человек проверяет следование правилам, человек обязательно что-нибудь пропустит. Раст меняет ситуацию только в том смысле, что эти идеи кодируются в программу и жёстко проверяются, вместо того, чтобы оставлять проверку их людям.
Только один вопрос. Растаманы глазами проверяют весь код, или они полностью доверяют своему безопасному компилятору?
> Только один вопрос. Растаманы глазами проверяют весь код, или они полностью доверяют
> своему безопасному компилятору?Ты имеешь в виду проверку на следование правилам владения объектами и лайфтаймам? Эти правила, применительно к конкретным объектам, кодируются в системе типов. Проверку этих правил выполняет компилятор, проверять его, значит впустую тратить время. Насколько же нужно проверять правила -- это уже зависит от того, каким образом они прописаны. Если под ними лежит unsafe, то да, надо проверять глазами, используя unsafe и raw-указатели легко можно нарушить базовые инварианты языка. То есть, даже дело не в том, что можно нарушить: unsafe сделан для того, чтобы нарушать эти инварианты, дело в том, что эти нарушения должны оставаться на уровне модуля и не выползать наружу.
То есть, наверное, исчерпывающий ответ на твой вопрос звучит так: "иди к чертям со своей аксиомой эскобара", со своими предложениями выбрать один ответ из двух неверных.
>рациональное инженерное мышление - только с ним можно писать надёжное ПОРационально использовать надежный инструмент (Rust) вместо дырявого.
и тебя никогда не посещало просветление в том, что с/с++ сделаны такими для профессионалов, а не тяп ляп и в продакшен. эти языки изначально требуют от их пользователя глубоких знаний не только самого языка, но и структуры самого компьютера и его работы. а раст делали для"домохозяек" с ограниченными возможностями применения. и в системщину его изначально не пускали, но потом замахнулись и на неё и впихнули unsafe. но все современные языки хотят сделать так, чтобы программист не знал ничего кроме быстрого написания кода и знать как код потом работает с памятью им нефиг. так проще создать группу дешевых дятлов, которых проще нанять за копейки.
В винде, при установке некоторые программы сами доустанавливают пакеты C++ 2008, 2015 редистрибутейбл. А если проги будут писаться на раст, какие “ редистрибутейбл ” будут ставиться тогда?
А если Интернета нет, то прога не установится. Качать неоткуда, или придётся все террабайтные зависимости за диске тащить?