Опубликован релиз 1.47 языка системного программирования Rust, основанного проектом Mozilla. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=53856
Заждались новостей про хруст. Теперь 1.2G радости, кто осилил ревью этой поделки ?
Поздравляю Rustаманов с обновлением!
ненужно, пока не перепишут на rust
Мы, Rust-исты, ребята плечисты!
Нас не заманишь прогой мясистой!
Не совратишь нас готовою плевой!
Переписал на Rust правой, переписывай левой!!!
Лучше уж раст чем по подъездам быдлокодить на пхп.
Если ты не умеешь сам грамотно управлять памятью, и тебе необходимо, чтобы тебя из-под палки заставляли это делать, то руст - отличный для тебя язык.
Как будто ты - умеешь. Не занимайся самообманом, в общем.
Всунем хоть вставочку хоть строчечку на хрусте в вашу любимую программу чтоб ты больше ей не пользовался. А на все вопросы будем отвечать - иди покупай новый интел и качай нашу малварь.
Кто-то знает о чём говорит пассажир?
Есть смысл вкктываться в rust вместо/до c++.
Если в планах побатрачить ближайший год на интел - однозначно да, если есть лет 5 опыта на русте. Больше наверное незачем.
Сорян, там на морозе двести злых и голодных с многолетним опытом за вермишель готовы работать. Наверное не они не устроятся - суваться вообще не стоит, всяко они круче в хрусте всех нас вместе взятых.
Какой?
Зависит от перспективы и цели.
На ближайшую перспективу (пара лет) однозначно нет. Вакансий мало.
На далёкую перспективу никто не знает. Вроде как хороший инструмент в сферах, где нужна высокая безопасность и высокая скорость. Высокая в смысле выше, чем в go. Им постепенно интересуются крупные компании, вроде как часть планирует переходить. Если появятся вакансии в Microsoft, Google или Facebook, то через 2-5 лет с того момента он таки станет мейнстримом, как раз подтянуть IDE разные.
Из остальных я слышал об экспериментах в Discord (не представляю, что ими двигало, делать реализацию какого-то сервиса на Расте вместо обновления Го до версии с нормальным сборщиком мусора) и Ready At Dawn (игроделы, Order 1886, Lone Echo).
Но предсказать будущее никто не в состоянии, вспомним взлёт и падение Ruby.
Печально, что всех волнует только то, сколько можно срубить бабла, а не возможности языка.
Ну, положим, не все. Лично мне Раст интересен как раз своими возможностями. А бабло - вещь такая, то оно есть, то его нету...
> Лично мне Раст интересен как раз своими возможностями.Это еще какими такими возможностями он обладает ?
>> Лично мне Раст интересен как раз своими возможностями.
> Это еще какими такими возможностями он обладает ?Rust Book почитай.
Т.е. никакими, ок.
> Т.е. никакими, ок.Ну так и надо было сказать: "мне пофиг, я здесь только, чтобы обо*рать. Знать ничего не хочу, разбираться ни в чем не хочу".
> Печально, что всех волнует только то, сколько можно срубить бабла, а не
> возможности языка.Романтика романтикой, но про реальность не стоит забывать. Если за языком будет поддержка крупной компании -- он будет популярным. Если нет -- он будет или нишевым (Haskell), или вовсе забытым (Coffee Script). Наверняка исключения есть. Если знаешь, скинь, самому интересно. Но ипотека сама себя не оплатит, дети сами себя не оденут. Смотреть на практическую сторону вопроса -- вполне нормально.
А мне кажется, что меркантильность никогда не была положительной чертой характера.
> Если появятся вакансии в Microsoft,Эх, узнаю настоящего опеннетовца!
опен.NET -овца.исправил.
Для тех кто ходит в опеннет
В мекрософте места нет !
>> Если появятся вакансии в Microsoft,
> Эх, узнаю настоящего опеннетовца!Приведи пример, когда было иначе. Когда язык не получал поддержки никого, стал популярным сам по себе. Я сейчас глянул топ-8 языков по вакансиям.
Python (Заметили после применения в Гугле, хотя до этого уже лет 20 существовал)
SQL (Первая поддержка в Oracle V2)
Java (Sun и мегапиар)
JavaScript (Mozilla, когда она была ещё торт)
C++ (Bell Labs, далее все крупные софтовые компании)
C# (Без комментариев)
PHP (Хорошо, признаю, за этим вроде никто крупный не стоит. Только Zend Engine и Wordpress)
C (AT&T)Python, конечно, с натяжкой. И всё равно, большинство языков без поддержки контор не работают. Часть делают сами корпорации, часть достаточно хороши, чтобы начать использовать уже готовыми и задавать моду.
Из этого не следует, что все корпоративные языки станут популярными. Но всякие Haskell'ы с Nim'ами будут в стороне почти гарантированно.
> Python (Заметили после применения в Гугле, хотя до этого уже лет 20
> существовал)Да ладно, к тому времени у шляпы много чего на нём уже было.
> PHP (Хорошо, признаю, за этим вроде никто крупный не стоит.
...даже Facebook ;-) (если уж гугль "за питоном")
>> Python (Заметили после применения в Гугле, хотя до этого уже лет 20
>> существовал)
> Да ладно, к тому времени у шляпы много чего на нём уже
> было.
>> PHP (Хорошо, признаю, за этим вроде никто крупный не стоит.
> ...даже Facebook ;-) (если уж гугль "за питоном")После гугла питон заметили. Много чего было, да, но главное, что язык заметили. Может, не в следствии, но точно после. А PHP был заметен и активен задолго до FB, который к тому же продвигает свой Хак.
По-поводу PHP: он появился на слуху когда поступил запрос на интерактивность в вебе. Чтобы у тебя на сайте был не просто набор статических статей, а инструмент, которым ты мог что-то сделать. Первые запросы были элементарными и PHP прямо отвечал на них, в лоб, без всяких хитростей. Он стал популярным потому что за ним стояли все. Не кто-то конкретный, а просто все кто интересовался вебом сталкивался с тем что PHP - то чем проще всего реализовать нужный функционал.Это было ещё до появления WordPress, Jumla, Drupal и т.д. и т.п. Когда на свет вышли фреймворки на PHP, стало ясно PHP решение слишком плохое, чтобы дальше его продвигать со всех сил и он занял свою нишу в "интерактивном вебе". На сколько мне известно, на PHP решаются типовые задачи, нету смысла городить огород если это уже на PHP написали - бери да пользуйся. Как только задание выходит за рамки типовых решений - отказ от PHP, в большенстве случаев, - лучшее что можно сделать.
>взлёт и падение Rubyоно и понятно, питон без батареек, нигде, кроме рельсов, не использовавшийся. Я ещё в 2010 недоумевал с него.
>высокая безопасность
раст, это не только про безопасность. Это ещё и мощные макросы со всеми вытекающими (вроде serde), и, как ни странно, большая скорость разработки программера уровня мидла (меньше шансов заложить грабли в основание проекта - меньше головняка с отладкой на поздней стадии). +Батарейки к нему активно пилятся: 3D-движки, тензоры, сеть, всё запросто подключается через Cargo (подключить внешнюю либу к расту легче, чем к питону и, пожалуй, даже жабе).
Чего это без батареек-то? Гемов — хоть обратным концом жуй.
>>взлёт и падение Ruby
> оно и понятно, питон без батареек, нигде, кроме рельсов, не использовавшийся.
> Я ещё в 2010 недоумевал с него.Это больше говорит о Вас, а не о языке. Как и обо мне, а не плюсах или жабе, больше говорит то, что от книжек о них у меня голова сразу болеть начинала (в отличие от обычного C, лиспа или тикля).
> раст, это не только про безопасность.
А я вот и сейчас "с него недоумеваю" (ц). В первую очередь по причине того, что эти придурки начали делать компилятор в машкод, а не в си.
Не было у Ruby никакого взлёта и падения.
Был точно такой же хайп, тихонечно превратившийся в пшик.
Вид в профиль.
> Не было у Ruby никакого взлёта и падения.
> Был точно такой же хайп, тихонечно превратившийся в пшик.
> Вид в профиль.Хайп был почти у всех языков в тот или иной момент. Он был у C, C++, Java, C#, Go. Даже у Python был, просто сильно позже, чем язык появился. Наверняка у чего-то ещё был, но мы об этом уже не узнаем.
Из хайпанувших и забытых я могу только Delphi и Visual Basic вспомнить. Вроде ещё Smalltalk, но это не точно.
Сейчас вот Rust на волне. Серьёзно, одно лишь наличие хайпа не значит, что язык будет забыт через несколько лет. Как повезёт.
Сомневаюсь что в Microsoft появяться вакансии Rust программиста. Они пилят какой-то свой язык системного программирования вдохновившись Rustом. Кажеться, он называется Verona.
Они лишь пока исследуют.
https://github.com/microsoft/verona/blob/master/docs/faq.md
Раст он как морская свинка не имеет отношения ни к скорости ни к безопасности.
Вот уж идеальное! описание раста!
Если хотите нормально писать на C++, однозначно нет. После раста от плюсов получать какие-либо эмоции кроме боли сложнее, чем до
Если не вместо, то вместе. Язык взрослеет и активно развивается позволяя писать более отказоустойчивый и безопасный код. Без особого повода веских причин, начинать новый проект на с++ - просто глупо. Будущее за безопасным и в тоже время быстрым кодом и это будущее уже настало.
C++/С:
быстрый
проверен временем
гибкие манипуляции с памятью и асмом
классы, из которых ничего не вытечет
всевозможные методы прострела колена уже описаны и выпущены в мини-издании "для чайников"Rust:
100лямов китайцев
баги на мейн уберфичу по кд>писать более отказоустойчивый и безопасный код
Это конечно же здорово, но у меня на гигабите и убер пк страницы в 2к+20 грузятся медленней, чем во времена 2мб дсл.
И да, раст не быстрый, чтобы он был быстрый, надо изворачиваться и искать "тот-самый" метод написания кода, и тут уже доставляет боль и синтаксис, что самое то для порога вхождения.
И я никак не могу понять, когда ошибки с работой в память стали такими критичными, учитывая, что на плюсах их допустить нереально, если ты прогаешь больше 5лет на них.
https://www.abetterinternet.org/post/memory-safe-curl/
короче пришлось заплатить деньги разработчику курла чтобы он покопался в этом дерьме. окей, тогда я спокоен, если это дерьмо можно будет безболезненно выбросить.
Отличный ответ смузихлебам. Настоящие программисты не допускают утечек памяти и костыли автоматического управления памятью им не нужные.
Учи OCaml, там в следующем году выходит мультикор и алгераические эффекты.
> таких как обращение к области памяти после её освобожденияВ компайл-тайм раст делает только это. Всё остальное выполняется в рантайм. Кстати, можно отключить эти проверки? Тоже самое делается в С/С++ ассертами десятки лет.
расскажи еще что-нибудь про раст, так интересно.
это 2 смежные темы, ерничать можешь в другом месте
О, а можно подробнее про ассерты в C/C++? Я не знал, что они влияют на оптимизацию, думал, просто проверки для отладки.
В Расте, как я понял, это будет через std::intrinsics::assume, пока только в экспериментальной ветке.EDIT: Как я понял, ассерты могут как минимум убрать проверку границ массивов. https://gist.github.com/kvark/f067ba974446f7c5ce5bd544fe3701...
А что там рассказывать? static_assert - compile time ceck, assert - runtime check.
> А что там рассказывать? static_assert - compile time ceck, assert - runtime
> check.Ну не. static_assert проверяет только то, что можно проверить на этапе компиляции. assert вообще для отладки только, при релизе обычно ставят -DNDEBUG (/DNDEBUG) и выкидывают нафиг. А вот обещания компилятору, что вот это условие верно всегда, без проверок и с дополнительными оптимизациями -- об этом я ещё не слышал.
Ты не к тому анониму обратился. С растом он знаком по новостям из опеннета.
только в C++ на это надо написать тонну неприятного кода, а с C без кодогенератора не обойтись
и это не даст явного разделения безопасного и опасного кода и не спасет от многих случаев неочевидного UB, которое в стандартах C и C++ прописано как будто специально чтобы отстреливать ноги
Для Си не надо писать тонну кода, достаточно понимать что есть память и как она устроена в принципе. А так же понимать как процессор исполняет ту или иную инструкцию.
А то вебмакаки решили писать системный софт, и вдруг внезапно оказалось, что есть указатели, стеки и т.п.
А если задача написать не системный, а вообще софт? Вот писала вебмакака на ноде или питоне, а потом решила всё то же самое на чём-то более быстром. На расте - да запросто, конпелятор направит и подскажет. На сях/плюсах - "Молодой человек, ну как же вы так, надо было сперва с отличием окончить ВУЗ по специальности 'Прикладная информатика'..."
Да нет, не запросто. Синтаксис его столь специфический, что даже Obj-C - и тот макакинсу будет изучить проще.п.с: так-то, те, кто более-менее разрабатывают под боду, обычно имеют неплохое понимания ЯП вроде сишки и плюсов, поскольку бода - это "внезапно" в т.ч и про разработку нативных модулей.
>Синтаксис его столь специфическийИз специфического там, разве что, лайфтаймы. Типы в угловых скобках вполне себе из плюсов и джавы. Что касается лайфтаймов, то это тонкая оптимизация для ценителей, без которой часто можно обойтись, оборачивая в Rc/Arc или тупо клонируя объект. В этом случае код получается чуть менее оптимальным, но всё равно значительно быстрее, чем на других хипстерских языках.
>>Синтаксис его столь специфический
> Из специфического там, разве что, лайфтаймы. Типы в угловых скобках вполне себе
> из плюсов и джавы. Что касается лайфтаймов, то это тонкая оптимизация
> для ценителей, без которой часто можно обойтись, оборачивая в Rc/Arc или
> тупо клонируя объект. В этом случае код получается чуть менее оптимальным,
> но всё равно значительно быстрее, чем на других хипстерских языках.У меня, при мощных оптимизациях( но в отсутствие грязных ) хеллоуворд весил под 300 Кб, когда интересовался темой и прикидывал по минимальным весам бинарников.
Можно ли назвать мусорку такого размера оптимальным и оптимизированным кодом ?
> У меня, при мощных оптимизациях( но в отсутствие грязных ) хеллоуворд весил
> под 300 Кб, когда интересовался темой и прикидывал по минимальным весам
> бинарников.
> Можно ли назвать мусорку такого размера оптимальным и оптимизированным кодом ?
$ rustc -V
rustc 1.46.0
$ cat hello.rs
fn main() {
println!("Hello World!");
}$ rustc -O hello.rs && ll hello
-rwxr-x--- 1 анонн wheel 320K 9 Okt. 16:27 hello*
$ strip hello && ll hello
-rwxr-x--- 1 анонн wheel 247K 9 Okt. 16:27 hello*$ rustc -O -C prefer-dynamic hello.rs && ll hello
-rwxr-x--- 1 анонн wheel 8,7K 9 Okt. 16:27 hello*$ strip hello && ll hello
-rwxr-x--- 1 анонн wheel 6,4K 9 Okt. 16:27 hello*$ gcc --version
$ gcc (FreeBSD Ports Collection) 9.3.0
$ cat hw.c && gcc -O2 -s -static hw.c -o hw && ll hw
#include <stdio.h>
int main(void) {
puts("Hello World!");
return 0;
}
-rwxr-x--- 1 анонн wheel 562K 9 Okt. 16:29 hw*
В общем, все в лучших традициях опеннета - взять и сравнить динамическую и стат. линковку stdlib и на основе этого сравнения жопы с пальцем, сделать "мудрые" выводы.
> В общем, все в лучших традициях опеннета - взять и сравнить динамическую
> и стат. линковку stdlib и на основе этого сравнения жопы с
> пальцем, сделать "мудрые" выводы.Всё так. В «лучших традициях» опеннотовских «анонов», которые, то ли себя слишком умными считают, то ли остальных - слишком тупыми.
Непосредственный вывод сообщения в консоль - это несколько БАЙТ кода.
Когда я пишу хэллоуворд с выводом в консоль статической строки текста на «языке, поддерживающем просто невероятные уровни оптимизации и безопасности», я, совершенно справедливо, ожидаю, что, хотя бы в самых примитивных случаях оно будет действительно серьезно оптимизировать, а не черти как( ещё и тянуть кучу мусора ).
Каков итог ?
Даже с динамической линковкой из «разоблачающего» сообщения, вес самой примитивной проги - 9 КИЛОБАЙТ, а дополнительно покромсанной - «невероятных» 6,5 Кб.С линковкой статической - СОТНИ КИЛОБАЙТ.
Сотни килобайт, карл, для обыкновенного выбрасывания статической строки в консоль! И это в случае со штуковиной, имеющей себя едва ли не крутейший в плане оптимизации проч!
Что это за оптимизации такие, которые допускают столько мусора и воды в, казалось бы, даже самой элементарной задаче ?Особенно забавно сравнение с Сишкой, которая легковесностью стандартных библиотек в принципе никогда не отличалась( мб потому анон в твоём лице с ней и сравнивал ? -Лично я в предыдущих сообщениях сишку даже не упоминал )
>> хеллоуворд весил под 300 Кб, когда интересовался темой и
> Непосредственный вывод сообщения в консоль - это несколько БАЙТ кода.
> Когда я пишу хэллоуворд с выводом в консоль статической строки текста на
> «языке, поддерживающем просто невероятные уровни оптимизации и безопасности», я, совершенно справедливо, ожидаю,
> ...
> Каков итог ?
> Даже с динамической линковкой из «разоблачающего» сообщения, вес самой примитивной
> проги - 9 КИЛОБАЙТ, а дополнительно покромсанной - «невероятных» 6,5 Кб.
>> хеллоуворд весил под 300 Кб, когда интересовался темойО, пошли (никому кроме очередного д'Артаньяна не интересные) простыни оправдываний и отмазок.
Заодно мы узнали, что ни о минимальном размере эльфа, ни о том, как работает линковка и какие у нее есть ограничения связанные с оптимизацей (хинт: LTO) - д'Артаньян не в курсе.> С линковкой статической - СОТНИ КИЛОБАЙТ.
> Сотни килобайт, карл, для обыкновенного выбрасывания статической строки в консоль! И это в случае со штуковиной, имеющей себя едва ли не крутейший в
> плане оптимизации проч!
> Что это за оптимизации такие, которые допускают столько мусора и воды в,
> казалось бы, даже самой элементарной задаче?Ну, тебя никто за пальцы не тянул.
$ cat hw.c && gcc -O2 -s -static hw.c -o hw && ll hw
#include <stdio.h>
int main(void) {
puts("Hello World!");
return 0;
}
-rwxr-x--- 1 анонн wheel 562K 9 Okt. 16:29 hw*$ gcc -O2 -s -flto hw.c -o hw && ll hw
-rwxr-x--- 1 анонн wheel 4,8K 10 Okt. 11:51 hw*> Особенно забавно сравнение с Сишкой, которая легковесностью стандартных библиотек в принципе никогда не отличалась( мб потому анон в твоём лице с ней
> и сравнивал ? -Лично я в предыдущих сообщениях сишку даже не
> упоминал )Особенно забавны виляния жопой очередного "сравнителя", которого ткнули носом в попадание под его "необычайно меткое определение" и "божественной" Сишечки. Сразу начинается "Я не я! Мопед не мой! Я такого не говорил!".
А если Rust ещё с #![no_std] написать. Только тогда и int main() самому обрабатывать надо будет. Зато не будет libstd. Если захотели размером померяться. А ещё Rust любит символы panic в helloworld добавлять, хотя они там скорее всего не нужны.
- А если задача написать не системный, а вообще софт?
Тогда нужно повышать квалификацию для начала.
И никакие хипстерские язычки тут не помогут.С другой стороны местами от вебсофта до вообще софта - полшага.
Таким поможет электрон и прочие варианты браузерных движков для софта.
Эхх. Ну, к примеру: однажды я в многопоточном проекте на джаве получил гонку и ошибку ConcurrentModificationException. Спасибо, жаба, что не свалилась в сегфолт, а выдала ошибку. Да, я макака, недосмотрел, а на сях/плюсах и вовсе потратил бы неделю на отладку, а тут - всего через 3 дня нормальной работы кода вылезла эта ошибка. Фишка раста в том, что на нём такой ошибки не случилось бы вовсе.
И это бонус даже не для программиста, а для бизнеса: можно набрать макакенов, вроде меня, и они напишут сносный софт без сюрпризов с UB в будущем.
В этом вся суть раста - дать возможность писать системный софт людям, которые не являются системными программистами. Ничего толкового, кроме кучи "супербыстрых веб-фреймворков", растишки так и не выдали, но зато получили возможность фантазирования насчёт "замены С".>> вебмакаки решили писать системный софт, и вдруг внезапно оказалось, что есть указатели, стеки и т.п
Веб уже изгадили, на очереди диверсия в отношении системного программирования.
Люди, которые не являются системными программистами по квалификации, писать системный софт не должны.
Это деградация отрасли. Давайте ещё пустим младших медицинских сестёр в хирурги сразу, чего уж там.
Вот вам скальпель с целеуказателем, он вам не даст отрезать ногу пациента при операции на сердце, вперед, 3 класса церковно-приходской не приговор?
ахахаххаха, класс ! ))
Ага. Достаточно, чтобы писать 100 строчные хелловорлды. А как начинается промышленная разработка, то появляется необходимость в санитайзерах, фаззерах, code review тысячами глаз в опенсурсе и т.д и т.п. И всё-равно CVE регулярно появляются.
Покажи мне хотя бы один большой сишный проект без проблем с памятью.
Программистов из Microsoft, Oracle и прочих мегакорпораций тяжело назвать вебмакаками. А поди ж ты, проблемы с утечкой памяти никуда не исчезают, даже несмотря на суперпродвинутые компиляторы и проверяльщики.
Язык программирования - он не ради процесса придумывается. А ради решения конкретных задач. Если появляется новый язык, который позволяет решать задачи лучше старого (при прочих равных, само собой), старый язык должен отправляться в топку. Это логично.
> Всё остальное выполняется в рантайм.Что именно?
> Кстати, можно отключить эти проверки?
Эмм... Ты ведь сейчас не про обращение к освобождённой памяти? Про что именно?
> Тоже самое делается в С/С++ ассертами десятки лет.
Да, в C++ много чего делается, если не забывать это делать вручную. В ассемблере тоже много чего делается, если программист не забывает это делать.
А сплюснутые поют песни, что там всё красиво, всё на шаблонах, с автоматическими конструкторами и деструкторами.
> В ассемблере тоже много чего делается, если программист не забывает это
> делать.— Ты зачем два джампа подряд поставил?
— А вдруг первый не сработает!
>> В ассемблере тоже много чего делается, если программист не забывает это
>> делать.
> — Ты зачем два джампа подряд поставил?
> — А вдруг первый не сработает!Угу. Программирование на ассемблере накладывает свой отпечаток на мышление программиста и приводит к такой паранойе.
Это был бородатый анекдот про notabug :) https://i.pinimg.com/736x/fe/c6/9d/fec69d76c64c2e39ab1c4b74f...
> Это был бородатый анекдот про notabug :)И что с того? Анекдоты про программистов (математиков/философов/физиков/психологов...), если они не глупые анекдоты, отражают стереотипные психологические свойства связанные с профессией. Эти анекдоты смешны как раз потому, что при всей абсурдности поведения персонажей это поведение вполне возможно в реальности или почти возможно.
> https://i.pinimg.com/736x/fe/c6/9d/fec69d76c64c2e39ab1c4b74f...
Не надо так льстить мне, не так уж и глубоко. Это на поверхности лежит. Такие анекдоты редко копают глубоко.
>> https://i.pinimg.com/736x/fe/c6/9d/fec69d76c64c2e39ab1c4b74f...
> Не надо так льстить мне, не так уж и глубоко. Это на
> поверхности лежит. Такие анекдоты редко копают глубоко.А это не тебе. :)
вы когда в туалет ходите, туалетной бумагой подтирется не забываете?
Почему некоторые людит ак любят преуменьшать способность людей ыть внимательным?
Если вы считаете себя дигродом, то вовсе не обязательно считать такими же и других.
> вовсе не обязательно считать такими же
> и других.Примечательно, что анектод про два джампа эксперт по паранойе понял необычным образом.
1. Из двух переходов один не нужен, то есть лишний. Это объективно.
2. Ситуация вполне реальна и возникает при редактировании кода, когда кусок вырезается-переносится, а рядом расположенные команды упускаются из виду. То есть причина -- невнимательность (или нежелание лишний раз трогать рабочий код, когда второй переход условный, а между переходами ещё пара команд).
В ответе должно было быть "проглядел", но началось "это не баг, а фича!"3. Люди по поводу ошибок особо не парятся. Потому operator new() стал кидать исключение, а конструктор имеет тип void.
4. Где там и как дипломированный психолог (не психиатр!) Ordu увидел что увидел -- замнём для ясности. :)
> вы когда в туалет ходите, туалетной бумагой подтирется не забываете?Почему вы сравниваете поддержку поддержку программных продуктов с походом в туалет? Для вас правда нет разницы?
я не вижу различий между тем и тем в вопросе аккуртаности и внимательности. Естественно контексты разные, но если человек забивает на то что при создании указателя занести его в деструктор, а не откладывать на потом, это тоде самое что человек после туалета решит привести там у себя в порядок завтра.
Ну, я уже понял что современное поколение видит мир по иному. Хотя и этому есть обяснение.
> Почему некоторые людит ак любят преуменьшать способность людей ыть внимательным?Некоторые люди, оценивая способности людей быть внимательными, не доверяют собственным субъективным оценкам, и пытаются проводить исследования. И эти исследования показывают, что невозможно набрать команду программистов на C, которая будет обладать способностью пять дней в неделю по восемь часов в день удерживать внимание на протяжении нескольких лет. Люди способные на это, бывают наверное, но их сложно найти. Да и, прям скажем, тут дело не только во внимании.
Вот, теперь ближе к теме, т.е мы с вами подошли к тому что тут все дело не в языке, а втом что люди пошли не внимательные, а внимательных найти трудно, что бы они как вы говорите 24 на 7 смотрели внимательно на код.
И вот я то я хочу сказать, об этом давным давно известно, и именно для этого была создана надстройка на си ) да это с++. В результатте программистам нужно быть внимательным при написании классов, а дальше этими классами пользуются невнимательные. Но при необходимости член функцию можно перегрузить или обернуть и поменять логику ее выполнения, что дает свободу и контроль. И я вас уверяю, это работает.
И кстати, когда на sql пишешь выборку для отбора списка на возврат денежных средств, то я вас уверяю, внимательность в таком случае просто зашкаливает, так что, может есть альтернатива sql где совсем не нужно думать?
думать нужно везде, и внимательным нужно быть так же везде, для программиста это априори! а то что о ком вы говорите так это армия горе программистов на языке где хватит трех извилин
> Вот, теперь ближе к теме, т.е мы с вами подошли к тому
> что тут все дело не в языке, а втом что люди
> пошли не внимательные, а внимательных найти трудно, что бы они как
> вы говорите 24 на 7 смотрели внимательно на код.Люди не "пошли невнимательные", а они по природе своей невнимательные. Психика человека эволюционно не рассчитана на внимательность такого рода. Они никогда не были настолько внимательными. Плюс, я говорю тебе, дело не только во внимательности. Если ты изменяешь код, то для того, чтобы заметить что в каком-то необычном случае код может повести себя гадко, надо представить себе этот случай, и тут человеческая психика сталкивается с проблемой останова: как долго надо искать необычные случаи, проверяя их на коде, чтобы убедиться в том, что код будет работать корректно всегда?
> И вот я то я хочу сказать, об этом давным давно известно,
> и именно для этого была создана надстройка на си ) да
> это с++. В результатте программистам нужно быть внимательным при написании классов,
> а дальше этими классами пользуются невнимательные. Но при необходимости член функцию
> можно перегрузить или обернуть и поменять логику ее выполнения, что дает
> свободу и контроль. И я вас уверяю, это работает.Если у тебя есть практический пример тому, что это работает, и приводит к безбажному коду, то тебе надо написать статью на этот счёт и заделаться специалистом-консультантом мирового уровня, брать гонорары, исходя из цели зарабатывать не меньше $500k в год, ездить по всему миру и учить других, как надо.
Из того факта, что вместо этого ты сидишь на опеннете, я делаю вывод, что под твоими уверениями нет никаких оснований, кроме тупой веры в свою правоту.
ну по часи внимательности по себе не судите. не удивлючь если вы так же считаете про чистоплотность.
про опен нет, чем вам не устроил?
Понимаете, в психологию нередко ударяются люди, не уверенные в себе.В чём-то он прав, а вот в безапелляционности насчёт внимания -- неправ в корне: в древности люди уделяли гораздо большее внимание тому, что сказать. Да, собственно, ещё века полтора назад общественные нормы в этой части были изрядно другими.
Соответственно та кодорея, которая массово наблюдается сейчас -- наверняка была бы воспринята как позор в чистом виде. А когда кода мало и он по делу -- проверка является задачей совсем другой сложности.
ну да, что тут добавить. Ну разве что пример из прошлого. Мой папа учился в Одесском мореходном училище (это не высшее образование, это среднее), преподавали там капитаны, механики военных конвоев, боевых кораблей, тех что реально учувствовали в боевых действиях, дисциплина и знания естественно там была на первом месте. что бы получит тройку, нужны были знания красного диплома современного высшего образования.
Когда я смотрю тетради со времен его учебы, поражаюсь как все формулы, графики, схемы были аккуратно нарисованы в тетради. А чертежи, часть двигателя в разрезе, все болтики, впадинки, зазоры, все обозначения, размеры и не одной помарки. А сейчас, такое невозможно. Все в автокаде. нет я не против технологий, я за то, что бы человек по прежнему имел все эти навыки и был человеком а не амебой за которого все калькулятор будет считать. Внимательность нужно развивать с детства, прививать им аккуратность в мыслях, словах и поступках.
> нет я
> не против технологий, я за то, что бы человек по прежнему
> имел все эти навыки и был человеком а не амебой за
> которого все калькулятор будет считать.И зачем человеку могут быть нужны эти навыки? То есть понятно, их наличие позволит ему не быть амёбой в твоих глазах. Но если ему пофиг на то, как он выглядит в твоих глазах, то есть ли какие-то ещё причины, для обретения этих навыков?
ты что серьезно? не в моих глазах а в глазах общества, да даже и в моих, я достаточно видел что бы корректно оценить уровень человека. ты хочешь сказать что человеку должно быть пофиг как его видит общество, в плане элементарного? быть опрятно одетым, не рисовать на руках, утром умывается , чистить зубы, иметь красивый почерк, если нужно что то смастерить из дерева то сделать это красиво, что бы руки в целом из жопы не росли. Ты походу дела считаешь что если человек сидит за компом что то там клацкает по клавиатуре то ему больше нечего не нужно? что он может выглядеть как хрюша, а пахнуть от него может как от козла? Ты считаешь что развивать себя это не актуально а апгрэйдить свой комп это хорошо?
Слушай, ну если ты такой то какого .... ты вообще споришь тут? мы разные люди, ты так считаешь я так, мы друг друга не поймем ибо если у тебя все так как я выше написал то ты свинота.
> ты что серьезно? не в моих глазах а в глазах общества, да
> даже и в моих, я достаточно видел что бы корректно оценить
> уровень человека. ты хочешь сказать что человеку должно быть пофиг как
> его видит общество, в плане элементарного?Я говорил не про общество, а про тебя -- не надо путать себя с обществом. Я задал вопрос о том, почему кому-то должно быть небезразлично, что думаешь ты о нём. Я не задавал вопроса о том, почему кому-то должно быть небезразлично, что о нём думает общество.
> быть опрятно одетым, не
> рисовать на руках, утром умывается , чистить зубы,Да, это общество в целом считает положительными качествами. Не только ты.
> иметь красивый почерк,
Не встречал никого, кроме своего учителя в начальной школе, кому бы мешал мой корявый почерк. Ну вот ещё ты тут нарисовался. С моим почерком довольно поучительная история случилась -- я с первого класса начал писать коряво. Мама, будучи учителем, с этим боролась как могла. Я не помню этого, но она рассказывала, я заполнял прописи стопками. Это никак не повлияло на мой почерк.
Более того, я вообще не понимаю кому какое дело до моего почерка? У меня есть клавиатура, чтобы оформить текст красиво и читаемо. А если я пишу ручкой, то я пишу для себя. Я соглашусь, что мне было бы удобнее, если бы у меня был бы читабельный почерк, но это не работает: мой почерк ровно настолько читабельный, чтобы я мог его разобрать. Самый что ни на есть функциональный подход: я прилагаю столько усилий, сколько нужно и ни на йоту больше.
> если нужно что то смастерить из дерева то сделать это красиво,
Эмм... Общество ценит это как положительное качество человека, несомненно. Но необязательное. Типа хорошо иметь красивое тело, но если ты не посещаешь спортзал регулярно и отрастил брюшко, то это не помешает тебе по жизни. В некоторых специальных случаях может помешать, но в целом -- нет.
> Ты походу
> дела считаешь что если человек сидит за компом что то там
> клацкает по клавиатуре то ему больше нечего не нужно? что он
> может выглядеть как хрюша, а пахнуть от него может как от
> козла? Ты считаешь что развивать себя это не актуально а апгрэйдить
> свой комп это хорошо?Нет, я так не считаю. И я не очень понимаю, почему тебе подумалось, что я так считаю. Ну вот ты сам посуди, какое отношение имеет умение считать к чистым носкам? У _тебя_ в голове есть какая-то связь между этими двумя явлениями, но хочешь мы проведём опрос о том, насколько такая связь распространена в головах у людей? Что-то мне подсказывает, что мы выясним что такая связь существует _только_ в твоей голове. В смысле не то, что лишь 10% людей является носителями такой связи -- нет, мы выясним, что ты один такой. Ассоциация чистоплотности с почерком, скорее всего проявится на популяции, но, как бы это сказать, носителями такой ассоциации может окажется и 100% населения, но если мы зададим вопрос о том, насколько эта ассоциация отражает реальность, то я подозреваю, что треть-половина людей скажет, что очень плохо отражает: даже если у кого-то и нет знакомого, кто бы писал неразборчиво, каждый знает как неразборчиво пишут врачи, но при этом врачи, как правило, выглядят достаточно опрятно и не воняют.
слушай тебе сколько лет? ты как в той рекламе про скитлс, ты какой то странный.
> слушай тебе сколько лет?Не надейся, всяк поменьше чем тебе.
> ты как в той рекламе про скитлс, ты
> какой то странный.В какой рекламе? Какого скитлс? Я не смотрю рекламу, я не знаю, на что ты ссылаешься.
> в древности люди уделяли гораздо большее внимание тому, что
> сказать. Да, собственно, ещё века полтора назад общественные нормы в
> этой части были изрядно другими.В древности люди занимались такой вещью, как переписывание книг. В средние века изобрели гутенберга, и начали печатать книги. И с самой древности и до сих пор люди решали и не смогли решить проблему опечаток. Есть бесконечность историй о том, как люди печатали какую-нибудь особо-важную книгу, вбухивали груду человеко-часов в то, чтобы избавить её от опечаток, и потом, например, находили опечатки в названии на обложке.
Эта борьба с опечатками тянется тысячелетиями. Так что не надо тут рассказывать о том, что в древности люди были более внимательными.
> Эта борьба с опечатками тянется тысячелетиями. Так что не надо тут
> рассказывать о том, что в древности люди были более внимательными.Ну я бы не стал ставить в один ряд британскую энциклопудию и те же технические меры по обеспечению отсутствия (sic) описок в копийных свитках ветхого завета.
Говорил же вообще о другом -- об отношении, внимании да и к тем же самым опечаткам/опискам: "ох, надо исправить" или "а, и так сойдёт". О том же толковал и товарищ рядом, как мне кажется.
>> Эта борьба с опечатками тянется тысячелетиями. Так что не надо тут
>> рассказывать о том, что в древности люди были более внимательными.
> Ну я бы не стал ставить в один ряд британскую энциклопудию и
> те же технические меры по обеспечению отсутствия (sic) описок в копийных
> свитках ветхого завета.А ты поставь. Ты посмотри. Можно занятные вещи узнать, что например хешсумма была изобретена ещё до нашей эры. И технические меры по борьбе с провалами внимания тоже.
> Говорил же вообще о другом -- об отношении, внимании да и к
> тем же самым опечаткам/опискам: "ох, надо исправить" или "а, и так
> сойдёт".
> О том же толковал и товарищ рядом, как мне кажется.То есть выходит, что мы втроём разговаривали каждый о своём? Я говорил о дизайне языков программирования и о том, как техническими мерами можно устранять провалы внимания. Товарищ рядом говорил о воспитании детей, как оказалось. А ты говорил об отношении к провалам внимания. Забавно, да?
Вообще, я думаю, вам обоим надо научиться отделять своё личное отношение к теме, от этой самой темы. Если ты перечитаешь тред, ты не найдёшь чтобы я где-то сказал, что ограниченность внимания человека -- это хорошо. Я нигде не говорил, что последствия этой ограниченности, в виде опечаток или программных ошибок -- это хорошо. Я не говорил, что надо развивать невнимательность людей или увеличивать количество опечаток. Но вы оба ведёте себя так, будто что-то такое я и говорил. Почему так происходит? А потому что политическое мышление -- "кто не скачет, тот москаль": если кто-то не высказывается негативно о невнимательности, значит он высказывается о невнимательности позитивно.
Лечиться надо.
> ну по часи внимательности по себе не судите.Я выше написал о том, по чему я сужу -- по исследованиям.
> не удивлючь если вы так же считаете про чистоплотность.
Это конечно странно с твоей стороны, но вообще каких только загонов не бывает в головах у людей.
> про опен нет, чем вам не устроил?
С чего ты взял, что "не устроил"? Я-то здесь тоже сижу, или это неочевидно с того конца провода?
исследованиям ?? - Кроха сын к отцу пришол и спросила кроха. Папа, что такое хорошо и что такое плохо.
Речь идет о воспитании детей и о том какая польза от того что ребенку прививаешь хорошие свойства. Этому должны учить родители, потому что нормальный родитель дурному не научит.
Если ваши родители вас не воспитали то это ваши большие проблемы. Подумать только, исследователи говорят что внимательность это не своейственно человеку. к стенке таких исследователей.
> Речь идет о воспитании детейРазве? Ты вот только сейчас в первый раз об этом упомянул. Мне казалось, что мы говорим о дизайне языков программирования. Но, с другой стороны... Да, я ведь задавался вопросом о том, чего это ты так шашкой размахался. А ты оказывается про воспитание детей, а воспитание детей -- это вообще воспалённое место психики для большинства людей. Хех.
Тебе раньше надо было сказать об этом. Мы столько времени потратили впустую.
Быть сильным это хорошо, но это не повод заменять отбойный молоток ломом и кувалдой. Быть внимательным -- это хорошо, но это не повод профессионально использовать инструмент, который с целью тренировать внимательность, повышает требования к внимательности. Один из распространённых аргументов растохейтеров заключается в том, что ошибки при программировании не сводятся к ошибкам работы с памятью. Ошибки по невнимательности, не сводятся к ошибкам работы с памятью. И это ведь действительно так. Внимание при программировании нужно не только, чтобы бороться с ошибками работы с памятью. И совершенно контрпродуктивно расходовать ресурсы внимания на те проблемы, которые могут быть решены автоматически, потому что внимание нужно и под другие проблемы тоже.
Тем более контрпродуктивно выбирать язык для профессионального программирования исходя из соображений о том, как надо воспитывать детей.
> Если ваши родители вас не воспитали то это ваши большие проблемы. Подумать
> только, исследователи говорят что внимательность это не своейственно человеку. к
> стенке таких исследователей.Хаха. Лол. ДА! Психология -- это буржуазная лженаука, капиталистическая подстилка. К стенке учёных, или лучше в лагеря перевоспитания, лес валить.
Мы проходили это уже. Генетика была лженаукой. Кибернетика. Экология тоже была лженаукой. Теория относительности Эйнштейна была лженаукой -- я полагаю потому, то релятивизм, то есть относительность всего и зависимость от точки зрения шла вразрез с идеологией, которая претендовала на _абсолютную_ истину. Правда за ОТО не ставили к стенке, просто запирали в каком-нибудь КБ.
Психология оказывалась целью охоты на ведьм дважды -- этологию (психология животных) объявили лженаукой и педологию. А, не, трижды: ещё психоанализ отстрелили, что может быть и небольшая потеря, но как-то так выходит, что хоть психоанализ никто не считает наукой, он оказал и продолжает оказываеть огромное влияние на психологию. Теперь надо ещё начать войну с экспериментальной когнитивной психологией.
Последствия того, что диктатуре пролетариата позволили вести охоту на ведьм под знамёнами борьбы с лженаукой можно наблюдать в истории. Не боишься, что такая охота на ведьм приведёт к тому, что наше национальное "догоним и перегоним" опять кончится пшиком, из-за того что отрицание истины по высокоморальным мотивам заведёт нас в болото?
слушай вот реально, я не ставлю цели тебе что-то доказать, ты живи как тебе больше нравится )) только не пытайся доказать про то что дизайн с++ не позволяет изучать простые алгоритмы, и про то что детям не нужно прививать быть внимательным ибо людям внимательность не присуща.
За первое тебя попросту за болванчика примут а за второе можешь и оскорбить кого, так глядишь слово за слово да на пол уронят. Удачи!
> слушай вот реально, я не ставлю цели тебе что-то доказать, ты живи
> как тебе больше нравится )) только не пытайся доказать про то
> что дизайн с++ не позволяет изучать простые алгоритмы, и про то
> что детям не нужно прививать быть внимательным ибо людям внимательность не
> присуща.Ты читать умеешь, дедуль? Возрастом своим он тут трясти пришёл. Ты читать научись, а потом только начинай пейсать. О воспитании детей тут говоришь только ты. Сложно сказать почему: больная тема, небось? Я не слова не говорил о том, надо или не надо прививать внимательность детям. Вот ни одного. Тебя чего-то вдруг переклинило. Продолжай в том же духе "ничего не доказывать", я уверен люди потянутся к тебе со временем. Главное не позволять вниманию расфокусироваться, и продолжать сконцентрированно долбить в одну и ту же точку, несмотря ни на что.
иди на ... ) покемон )
А инфраструктуру так и не завезли. Выкидывайте.
Модули есть, транслятор есть, потоки есть, чего тебе еще надо?
Тут ещё подумаешь, на чём проще писать... возможно, на брейнфаке.
На Расте сложно писать? После какого языка? Питона?
Да ладно, большинству современных "погромистов" сложно писать на чем-то, кроме JS.
Написал бекендик на расте после js/php. Было сложновато поначалу. А теперь, когда разобрался, могу писать на раст не спотыкаясь на каждой строчке о компилятор. И скажу более - пока что это лучший ЯП который я встречал
Не репрезентативно. Лучший C# и .NET Core
c# сейчас очень передовой язык. Он настолько стремительно развивается, что уже хочется чтобы чуть помедленнее.
Что конкретно вы подразумеваете под словом "инфраструктура"?
> Релиз LLVM 11 ожидается в ближайшие дни.<snip>
$ llvm-config --version
12.0.0
</snip>
Это не первой свежести. Кажется, автор п...т.
Научитесь отличать девелоперскую ветку и стабильные выпуски. На https://llvm.org последний релиз 10.0.1.
Ветка 11 пока на стадии 11.0.0-rc6 https://github.com/llvm/llvm-project/tags
Как только авторы сподвигнутся выпускать хотя бы компилируемую "стабильную" ветку --- так я сразу...Наличие "нестабильной стабильной" ветки одновременно с х.з. сколькими "стабильными нестабильными" --- это надо сильно в тусовке тусоваться. Так что оцениваем коммиты/код. И берём потенциально работоспособное/пригодное к использованию. Дофиксим, если немного. Мне ехать надо, а не шашечки считать.
Стабильная ветка одна - это 10. Тестовая тоже одна - 11. То, что вы показали, это master в которой ведётся разработка. Она вообще не предназначена для кого-либо, кроме тех кто пишет LLVM.
На самом деле в Rust используется более старая версия 11.0.0-rc2
https://github.com/rust-lang/rust/pull/73526/Странно, что они не смогли подождать ещё несколько дней и выпустить новый Rust с окончательным релизом LLVM 11.0.0 К чему эта гонка?
У llvm нет "стабильной" ветки - если во всех "стабильных" ветках вот уже n лет как баги зарепорчены, а их не фиксят, даже не смотрят, то о какой стабильности может идти речь? На хрен такье стабильное присутствие багов.
У GCC с этим лучше?
Ловите этого путешественника во времени!
Rust - это состояние, приобретенное технологией под воздействием токсичных комментаторов.
Ого, как сишников вставляет!
Да какой он сишник... Так, неведома зверушка
Нужно! больше!! восклицательных! !знаков! !в синтаксисе!!!
и ) ещё )) каких [ нибудь [[ замечательных [[[ скобок >>>>>> чтоабы <=-=- было ^ понятно } и }} одобно }<= читать.
b!!.length в котлине все равно больше :-P
Чаще используй макросы, будет больше восклицательных знаков.
Не обращай внимание, просто он пишет на Whitespace.
Советую попробовать вникнуть немного, сразу всё встаёт на свои места.
Макросы с ! лучше и понятнее аналогичного код стайла из C
Всего лишь личное субъективное мнение, никаких доказательств этого вы не привели.
Интересно, а в rust специально используется такой синтаксис, чтобы люди привычные к алголообразным языкам рыдали кровью или это случайно так получилось, или от помеси OCaml с Erlang есть какая-то сакральная выгода, которая мне не открылась в попытке набегом понять что написано на rust?..
Да, есть такой маркетинговый приём.
Специально, чтобы сохранить его понятным людям с опытом в алголообразных языках, выдавив максимум выразительности. Будь у него более приятный, но не похожий на мейнстрим синтаксис, вход в него был бы ещё сложнее
Мейнстрим это java, c, c++, python и в них подобных конструкций нет. Синтаксис rust — это не мейнстрим.
> выразительностиПро все языки говорят, что они выразительные.
Что это значит - загадка.
> Про все языки говорят, что они выразительные.
> Что это значит - загадка.Это значит, что языковые возможности обеспечиваются синтакстическими конструкциями, а не внешними костылями. Например, Идеальный пример это Java vs Kotlin, особенно в тех местах, где в первой требуют всякие явные equals и hashCode
Миф о плохом синтаксисе лишь миф. Достаточно попробовать немного разобрать смысл происходящего.
Бывают упоротые языковые конструкции конечно, но не больше, а то и меньше, чем в C++
я смотрю стримы по расту, везде плашка 18+
Так это не у всех,
про добычю рисурсов клафтинг и постройку негде нет такой плашки
> чтобы люди привычные к алголообразным языкам рыдали кровьюКонечно. Паскалисты должны страдать. Ведь все изобретатели новых языков думают в первую очередь о страданиях паскалистов. /s
> или от помеси OCaml с Erlang есть какая-то сакральная выгода
Если бы ты конкретно изложил бы, какие именно свойства синтаксиса вызывают кровавые слёзы, то на твой вопрос, наверное, можно было бы ответить. Но пока ты ограничиваешься лишь демонстрацией этих кровавых слёз, у тебя примерно ноль шансов получить информативный ответ.
>> какие именно свойства синтаксиса вызывают кровавые слёзы, то на твой вопрос, наверное, можно было бы ответить.Хм, лево- и право- стороннее движение ?! Особливо на одном проекте - это на аматеура..
Так подкосить потенциальную абонентскую базу - основатели(R) знатную поросю подложили в фундамент..
>>> какие именно свойства синтаксиса вызывают кровавые слёзы, то на твой вопрос, наверное, можно было бы ответить.
> Хм, лево- и право- стороннее движение ?!Я не понимаю вот сейчас, о чём ты говоришь. Разговору было бы полезно, если бы ты объяснился.
i: u64
vs
uint64_t i
> i: u64
> vs
> uint64_t iХмм... Заглянул в википедию: я думал, что первое как раз и есть алголовский синтаксис, но оказывается, что нет.
Нуок, тогда преимущества, _паскалевского_ способа декларации: он проще. Как с точки зрения алгоритмического парсера (прочитав i в "i: u64", парсер уже знает, что i -- это имя декларируемой переменной, прочитав : он знает, что дальше пойдёт имя типа, прочитав u64 он знает, что это имя типа, даже не сверяясь со списком имён типов), так и с точки зрения человека.
Почему важна такая простота с точки зрения компилятора? Да потому что она избавляет от необходимости декларировать тип _до_ того, как задекларирована переменная этого типа. В C и C++ из-за этого приходится отдельно писать декларации, отдельно дефиниции. Из-за этого в C и C++ возникают интересности, когда изменение порядка деклараций может изменить семантику. В C++ с этим всё совсем плохо на фоне возможностей перегрузки.
С точки же зрения человека, я думаю, полезность простоты обосновывать не нужно, но может быть неочевиден сам факт простоты, так? Ну глянь на C'шное что-нибудь:
int (*fns[16])(int * const * p);
Ты чуешь в чём дело? Тут синтаксис типа перемешан с синтаксисом переменной. Чтобы в этом разобраться нужно аж целое спиральное правило. Без которого плюс-минус можно обойтись, но когда в типе появляются словечки типа const, перетасованные с * -- сам чёрт ногу сломит к чему именно относится этот самый const -- к указателю или к тому на что он указывает?
rust'овый синтаксис отделяет имя типа от имени переменной. Имя типа всегда одинаково, вне зависимости от того, суёшь ли ты его в sizeof, или объявляешь переменную такого типа, или объявляешь функцию, возвращающую значение такого типа.
И кстати обрати внимание на int*const*p: замечаешь, что оно выглядит как два умножения? Прикинь теперь:
a * b;
Что это? декларация переменной b с типом указателя на a, или умножение a на b с игнорированием результата умножения? Чтобы распарсить такое надо знать, что a -- это имя типа. То есть, чтобы понять синтаксис, надо заглянуть в семантику. За такое, если по хорошему, надо руки отрывать, и если разработчикам алгола можно простить ещё -- они писали в такой древности, когда разницу люди не понимали, то разработчикам C совершенно точно надо было бы оторвать руки за то, что они полезли пилить язык, не ознакомившись с современной им литературой о языках и компиляторах.
...
>>За такое, если по хорошему, надо руки отрывать, и если разработчикам алгола можно простить ещё -- они писали в такой древности,
>>когда разницу люди не понимали, то разработчикам C совершенно точно надо было бы оторвать руки за то, что они полезли пилить язык, не ознакомившись с современной им литературой о языках и компиляторахВ общем, за одно разрабам Java, C#, etc. - они предпочли не нагружать целевого пользователя(с/с++), как говорится дьявол в деталях, вернее в одном терминирующем символе, чтобы все было цело и сыто:
uint64_t: i;По факту, приличный пласт пользовательской базы под корень подрубили, имеется в виду средне-стат. разраба.
За сим откланяюсь
> uint64_t: i;Это не очень удачный синтаксис. Во-первых, в нём нет ключевого слова let, которое зело упрощает парсинг (не важно с какой целью парсинг проводится -- компиляция, подсветка синтаксиса, search/replace регекспом, ...). Во-вторых, неясно как это изменить, чтобы допустить автоматическое выведение типов. А без автоматического выведения типов довольно неудобно жить, когда типы бывают сложными.
> По факту, приличный пласт пользовательской базы под корень подрубили, имеется в виду
> средне-стат. разраба.Знаешь, тот пласт о котором ты говоришь, по-моему, не более чем балласт. Этому пласту лучше оставаться в C и C++ и продолжать тянуть их на дно. Ломать копья из-за какой-то там синтаксической детали, причём не в силу серьёзных технически обоснованных причин, а потому, что синдром утёнка? Пускай они этим синдромом топят C. Можно и C++ заодно.
То есть, если ставить перед растом цель "убийство C", то тогда замена синтаксиса на более удачный с технической точки зрения, но топчущийся по синдрому утёнка -- это гениальный ход: жертвы синдрома останутся в C, люди свободные от синдрома с неплохой вероятностью мигрируют в rust. Произойдёт "охлаждение групповых убеждений посредством испарения"[1], и сообщество C окончательно превратится в сообщество догматиков с визгливым голосом, и тогда у него совершенно точно не останется никакого будущего, кроме пенсии.
>> uint64_t: i;
>Это не очень удачный синтаксис. Во-первых, в нём нет ключевого слова let,.. var, mut, this, etc - это вопрос ключ. слов, можно еще чем нибудь расширить
Изначальный аспект был в лево- и право- рульности "переменной"
Имо, в этом разрабы раста подошли несколько догматично/академично/...
> Ломать копья из-за какой-то там синтаксической детали, причём не в силу серьёзных технически обоснованных причин, а потому, что синдром утёнка?Это не синдром утенка, а нежелание аудитории тратить ресурсы(невоспол.) на синтaксис, то что спокойно может сделать машина
>> Ломать копья из-за какой-то там синтаксической детали, причём не в силу серьёзных технически обоснованных причин, а потому, что синдром утёнка?
> Это не синдром утенка, а нежелание аудитории тратить ресурсы(невоспол.) на синтaксис, то
> что спокойно может сделать машинаЭто именно что синдром утёнка. Всё остальное -- это рационализации, то есть попытки придумать рационально-звучащее объяснение, которое скрывает истину. Освоить синтаксис деклараций раста можно за 10 минут. Если 10 минут для тебя такой уж невосполнимый ресурс, то что ты делаешь, флудя здесь?
> a * b; Что это?Вот и добралось поколение ЕГЭ до кодинга... А потом будешь спрашивать, "гиде искать определение типа int? что это вообще за int? нипанимать!!"
>> a * b; Что это?
> Вот и добралось поколение ЕГЭ до кодинга...Угу. Добралось и увидело косяки синтаксиса, хотя олдфаги десятилетиями смотрели подслеповатыми глазами и в упор не видели.
>> косяки синтаксисаОх уж эти смузи-эстеты...
>> олдфаги десятилетиями смотрели подслеповатыми глазами и в упор не видели
Конструктивная критика C? Не, не слышали.
>>> косяки синтаксиса
> Ох уж эти смузи-эстеты...
>>> олдфаги десятилетиями смотрели подслеповатыми глазами и в упор не видели
> Конструктивная критика C? Не, не слышали.Конструктивность вся осталась выше, она закончилась переходом на обсуждение поколения ЕГЭ, а затем на обсуждение смузи. Отметь: не по моей инициативе.
Вот, например, в Аде в пакете Standard даны определения всех стандартных типов и я считаю, что это правильно.
type Integer is range -(2 ** 31) .. +(2 ** 31 - 1);
type Byte is mod 2 ** 8;
type Boolean is (False, True);
type Float is digits 6 range -16#0.FFFF_FF#E+32 .. 16#0.FFFF_FF#E+32;
Должны страдать паскалисты, но страдают только сишники, а паскалистам норм, они к LL синтаксисам привыкли.
> Должны страдать паскалисты, но страдают только сишники, а паскалистам норм, они к
> LL синтаксисам привыкли.Сишники должны страдать -- это их осознанный выбор.
Любой программист с мало-мальски развитым кругозором знает о семействе ML и хотя бы видел пару сорцов. Ноют про синтаксис обычно те, кому лень учиться и у кого фантазии хватает только на то, чтобы программированием зарабатывать на хлеб. Интересно, а в других странах специально используют такие алфавиты и грамматики, чтобы люди, привыкшие к англообразным языкам, ссали кипятком, или в этом есть какая-то сакральная выгода, вроде другого способа выражения мыслей и своего набора идиом?
> Ноют про синтаксис обычно те, кому лень учитьсяВремя идет, вычурных синтаксисов становится все больше и больше, а с тебя сыпится уже труха.
> Интересно, а в rust специально используется такой синтаксис, чтобы люди привычные к
> алголообразным языкам рыдали кровью или это случайно так получилось, или от
> помеси OCaml с Erlang есть какая-то сакральная выгода, которая мне не
> открылась в попытке набегом понять что написано на rust?..А людям, привычным к Erlang, норм, много знакомых конструкций. Хотя есть неоднозначности типа одинарных стрелок в сигнатурах функций и двойных - в match. Ну так и в Erlang - запятая, точка, точка с запятой...
Ну да норм. Всем полутора землекопам.
Всем разработчикам лаборатории распределенных систем университета Иннополис, где я имею честь работать. Всем разработчикам RabbitMQ, CouchDB, ejabberd, веб-сервера Cowboy. Сотрудникам Facebook, которые занимаются серверами WhatsApp, разработчикам Amazon EC2, сотрудникам T-Mobile. Сотрудники Eltex, разрабатывающие софт-свитч ECSS-10, тоже не страдают.
Также, думаю, не парятся за синтаксис те, кто пишет на Elixir.
Вроде всё хорошо, но синтаксис... Я столько водки не выпью 🐷
А они! - выпили!
А что синтаксис?
Давно C++20 не видел?)
Это походу ты его не видел.
слабак!
Угу.Я тут на старости лет спокойно осознал, что легко пишу и читаю код на любых языках с линейным человеческим синтаксисом - C/плюсах, PHP, паскале/дельфи, ..., причём с одинаковой эффективностью. А начинал вообще с ассемблера, и с алгоритмами в голове всё нормально.
Но, мать его, питоны, русты и прочее извращение... Возникло ощущение, что оно для тех, у кого мозг вывернут наизнанку. Порядок операторов наизнанку, куча символов, действие которых надо "считать", куча разномастных скобок и стрелочек в непредсказуемых местах. Это 3.14ц, уважаемая рыдагция.
Какие символы нужно считать? Какие места, где вы встречали скобочки или стрелочки, оказались для вас неожиданными? Приведите примеры. Я себя каким-то особым интеллектуалом не считаю, однако даже с моим смехотворным опытом разработки в 10 лет я без проблем осилил синтаксис Rust за неделю. Может, проблема в вас?
10 лет - это очень мало. Подрастёте - поймёте.
И что вы хотели этим сказать? Что чем больше опыт, тем сложнее читать синтаксис? Так это расстройство, а не повод для гордости.
Чем больше опыт - тем легче пишешь на любых нормальных языках, и тем неадекватнее выглядят хипстерские поделки.Как-то так.
Странно, вот у меня чем больше опыта, тем легче пишу на любых языках - нормальных или нет. Ну, видимо, это просто я ненормальный. Кстати, а каковы критерии "хипстеровости" ЯП? А то в команде rustc куча специалистов с хорошим образованием и глубокими знаниями теории типов и computer science вообще. Надо полагать, это всё хипстеры придумали, а трушные мужики делают в одиночку тяп-ляп на коленке, прикручивая к собаке колесо сбоку, немного полируют, потом это наудачу попадает в продакшен и распространяется подобно вирусу, и в течение десятков лет миллионы пользователей вынуждены ходить по одним и тем же граблям, которые невольно разложил автор, а затем разложил комитет по стандартизации в силу принципиальной неспособности какого-либо комитета разработать цельное решение проблемы из-за фрагментации целей и мнений. Ну ладно, это всё мои фантазии, все совпадения с реальными людьми и ЯП случайны. И вообще, трушные мужики пишут только на С, поэтому вымышленный персонаж из этой вымышленной истории - тоже жалкий хипстер.
> в команде rustc куча специалистов с хорошим образованиемУвы, только в команде rustc, но никак не в её пастве. Бизнес-моделька такая.
Кстати, с каких пор PHP имеет человеческий синтаксис? И вы ещё жалуетесь на обилие спецсимволов в Rust. Ну разве не мило?
А с питоном-то что не так o_O?
> А с питоном-то что не так o_O?Уже значимых пробелов достаточно, чтобы не трогать.
Нормальный синтаксис, такой же самый наверное как в го. Только в го меньше генериков и поэтому ты там не видишь конструкции типа "<<<<<>>>>, <<>,<>>>"
Зачем писать такой несуразный бред? Вы хоть один из этих языков в глаза видели?
Откуда столько ненависти? Видимо если его так ненавидят, то хороший язык, раз Сишников каждый раз взрывает!
Может быть это и хороший, замечательный и выдающийся язык, но:1. Он очень долго собирается.
2. Он есть далеко не на всех платформах/архитектурах.
3. На нём мало чего есть: всмысле библиотек мало, а без библиотек сложно по быстрому что то реализовать. Ну а если юзать не родные библиотеки на расте то даже "безопасности" не остаётся.
4. IDE, профилировщики, дебагеры, анализаторы, форматеры кода - всё это в мечтах.
5. Очевидных причин его использовать по сравнению с СИ нет, только маркетинговая беозопасность.Конкретно Сишников вырывает каждый раз потому что приходит растоман и начинает рассказывать какой его раст замечательный и какой страшный си, притом делает это с настойчивостью адепта секты и в полном неадеквате.
Со стороны сишника это выглядит как пришёл какой то чувак и рассказывает что вот тут построили новый дом, квартиры там без отделки, даже водопровода и канализации ещё нет, дом на 30 этажей но лифт ещё не инсталировали, зато двери открываются безопасно - отъезжают в сторону и поэтому никого не покалечат в принципе, электричества нет - значит никого им не убъёт, на лестниках тройные перила с двух сторон и ширина лестницы 1м чтобы обоими руками сразу держатся, чтобы опять же никто не покалечился. В следующем году возможно сделают крышу, а через 3 года проведут электричество, не более 100 Ватт на рыло и поставят тройные дифф автоматы, и вообще напряжение будет безопасным - 3 Вольта.
Сишник оглядывает свою хату с ремонтом, электричеством, канализацией, крышей, мебелью, техникой и семьёй и громко неудоумевает: зачем мне ваши безопасные двери и перила когда у вас там полнейший голяк!?
В ответ начинается опять рассказ про тройные перила и безопасные двери.
На этом растоман посылается в лес, иногда с вежливой формулировкой: приходите когда у вас будет крыша, водопровод, канализация и электричество по 10 киловат на рыло.В общем и целом безопасность раста:
1. мнимая, учитывая обилие unsafe блоков
2. нинужная, учитывая сколько есть возможностей в си для выявления проблем как на этапе компиляции так и во время работы.Моя позиция состоит в том, что вместо раста и с++ лучше изучать конкретные технологии и библиотеки которые являются системо образующими.
Те сети, ffmpeg/gstreammer, OpenCV, OpenSSL/LibreSSL/GNUTLS и тп, поглядывать в ядро и иногда там что то править...
1. Не хуже аналогов с шаблонами. Первый раз долго, конечно, если надо все зависимости собрать.
2. На всех основных есть.
3. Зайди на crates, их дохрена, сложно для какой-то целевой задачи не найти крейт. Конечно, можно, но сложно. Были случаи, когда для раста нашелся хороший крейт продакш уровня, а на плюсах дряхлая кривая либа
4. Что? Всё есть, и на хорошем уровне:
- IntelliJ Rust
- Rust Analyser (интеграция в разные редакторы)
- rls, но он хуже
- дебаггер даже в vscode есть
- Формат кода есть в стандартной поставкеРаст в сравнении с Си и правда замечательный :)
Да всё на фоне Си великолепно, если подумать
Он приятнее уже сейчас, дом построен, сдан, а сишник накачался клеем и думает, что у него есть дом.
Сишники просто не хотят терять свою значимость, вот и кричат. Хорошо, что местные комментаторы ничего не решают, иначе бы до сих пор не лошадях ездили :)По безопасности:
1. Вот именно, что блоки. Лучше БЛОКИ unsafe, чем ВООБЩЕ ВЕСЬ КОД. К тому же, unsafe тоже проверяется и сам по себе безопаснее C. Наиболее оптимальный подход.
2. Нужная. C от обилия уязвимостей мирового уровня это всё не спасло.
Но да, при обсуждения Раста иногда в первую очередь вспоминают безопасность, но это скорее бонус, на мой взгляд, чем киллер-фишка.Хорошего дня!
Почему на расте невозможно целиком написать законченный продукт? Мозила уже 10 лет пилит-пилит и не может допилить FF на расте, как ни ткни куда - "ой, это ещё не переписали".
Можно источник, где они говорили, что собираются всё-всё переписать?
Какой в этом смысл? Это не практично, это дорого.
Они избрали верный путь и пишут на расте именно новые модули.
> Почему на расте невозможно целиком написать законченный продукт?Почему на опеннете анонимам невозможно целиком написать хоть немного продуманный комментарий?
> Мозила уже 10 лет пилит-пилит и не может допилить FF на расте, как ни ткни куда - "ой, это ещё не переписали".
Т.е. сначала им нужно было угнать машину времени, чтобы релизнуть раст в 2010
>> 15.05.2015 · Today we are very proud to announce the 1.0 release of Rustа затем уговорить Гугл отказаться от подминания рынка под себя методом "все остальные в догоняющих", пока они не перепишут у себя весь движок?
От оно чё.
МСу на самом деле небось тоже раст помешал оставаться на собственном движке, а не менеджменту надоело тратить сотни миллионов, просто чтобы не отстать от Гугла?
1. Чтобы собрать раст нужно собрать llvm и потом ещё раст, это как бы дольше чем просто один llvm.
2. i386, amd64 и всё?
3. Не знаю что такое крейт, но сильно сомневаюсь что на расте уже есть ffmpeg со всеми кодеками или OpenCV, боюсь даже банальной замены OpenSSL может полноценно не найтись.
4. Те примерно один компелятор, одна IDE, а анализатор и форматер - то что досталось на халяву от llvm - "очено богато". И я поверю на слово что это есть хотя бы в единичных работающих экземплярах.
5. Я так и не услышал причин переходить на раст.У сишников есть чем занятся, кроме как тратить время на очередной ненужно язык с нулевым и отрицательным профитом.
Языку си дофига лет, за это время он слабо поменялся (стабильный синтаксис) и по прежнему является довольно простым и доступным, при этом максимально функциональным, в плане возможностей.
На си можно писать и ядра операционок и любой прикладной софт, и оно будет довольно переносимо при минимальных усилиях, да ещё и внуки собрать смогут то что прадеды написали.Безопасность, безопасность, безопасность - у тебя фобии?
Грохнется прога, переполнится стёк и тп - и что?
Отладчиком чтоли пользоватся не умеешь и корки разгребать?А давай на вашем расте в течении 50 лет тоже будут писать всякие начиная от школотронов и заканчивая специалиастами с многолетним опытом, напишут штук 5 операционок, пару офисных пакетов, 3-4 браузерных двигла, кучу дров, тонны прикладного софта, это всё поработает у пользователей лет 40, а потом ты придёшь и будешь рассказывать что у вас на расте никаких уязвимостей нет и быть не может.
И ещё придётся скидку сделать, на изменение культуры, тк раньше то "безопасность" никого не интересовала - инетерсовала скорость и то не всех, писали многое по фану под пивом, и инета не было а потом там полтора анонима было и опытом особо обмениватся было не с кем, многие всю жизнь варились в собственном соку. (Инога такие кадры до сих пор встречаются, обычно гитом не пользуются, codestyle ни на что не похож, а код они пишут сразу обфусцированный - там какая то загадочная логика, настолько что даже atoi() их реализации совершенно не понятен)
Просто про культуру и акценты.
Я вот лично нейтрально относился к Abode Flash Player в начале 200х, годов с 2010 он начал напрягать тем что постоянно требовал обновления чтобы затыкать зиродеи в бизапасности. Ну ещё напрягали корявые сайты и реклама на нём.
Но при этом не возможно отрицать что именно он всёс огромный вклад в развитие и технологий и культуры. Именно он позволил смотреть и анимацию по диалапу и какие то игры а потом и видосики прямо в браузере, не было бы ютуба без фарш плеера.
При этом никто там никаких дыр в нём лет 10 не искал, не было никаких проблем с безопасностью - оно никому не было нужно. Потому оно так и разрабатывалось - лишь бы фичи да скорость.
Это потом пошла мода искать дыры и там каждый месяц было 1-8 зиродеев с автоматичеким выполнением кода.И я могу припомнить ещё кучу "дыр" которые были просто потому что никто не думал что это будет использовано как то во зло а не так как задумано.
В Outlook Express можно было у письма делать фоновую музыку (типа музыкальной открытки), а потом кто то догадался туда вместо wav/midi прикладывать exe - оказалось оно тоже "воспроизводится".
Любимая тема с макросами в офисе - далеко не сразу злодеи догадались использовать их для шуток а потом и гадостей, а ведь как было удобно придумано.В целом же, если заниматся измерениями у кого длинее, то корректно будет сравнивать си код который пишут с момента появления раста и в тех случаях когда авторов интересовала безопасность кода и они применяли соотвествующие практики для проверки и улучшения этой безопасности.
И в общем нужно понимать что иногда пишутся вещи как PoC, где нет цели никакой кроме того чтобы оно отработало корректно в паре заранее известных простых юзкейсов. И такое иногда вырастает во что то большое и дырявое :)
Подозреваю что на расте такое писать сложнее из за кучи заморочек и придирок от компилятора - те PoC не будет закончен по причине того что компелятор задолбал, пиво кончилось и уже спать пора :)
Пока что у вас там накорябано полторы библиотеки и пара приложений и дальше дело как то медленно идёт.И просто учти, что завтра придёт поколение языков для квантовых компов, и поскольку ржавчина туда не может - она опять станет ненужна. А там принципы другие, там безопасность не интересна.
Не буду лишний раз цитировать, но половина написаного тобой - кипение, бред и признание некомпетентности.
Те аргументов у вас нет?
Просто к сведению: автор #80 соизволил брякнуть неаргументированное с укуртелекома. Если Вы будете его сподвигать на внятные логичные высказывания и обоснование своей позиции -- ему это может буквально стоить жизни, поскольку разрушение контейнеризации сознания в условиях массированной пропаганды, переворачивающей наблюдаемое с ног на голову, некоторым не получается выжить без соглашения с тем, что и чёрное -- это белое, и белое -- это белое.PS: в смысле коротнуть в его бошке может...
Сам же прокомментирую Ваше высказывание так: безопасностью "не заморачивались" или раздолбаи, или когда считали, что какой-либо фронт априори прикрыт (например, "это изолированная машина", которая через пяток лет вдруг стала связной). Да и вред от дырок в девяностых был по большей части профессионально-подковыристый, внимание организованного криминала (и следом монетизацию) тема информационной безопасности привлекла уже в нулевых.
Чувак, посмотри код, который требуется на С, чтобы запустить что-то полезное, например быстро сделать http-сервер.
А, вам древним, такие технологии не нужны, я понял... У вас наверное в компе до сих пор HDD стоит, т.к у SSD много проблем.
Чтобы быстро сделать http-сервер, можно взять библиотеку libevent - там он есть встроенный - как я понял Вы намекаете, что в Rust-е он есть, а в C - нет?
Чтобы на си запустить http сервер - я просто соберу nginx, lighttpd, apache, ngunit... да их сотни.
У меня и собственный код есть для этого.Но если вы думаете что у вас там на расте достаточно пары строк для этого - вы просто глупы.
От того что на пхп или вижал бейсике нечто делается парой строчек - ещё не значит что под капотом там ничего нет.
У нас на сишечке нет привычки тащить весь мусор в стандартную поставку, каждый волен выбирать тот набор библиотек который ему больше нравится/подходит.
1. https://rustup.rs/
2. https://doc.rust-lang.org/rustc/platform-support.html
3.
> Не знаю что такое крейтКак можно спорить о Расте и не знать, что такое крейт? "Крейт - это двоичный файл или библиотека" https://doc.rust-lang.ru/book/ch07-01-packages-and-crates.html
> на расте уже есть
Я надеюсь, что речь не о глупом переписывании известных проектов ради переписывания, а о биндингах?
> ffmpeg
https://crates.io/search?q=ffmpeg
> OpenCV
https://crates.io/crates/opencv
> банальной замены OpenSSL
т.е. речь всё же была о ЗАМЕНЕ НА РАСТЕ? Ох. Переписывания ради переписывания - глупейшая вещь на свете, если это не сделано для обучения, for fun или приносит _ощутимою_ пользу. Впрочем, есть криптолибы на чистом Расте, например: https://crates.io/search?q=dalek
+ https://crates.io/crates/openssl4.
> один компелятор*компИлятор
В контексте звучит так, будто это плохо. Один официальный компилятор от создателей языка - это огромнейший плюс. К примеру, сейчас с C++20 творится полнейшая жесть, к концу 2020 не все компиляторы еще реализовали главные фичи, т.е. использовать их можно только в узкой среде (https://en.cppreference.com/w/cpp/compiler_support).
В Расте же как добавили async/await, так все и перешли :)
После боли с C++, возможность использовать новые фичи по мере выхода их в стейбле (а при желании и раньше) только радует> одна IDE
Сейчас концепция языковых серверов предполагает, что специализированные IDE не нужны, и в большинстве случаев анализаторов более чем хватает. Хотя создатели IntelliJ Rust пошли своим путем самурая и анализируют своими силами.
> анализатор и форматер - то что досталось на халяву от llvm
Наркоман что ли?) При чем тут llvm?
https://github.com/rust-lang/rustfmt
https://github.com/rust-analyzer/rust-analyzer
https://github.com/rust-lang/rls> И я поверю на слово что это есть хотя бы в единичных работающих экземплярах
Что есть?
> так и не услышал причин переходить на раст
Какие причины пересаживаться с лошади на автомобиль?
У меня сложилось ощущение, что ты раст видел только на картинках и опеннете.
Я не говорю, что он идеален, это такой же в своем роде ужасный язык, как и все остальные системные, но вот что-то в нем есть :)> довольно простым и доступным
C прост как язык, по наполненности, но я бы не сказал, что он особо удобен в использовании. C++ в этом плане я люблю больше
> Безопасность, безопасность, безопасность - у тебя фобии?
Я вроде как раз говорил, что безопасность - максимум бонус к остальным плюсам языкам :)
> Отладчиком чтоли пользоватся не умеешь и корки разгребать?
Ага, OpenSSL это сильно помогло https://ru.wikipedia.org/wiki/Heartbleed
А ведь таких ошибок большинство https://www.zdnet.com/article/microsoft-70-percent-of-all-se.../
https://habr.com/ru/post/506598/> и поскольку ржавчина туда не может
Эм, почему?
> Я надеюсь, что речь не о глупом переписывании известных проектов ради переписывания, а о биндингах?Ну вот опять, вы вообще ничего не понимаете? Вы сами пишете про безопасность rust и сами же используете C библиотеки с usafe. О какой безопасности вообще может идти речь пока все C библиотеки не переписаны на rust?
Всё-таки это крупные библиотеки мирового уровня и переписывать их, скажем так, не очень целесообразно. И биндятся они ко многим языкам, чем раст-то хуже?
Но всё делается, вон в соседних ответах ринг и далека упоминали для крипты
>> банальной замены OpenSSL
> т.е. речь всё же была о ЗАМЕНЕ НА РАСТЕ? Ох.https://github.com/briansmith/ring
У него проблемы с переносимостью -- не знаю как сейчас, но полгода тому назад мне не удалось скомпилять для mips'а, работы по написанию кроссплатформенных реализаций алгоритмов чисто на rust'е (без асма и C) велись, но не знаю чем кончилось, не следил.
openssl использовать из rust'а можно разве что совсем уж от безысходности.
1. 2. С таким же успехом можно на гугл было послать.3. Не знаю что такое крейт и знать не хочу, бесполезное знание :)
В том то и смысл: раз вы не переписываете на расте - значит у вас 99,99% исполняемого кода выходит unsafe - о чём после этого с вами говорить? Зачем вообще этот 0,001 нужен?4. А вот у языка си никаких проблем с компиляторами нет, хотя их сильно больше трёх.
И можно даже самому свой написать, что часто и происходит, особенно при заходе на новую архитектуру.
Как вы со своим растом собираетесь на новую архитектуру заходить?
Опять за вас сишечка всё бутстрапить будет?)Не знаю что для вас IDE, мне показалось что вы её с блокнотом путаете, а для меня эта такая штука в которой открывается проект, можно натыкать брекпоинтов, тут же собрать и запустить код, на брекпоинте оно стопарнётся и можно наведением мышки на переменную увидеть её значение. И вменяемый отладчик, который умеет так же по коду сам навигировать.
Так у меня есть комфортный мир сишечки, в которой я бог.
Я могу херачить в ядро операционки, я могу править кучи библиотек, практически вся мировая инфраструктура держится на си коде как на фундаменте.
У меня собирается код написанный за последние лет 40 без особых проблем, и ещё лет через 50 ничего не изменится.
Зачем мне ваш раст?
Не, я понимаю плюсовиков им тролить ещё как то с трудом можно, но до сишечки вы и близко не дорасли со своими проблемами.Я вам уже писал, что до 2010 года о безопасности вообще никто не думал, цель была в фичах и производительности.
Упомянутая вами венда тянет свою историю с 80 годов, к моменту появления раста у них там написаны терабайты кода где этой безопасностью никто не интересовался.
Зачем вы занимаетесь этим манипулированием?Ошибки случаются, и раст не гарантирует их отсутствие.
1, 2. А что, я должен перепечатывать всю инфу ради тебя?) Просто кидаю ссылки, где можно ознакомиться с вопросами и это сделано лучше, чем я мог бы вкратце написать.3. А попробуй узнать. Я тоже раньше плевался на раст, мол зачем, синтаксис и т.п. Но, немного изучив вопрос, понял, что это отличный язык уже сейчас, и он продолжает активно развиваться.
Не вижу дальнейшего смысла обсуждать Раст с тем, кто не хочет ничего знать.> раз вы не переписываете на раст
Много чего переписывается. Ты сайт крейтов смотрел? Посмотри, поанализируй.
Один Actix Web чего стоит, один из быстрейших веб-серверов вообще.
Но ты спрашивал о конкретных либах, я ответил по конкретным либам.
Либы уровня ffmpeg, качественные и хорошие, нет смысла переписывать, логично же.
К тому же, ты эти либы и так ежедневно используешь и одна 100% сейф-реализация погоды в одной программе не сделает.
Суть как раз в том, что сейф-код пишет прикладной программист, использующий эти либы.> А вот у языка си никаких проблем с компиляторами нет, хотя их сильно больше трёх
Извиняюсь, но Си после Плюсов и Раста - это неудобная примитивная штука. Когда приходится работать с кусками кода на Си, это всегда не сильно радует.
Если не хочется разочароваться в Си, то лучше не пробуй Раст. В нем и структуры можно сериализовать одной строкой (https://serde.rs/), и к любой структуре, включая примитивные типы, добавлять свои функции (let i = 5; i.pow(3); i.opennet();, накидал простенький пример: https://cutt.ly/lguO4qm). Это из того, что произвело вау-эффект после плюсов в свое время. В общем, не надо, не советую пробовать Раст, серьезно.> Не знаю что для вас IDE, ... а для меня...
Странно было бы думать, что этого нет.
> Так у меня есть комфортный мир сишечки, в которой я бог
А потом окажется, что там куча UB и уязвимостей :)
Если серьезно, никто не приуменьшает достоинства C, пускай даже это от отсутствия альтернативы в свое время. Но C и C++ - великолепные языки, которые построили мир.
Но в почти 2021 хочется постепенно переходить на что-то более удобное, при этом не скатываясь в какой-нибудь питон> Зачем мне ваш раст?
А зачем флудить в теме о Расте?)
> Зачем вы занимаетесь этим манипулированием?
т.е. то, что безопасностью никто не интересовался - повод сейчас забивать на безопасность?
> Ошибки случаются, и раст не гарантирует их отсутствие
Ни один язык не гарантирует. Языки с VM могут и ошибаться, и течь. JS из браузера мог взламывать память.
Поэтому я и говорю уже который раз, что безопасность в расте - вообще не киллер-фича, а просто приятный бонус в виде встроенного чекера глупых ошибок.
> и к любой структуре, включая примитивные типы, добавлять свои функции (let i = 5; i.pow(3); i.opennet();,А зачем это в реальном мире?
Всмысле вот где это в FreeBSD/Linux/xfce4 может быть нужно и для чего?
Обычный синтаксический сахар, которым обмазывают маструбирующие, которые не хотят решать проблемы реального мира.
Аргумент уровня "когда больше нечего сказать" :)
Ну да, зачем машины на наших дорогах, когда есть лошади. Я и так могу ездить. Машины не решают проблемы реального мира!
Сахар с zero cost abstraction - это хорошо. Это нужно, поскольку уже есть. И это удобнее на практике, чем сплошная процедурка в C и его наследство в C++.> FreeBSD/Linux/xfce4
Странная выборка. Чисто ради интереса, почему именно эти проекты?
Выборка - то что у меня на десктопе (кроме линуха) и куда я лазаю и что то исправляю :)Изначально там был большой пост-ответ, но по неаккуратности он был заменён вот тем коротким ответом.
В этом длинном посте я подробно разбирал что одна из основных фишек си это его примитивизм. Те там минимум родных ключевых слов.
Следствия:
- легко изучать: 10 страниц чтения и ты всё знаешь
- практически не образуются диалекты.
Вот именно диалекты являются следствием того что каждый тянет в стандарт свякую сахарную красоту, не важно зерокост там или нет.
Диалекты плохи тем, что вот вроде бы все люди пишут на с++, но одни и теже мысли у них выражаются сильно по разному: кто то пишет в си стиле, кто то на шаблонах, кто то ещё на чём то.
В итоге чтобы понять проект требуется понять автора и знать стандарт на 800+ страниц целиком.
В мире си диалектов почти нет, в том плане всегда всё сводится к одному и тому же базовому набору си. Есть конечно же глиб, нгинх да и любая библиотека так или иначе это небольшой диалект и расширение грамматики, но там всегда можно заглянуть под капот и понять что это значит. Кроме того обычно это не распространяется далеко за пределы, такми образом разбиратся приходится только когда это нужно в явном виде. В случае же с++ можно открыть 10 рандомных проектов и половину не понять.
Из этого вытекает высокий порог вхождения в языки с богатой грамматикой.
Второым следствием является что Issues больше чем MR у таких проектов :)Поверьте, я тоже люблю всякие удобства, и у меня даже своя библиотека есть с такими удоствами.
Но когда каждый всё это тащит в стандарт - получается ад.И особенный ад получается когда растоманы тащаят свои поделия в сишные проекты, типа ядра линуха или месы или ещё какие то системо образующие библиотеки.
Поймите, вы втащите туда свой раст и будете ходить довольные, а куча народу мало того что будет матерится при сборке, так ещё и самостоятельно исправить/добавить что то не сможет из за этого.
Кто будет дальше развивать проект? Растоманы? - чёто я сомневаюсь.
Притом ещё раз, си просто примитивный, обычно можно легко прочитать и понять что там написано, это означает больше воозможность получить не issue а сразу MR с патчем.
Эти проекты изначально на другом языке. Раст уместен, но только для новых модулей> фишек си это его примитивизм
Он примитивный, простой, но сложный в обращении.
> легко изучать: 10 страниц чтения и ты всё знаешь
А потом еще N лет, чтоб писать более-менее без UB :)
В процессе возьмешь несколько крупных либ и вся разница нивелируется, поскольку у них куча велосипедов из-за того, что в языке этого нет (начиная от GString). Или будешь писать свои велосипеды, от чего другим людям не станет легче в процессе разбора кода. И тебе тоже, если нужно вносить правки в существующие проекты, где уже есть другие велосипеды, и в свою очередь изучать их.
Впрочем, это касается программирования в целом, но и C этого не лишен.> знать стандарт на 800+ страниц целиком
Это где такое нужно?
> там всегда можно заглянуть под капот
В C++/Rust тоже можно, проблемы? В любом случае, это всё тоже кривая обучения, которую нельзя исключать.
> В случае же с++ можно открыть 10 рандомных проектов и половину не понять
Ну если совсем не следить за новинками (= не развиваться), то в принципе да
> Но когда каждый всё это тащит в стандарт - получается ад
В идеале - должно получаться лучшее решение. Это как с std::string, который до C++11 многие компании велосипедили у себя, а после - ситуация изменилась и особого смысла больше не несет.
> Кто будет дальше развивать проект?
В Линуксе у каждого модуля есть своей мейнтейнер. Нет мейнтейнера = модуль на ветер. И это не зависит от языка, куча новостей было об этом задолго мыслей о расте.
> мало того что будет матерится при сборке
При грамотной изначальной интеграции проблем не будет.
> Растоманы? - чёто я сомневаюсь.
А в чем проблема? Растоманы модуль и написали изначально
> так ещё и самостоятельно исправить/добавить что то не сможет из за этого
Или из-за того, что не захотят развиваться?)
Я тут из интереса посмотрел...1. curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
офигеть рекомендация!!!!!!
запустить неведомо какой шел скрипт из инета у себя.2. Хороший список, только там везде или * или ?
Но можешь попробовать найти хоть что то где сишечка не работает :)
1. Это официальный способ установки, проблемы? https://www.rust-lang.org/ru/learn/get-started
С таким подходом, и правда лучше не продолжай смотреть Раст. А то еще узнаешь, что все-все либы автоматически качаются с https://crates.io/ вместе со всеми зависимостями и инфаркт схватит :)2. Ну лично мне хватает линукса/винды/андроида/мака/аойси. Вообще, https://www.rust-lang.org/ru/what/embedded
А потом у вас будет как с NPM, где каждый васян накидал бэкдоров.
Либы C тоже мейнтейнят васяны из дистрибутивов. При этом совершенно необязательно программисты и совершенно необязательно смотрят код лично.
Либы C тоже качаются с гитхаба / из интернета.
Шанс бэкдора в любой либе C/C++ не меньше.Разница лишь в автоматизации процесса от создателей языка и в отсутствии C/C++ единого пакетного менеджера. Собственно, плюсом Раста вижу наличие конкретных создателей со всеми вытекающими, а не разрозненное нечто + действительно хорошая документация (rust book).
+ Например, можно иметь в проекте либу A с зависимостями B 1.0 и G 2.3 и либу Q с зависимостями B 2.0 и G 3.4. В мажорных версиях будет изменение API и либа A просто не соберется с новыми B и G.
В Расте же собирается и работает. И всё в одном проекте. Гибкость, которой не хватает основным пакетным менеджерам Линукса.
Поздравляю, вы выкопали себе могилу :)1. Да, для си нужно качать либы откуда то.
При этом поскольку процесс ручной - приходится убеждатся что либа адекватная прежде чем она качается/клонируется и интегрируется в проект.
Как минимум отвественно на это пререкладывается на маинтернеров пакетов дистра.
Опечатки при наборе практически исключены.
В общем я бы послушал как вы предлагаете внедрять бэкдоры так чтобы было больше пары случайных инсталяций в год.2. У нас, как правило, десятки либ/имплементаций для одного и того же. По крайней мере для чего то простого типа веб сервера или парсера json.
Даже если оно как то минует п1, то вероятность выбора такой либы из десятка - низка, по сравнению с безальтернативными вариантами которые у вас.3. Сложность держания либ разных версий в пределах одного проекта стимулирует к наведению порядка, в то время как ваша фича приведёт к тому что даже в маленьком проекте будет ацкий зоопарк зависимостей из разных версий.
1.
> При этом поскольку процесс ручнойТо ничего не меняется, просто добавляется больше дубовой работы.
> приходится убеждатся что либа адекватная прежде чем она качается/клонируется и интегрируется в проект
Можно банально зайти на сайт крейтов и отследить все зависимости. Или посмотреть в cargo tree.
При этом ничего не мешает всё так же зафризить проверенную версию и контролировать лично, тогда как в дистрах, даже LTS, либы время от времени обновляются.> это пререкладывается на маинтернеров
В любом случае, лично я больше доверяю надежным оригинальным автором программы / популярной либы, нежели кучке мейнтейнеров с разными патчами в разных дистрах. А ненадежные пускай запускаются в изоляции.
2.
> чего то простого типа веб сервера или парсера jsonДа дoxpeна всего.
https://crates.io/search?q=web%20server
https://crates.io/search?q=json> безальтернативными вариантами
Очень безальтернативно. Ты хоть как-то проверяй факты перед их озвучкой. А то так и другой информации, выдаваемой за факты, веры не будет.
Просто есть стандарты де-факто, которые делают что-то лучше других. В C и других языках ситуация аналогична.
Serde.rs - одна из таких либ, пускай и не всё так однозначно https://github.com/serde-rs/json-benchmark
Ну и многие используют Actix, поскольку он в топах https://www.techempower.com/benchmarks/3. Ну такое. Порядок зависит от разработчика, а не каких-то там стимуляций.
Я понимаю плюсы и минусы разных подходов. Сам на конкретно C чего-то колоссального не делал, но C++ использую регулярно. И Карго - как раз то, чего не хватает в C++. Модули уже завезли в C++20 (почти, еще не во всех компиляторах и никто не использует - еще одна проблема C++), возможно, когда-нибудь и пакетные менеджеры станут стандартом хотя бы де-факто
Неадекватность обычно исходит как раз от сишников и т.п., которые под каждой новостью испражняются на синтаксис и никак не осилят поисковик. IDE, отладчики, форматтер кода, профилировщик - всё это есть: IDEA | VSCode, gdb | lldb (интеграция есть в VSCode), cargo fmt, perf (+cargo flamegraph). Безопасность - не маркетинг. Потрудитесь прочитать мануал, мать вашу, сколько можно уже этот бред слушать. Есть unsafe, он нужен крайне редко и его легко грепнуть по сорцам, а весь остальной код безопасен. Что непонятного? В моём проекте на 6к строк всего два использования - для вызова isatty() и дла кастомного аллокатора ради вывода статистики по использования памяти. Ни разу ещё не пришлось применять unsafe для повышения производительности или обхода сложностей языка.По поводу библиотек: а как вы используете библиотеки? Наверное, вам для этого нужен некий ЯП, который вам пришлось когда-то изучать. Прикиньте, а в Rust тоже можно использовать сишные библиотеки.
А вообще, уже надоело - каждый растофоб начинает сыпать аллегориями и метафорами, сравнивать всё это с домами, электрикой, фермой и прочей хернёй. Одна история офигительней другой просто. Конкретика будет или вы только на демагогию способны?
Ваша позиция состоит в том, что вместо того, чтобы разобраться в теме, вы проходите по верхам, собираете солому, делаете из неё чучело, вешаете на него бумажку с надписью Rust, яростно пинаете, а потом с гордостью демонстрируете всем победу. Как вам такая аналогия?
> Неадекватность обычно исходит как раз от сишников и т.п., которые под каждой новостью испражняются на синтаксис и никак не осилят поисковик.Rust очень мерзко пиарят везде где только можно. Адепты культа сами приходят и начинают рассказывать "сирым и убогим" сишникам, что они срочно должны перестать ими быть и тут же начать быть растаманами.
Особенно наглая и снобская форма этих комментариев в вашем стиле получает и будет дальше получать негативную реакцию... и это вполне себе адекватно. Не нравится - пиарьте раст в другом месте, некоторые тут уже по горло сыты вашей ржавчиной.
Это моя претензия по форме, а по существу вопроса... Это как с Коболом, MP3 и другими кривыми технологиями которые стали в свое время популярными. Люди руководствуются принципом "Зачем мне покупать билет на самолёт, если у меня есть проездной на трамвай". Тут то же самое, какая бы ни была замечательная технология и технические аргументы, вы никого не убедите. "Зачем мне учить Rust, если я пишу на С, С++, C#, Python, PHP, Node.JS, Perl и т.д.". И если вы меня за это называете неадекватным, неосилятором и дальше по тексту, то отправляетесь в пешее эротическое путешествие, где будете радостно писать на расте без меня, оставив за собой впечатление, будто вы неадекватный фанатик, что, кстати, вновь возвращает к претензиям по форме.
> А вообще, уже надоело - каждый растофоб начинает сыпать аллегориями и метафорами, сравнивать всё это с домами, электрикой, фермой и прочей хернёй. Одна история офигительней другой просто. Конкретика будет или вы только на демагогию способны?
Весь твой комментарий по смыслу можно выразить в двух словах: "нет, ты" или "сам такой". Странно читать ваше требование к конкретике. И не надо тут высасывать из пальца "растофобию" (у ЛГБТ научились?), то что некоторых людей, тебя в частности, не любят за конкретное поведение не имеет отношение ни к расту ни к фобиям. Максимально конкретно тебе вот: https://bit.ly/36MJgpX
P.S Надо же, сишники пришли в тему с растом (абсолютно аналогично растаманскому поведению) и вот те раз, какая драма. =)
Относитесь к людям так, как хотели бы чтобы относились к вам. Запомните это, иначе всегда найдутся люди, которые заставят вас запомнить обо этом.
Раст не мерзко пиарят, а пытаются донести, что пора перестать пользоваться устаревшими технологиями. О вас же заботятся :)А так, обычно вся мерзота исходит именно от противников раста.
> Особенно наглая и снобская форма этих комментариев в вашем стиле
А как еще ему отвечать на откровенно некомпетентную клевету?
Если человек даже не знает, что такое крейты
> пытаются донестиВыходит у них мерзко, лицемерно и с кучей вранья про окружающих. Вам явно что-то менять надо.
Безопасный быстрый удобный язык.
Где тут враньё? Хоть один аргумент? Реальный, выработанный в процессе написания хотя бы небольшого проекта на расте?
Я могу частично оспорить, но это скорее будут придирки к конкретным неудачным решениям.
А то кукарекать может каждый, но мало кто хотя бы хелловорлд на расте лично запускал.
А вот многие растовики - бывшие сишники/плюсовики и знают, что говорят, раст действительно создаёт вау-эффект, если постараться его понять дольше нескольких мгновений чтения новости, на личном опыте говорю, как тот, кому раньше не особо нравится его синтаксис)
> А то кукарекать может каждыйтерминология манямирка,.. дальше что, на фене за раст заяснять будете?
Безопасность там всё же мнимая и больше для отмазки, мол не виноват я, я же говорил...
Даже в safe блоках вы можете совершать логические ошибки.
Ну и подключение внешних библиотек как unsafe - ну раз у вас своих нет, то о чём вообще говорить?)Моя претензия к расту - тяжёлый компилятор.
Я ненавижу его за время сборки. Я вообще ненавижу всё что долго собирается и само по себе нужно только как сборочная зависимость.
> Безопасность там всё же мнимая и больше для отмазкиКакой отмазки?
> Даже в safe блоках вы можете совершать логические ошибки
Всяко лучше, чем писать на C и, кроме логических ошибок, иметь еще тонну UB в самых неожиданных местах.
> Ну и подключение внешних библиотек как unsafe - ну раз у вас своих нет, то о чём вообще говорить?)
Каких своих нет? Библиотек дoxpeна и более.
А вот подключать через биндинги известные либы - более чем норм.
Угроза от известных либ и так есть во всей системе.
Тут дело в возможности быть +- уверенным в собственном коде - вот что самое главное.> Моя претензия к расту - тяжёлый компилятор
Нормальный.
> Я ненавижу его за время сборки
Не собирай. Установщик очень быстро ставит.
> Раст не мерзко пиарят, а пытаются донести, что пора перестать пользоваться устаревшими технологиями. О вас же заботятся :)Раст - это религия, а растаманы - адепты.
Классика авраамических культов, и их евангелистов: донести светлую мысль до сирых и убогих, несмотря ни на что, разрушая традиции и устои. Обычное лицемерие.
"не найдётся ли у вас минутки поговорить..." и так далее.
Не надо разговаривать с растаманом, просто игнорируйте его, гоните его, унижайте его, и он сам уйдёт.Я раскрою страшный секрет. Если потребуется выучить раст, это можно сделать в любой момент без всякой помощи растаманом. И если парочка особо рьяных растаманом выйдут в окно от ваших комментариев - ничего страшного не случится. Мобов не жалко.
А то посмотрите на них... Просветление у них, видите ли. Объясняют тут превосходство раста, а кто не согласен, тот (перечень ругательств растамана).
Люди настолько восторгаются молодым языком, что начинают бесплатно его рекламировать и защищать, это уровень :)Но я не совсем понимаю, о чем речь в контексте опеннета. Тут большинство пытается компрометировать Раст, при этом даже ни разу не использовав его. Заходишь в любую новость о Мозилле, а там толпа токсиков что-то о Расте вякать начинают.
Объективное обсуждение проблем, багов - это не об опеннете, здесь в основном лишь бессмысленные вскукареки на пустом месте.
Попытка объяснить реальное положение дел - нормальная реакция тех, кто посвятил языку дольше двух секунд.
Раст не панацея, но во многом действительно удобнее и C, и C++, спорить с этим может абсолютно неграмотный во всех трех языках. Что не уменьшает общей крутости C/C++, конечно.
> Не надо разговаривать с растаманом, просто игнорируйте его, гоните его, унижайте его,
> и он сам уйдёт.Лол, ты думаешь, что ты можешь меня унизить?
Ну давай, попробуй.
Речь, видимо, идет о религиозных фанатиках, растаманах, как адептов культа.
За тобой не было замечено вышеуказанного поведения...
Перестаньте пользоватся устаревшим электричеством!!!Но если вы хотите разговаривать как взрослые люди, то давайте мы сделаем табличку в которой будут перечислены все аргументы, им будет присвоен вес, а дальше мы посчитаем баллы.
Заметьте, ни один сишник не отрицает тот факт что вероятно в ржавчине решили некоторые проблемы в виде UB, конкретных проблем с памятью и организацией многопоточности.
Суть в том, что решение этих проблем не перевешивает тех преимуществ что есть у сишечки, и не компенсирует тех недостатков что есть у раста.Всхлипывания про безопасность - ну просто неадекватны, потому что раст эту самую безопасность гарантирует в строго определённых местах, а они далеки от 100% для любого приложения делающего в/в в сеть/диск, и ещё меньше их остаётся когда вы подключаете библиотеки для обработки данных.
Опять же, даже будь там гарантия 100% безопасности, использовать раст всё равно слишком дорого, потому что для этого нужно переписывать на нём всё, и таскать его унылый пухлый компилятор за собой, попутно портируя его везде.
Иными словами если си подходит для решения любых проблем, то раст пытается решать только несколько проблем.
> не компенсирует тех недостатков что есть у растаА можно конкретнее? С примерами кода, а не общими фразами.
Какие ещё примеры, когда я не собираюсь на нём писать!?Пока вы не перепишите себе все либы которые вы так бессовестно используете через unsafe - говорить не об чем.
Отдельные "уязвимости" существуют в логическом плане, ваш раст про это ничего не знает и знать не может.
Сегодня мы запускаем музыку слюбым расширением из письма а завтра это узявимость, как и обход домашнего каталога в веб серверах через всякие ..
> Безопасность - не маркетинг.Маркетинг, выше ваше коллега пишет «Я надеюсь, что речь не о глупом переписывании известных проектов ради переписывания, а о биндингах?»
Какая безопасность с биндингами к C либам? Именно вы и есть неадекваты, в своём глазу бревна не видите.
Ну сколько нужно объяснять: вызовы сишных функций небезопасны, т.к. помечены unsafe. Всё, что не помечено unsafe - безопасно. Вот в неком проекте на Rust, использующем сишную либу, происходит переполнение буфера, segfault или ещё какая-нибудь стрёмная фигня, а в проекте из unsafe - только вызовы сишных функций. Что мы делаем? Отлаживаем ТОЛЬКО вызовы к либе, т.к. наш код не мог так нагадить в принципе, что доказано научно для данной модели безопасности. Допустим, мы ничего не нашли, а в проекте есть зависимости, потому что нет времени переписывать абсолютно всё с нуля, как положено трушному мужику, а в них может быть unsafe. Значит, ищем баг в зависимостях. Внезапно, всё тоже самое, что и с другими ЯП, только здесь не нужно гадать на коровьей гуще, а достаточно грепнуть unsafe - и всё. Но трушные мужики будут отлаживать ВООБЩЕ ВСЁ, а если язык помогает сузить область поиска потенциального бага, то ты - хипстер и маркетолог.
Для того чтобы заинтересоватся синтаксисом раста нужна мотивация.
Никто в этой ветке не может внятно ответить на вопрос: зачем вместо си использовать раст?
И вытекающий из него: а как это вообще возможно на практике?У вас IDE это блокнотик с проектами или там нечто полноценное, что умеет всё то же самое что IDE для сишечки и джавы?
А вот у меня весь сишный код unsafe, у меня вся операционка unsafe (и у вас тоже), все программы, библиотеки и тп.
Кому вообще ваш safe нужен!?Моя позиция состоит в том, что приходят некие неадекваты и начинают рассказывать мне какой си страшный и какой хороший раст.
А на вопрос чем он хороший или бесконечно повторяют слово безопасность или посылают читать на сайт ихней секты.
С постом согласен. Вот только IDE не нужно.
Ненависть, по большей части, исходит от сишников, осиливших только Hello World. Или вообще далеких от программирования вообще и системного программирования в частности.
Ой, я даже не как программист, а как сисадмин ругаюсь на раст из за того что его приходится компелять для сборки фаирфокса, и компеляется он дольше чем сам фф.Ещё один минус - во фряхе ccache прикрученный к сборке портов не кеширует ничего кроме си и с++, те если хламиум я первый раз собираю полтора часа, а пересборка 15 минут, то с фф эта разница сильно меньше.
Как программист - я не понимаю зачем оно мне надо в принципе.
Вот эти кукареканья "бизапаснасть!", "си для самоубийц!" меня ни разу не впечатляют.
Ну это вот как примерно: не учи английский, лучше учи нигерийский.Я не отрицаю что он наверное содержит меньше UB, и более дотошен, но почему такая мелочь должна перешивать кучи положительных сторон си я не понимаю.
> Ой, я даже не как программист, а как сисадмин ругаюсь на раст
> из за того что его приходится компелять для сборки фаирфокса, и
> компеляется он дольше чем сам фф.
> Ещё один минус - во фряхе ccache прикрученный к сборке портов не
> кеширует ничего кроме си и с++, те если хламиум я первый
> раз собираю полтора часа, а пересборка 15 минут, то с фф
> эта разница сильно меньше.А зачем вы собираете фаерфокс из исходников? Не, под фряхой был как-то казус, что его то ли удалили из пакетов, то ли сломали, и мне тогда действительно пришлось его собирать из портов. Но это был единичный случай. Впрочем, если вы - мэйнтейнер фаерфокса в каком-то дистрибутиве, тогда другой разговор. Или вы пользуетесь source-based дистрибутивом типа Gentoo (но и там вроде есть бинарные пакеты).
> Как программист - я не понимаю зачем оно мне надо в принципе.
Ну я вот, как программист, понимаю.
> Я не отрицаю что он наверное содержит меньше UB, и более дотошен,
> но почему такая мелочь должна перешивать кучи положительных сторон си я
> не понимаю.Я определил это для себя так: Rust никоим образом не замена C, во многих задачах C эффективнее, но Rust - замена перегруженному и переусложненному C++.
Тривиальный пример: захотелось мне проверить как вернуть код ошибки из программы (чтобы, например, потом использовать его в скрипте, типа echo $?). Я знаю, как это сделать в С (элементарно). Я нашел, как это сделать в Rust (сложнее, чем в С, но ненамного и тут играет роль специфика языка). Но я, ска, убил полчаса, перематерился и так и не понял, как это сделать в С++ (сишный вариант не идиоматичен, я ведь на С++ хочу, а не на С. А если это можно сделать как в С, нахрена мне С++ тогда?).
Так что для меня, повторюсь, Rust - замена именно C++, а не C.
> но Rust - замена перегруженному и переусложненному C++.Я сразу скажу, я не фанат С++. Знаю его и не одобряю. С# ему станет заменой, когда .NET Native будет на большем количестве платформ и будет больше кроссплатформенных тулкитов (все это ближе к .NET 6), но и то, только в ООП нише.
Поймите, люди, которые пишут на С++, зачастую решают задачи при помощи ООП. А Rust и ООП - вещи не совместимые. Стоит туда добавить высоту абстракций размером хотя бы с Java (не то что оверинженирнутый ужас из С++) Rust растеряет те достоинства, которые он имеет перед С.
А ведь еще есть бараны которые системный софт и библиотеки пишут на подмножестве С++, чтобы ускорить процесс разработки. Вот этих пусть Rust себе забирает. Их не жалко.
>[оверквотинг удален]
> платформ и будет больше кроссплатформенных тулкитов (все это ближе к .NET
> 6), но и то, только в ООП нише.
> Поймите, люди, которые пишут на С++, зачастую решают задачи при помощи ООП.
> А Rust и ООП - вещи не совместимые. Стоит туда добавить
> высоту абстракций размером хотя бы с Java (не то что оверинженирнутый
> ужас из С++) Rust растеряет те достоинства, которые он имеет перед
> С.
> А ведь еще есть бараны которые системный софт и библиотеки пишут на
> подмножестве С++, чтобы ускорить процесс разработки. Вот этих пусть Rust себе
> забирает. Их не жалко.Ну так и не надо нам это ООП. Последний раз объектно-ориентированный код я писал лет так 6-7 назад как раз на плюсах. Так что мне Rust более чем подходит как дополнение к С и Erlang.
> Ну так и не надо нам это ООП.Ну так и не надо воображать что он замена С++ и ООП-паттернам.
> не надо нам
Тут ты ошибаешься, правильно так: "мне не надо". То что лично тебе не нужен ООП еще не значит, что он вдруг стал никому не нужен. Научись говорить за себя.
> Ну так и не надо воображать что он замена С++ и ООП-паттернамНу почему, если это отдельный язык со своими паттернами, то как раз прямая замена.
Я пишу на C++, скажем, гораздо чаще прошлого комментатора, и могу сказать, что паттерны ооп - одна из основных причин искать и находить замену ооп
> Тут ты ошибаешься, правильно так: "мне не надо". То что лично тебе не нужен ООП еще не значит, что он вдруг стал никому не нужен. Научись говорить за себя.А я о нас всегда во множественном числе говорю, моя прелесссть. Абыр! Абыр! Абырвалг!
С# и .NET - это влажные мечты вендузятников, для меня это какое то фричество на уровне D, rust и прочих технологий от двух анонимов.
Всмысле не вижу причин связыватся со всем этим.
Я уже один раз связался с Visual Basic, мс меня кинуло. Теперь у меня сишечка и хер меня кинешь.
А для высокого уровня я лучше приучу себя к питону, вала и тп.
Но близко не подойду к тому что пилит мс.
> валаэто тоже такой C# же.
> С# и .NET - это влажные мечты вендузятников, для меня это какое то фричество на уровне D, rust и прочих технологий от двух анонимов.
справедливости ради мс это исправляет, последние пару лет, но С# и .NET имеют конкретное назначение - высокоуровневые графичкские приложения разрабатываемые в лучших традииях ООП. Это ортогонально расту.
Причем это именно то назначение, в котором раст никогда не заменит С++.> Я уже один раз связался с Visual Basic, мс меня кинуло. Теперь у меня сишечка и хер меня кинешь.
> Но близко не подойду к тому что пилит мс.Вот сейчас интересно стало. А что там стряслось?
Вала вроде на порядки легче и там сильно меньше всего.Жил был Visual Basic а так же Visual Basic for Applications (тоже самое но встроено в офис и интегрировано с ним, те можно обращатся к элементам как гуя так содержимому документов).
Так вот он и дожил до 6 версии.
А 7 версии не было, потому что мс решило пилить .Net, поэтому они решили что нужно всех туда пересадить насильно.
А как это сделать?
Правильно - сделать Visual Basic.Net и заодно Visual C#.Net.
Куча старых - дюбимых прог в новом Visual Basic.Net просто не собирается, синтаксис поменян.А вот Visual Basic for Applications живёт до сих пор, ибо бизнес юзеры и совместимость.
Поэтому пусть засунут C#, .Net себе глубоко и на долго.
И я больше чем уверен, что C#, .Net без поддержки МС не жизнеспособны, они быстро скатятся и загнутся, будут где то на задворках с полутора настальгирующими анонимами.
Я всё, кроме дрова нвидии и вайна собираю из исходников, потому что дефолтные опции меня не устраивают: или много лишнего или не хватает нужного.А иногда приходится чинить, или самому добавлять новый порт.
Я пожалуй соглашусь что раст конкурент плюсов, я их всё равно не люблю и считаю переусложнёнными и от того беполезными/умирающими :)
Но всё же на плюсах написана куча либ, к сожалению.
И опять же ихний компилятор всё равно нужен в системе, в отличии от раста.
Кратко ваша позиция: "Я не программист, но мнение имею. Мне firefox геморно собирать, поэтому Rust плохой. Но я - сисадмин, поэтому никогда не слышал о переполнении буфера и других проблемах с памятью, которыми известен С, но которые невозможны в Rust. А нигерийцы офигели на своём языке говорить."
С точки зрения сисадмина проблемы переполнения буферов не существует в принципе.У сисадмина (если он не эникей за доширак) есть рискманагемент, для него что взлом учётки что взлом через дырку что пожар в ДЦ - это всё разные риски, которые он, по хорошему, должен закрывать административными средствами.
Конкретно использование растаманских приложений усложняет и удорожает инфраструктуру, если она предполагает сборку и дистрибуцию софта.
При этом оно всего лишь не значительно уменьшает один из многих рисков.
Ничего не имею против ржавого, кроме зашкаливающе токсичного сообщества и манагеров.
Токсичны тут только си-фанаты.
Нет ты
Да уж, достали эти токсичные сволочи, которые на форумах стремятся помочь любому, даже новичку, а некоторые, будучи модераторами, стараются направлять обсуждения в конструктивное русло, без оскорблений и демагогии. Ну, это я про users.rust-lang.org и internals.rust-lang.org, а не про OpenNET. Здесь-то даже сишники и цепепешники совершенно нетоксичны и с радостью объяснят вам, что язык ваш - кал, а вы - идиот, чем, несомненно, сподвигнут вас на саморазвитие и принятие истинной веры Свидетелей сегфолта.
> Да уж, достали эти токсичные сволочи, которые на форумах стремятся помочь любому,
> даже новичку, а некоторые, будучи модераторами, стараются направлять обсуждения в конструктивное
> русло, без оскорблений и демагогии. Ну, это я про users.rust-lang.org и
> internals.rust-lang.org, а не про OpenNET. Здесь-то даже сишники и цепепешники совершенно
> нетоксичны и с радостью объяснят вам, что язык ваш - кал,
> а вы - идиот, чем, несомненно, сподвигнут вас на саморазвитие и
> принятие истинной веры Свидетелей сегфолта.Ага, так и поверил.
https://www.opennet.dev/openforum/vsluhforumID3/122036.html#60с иронией не надарвись
Ни надарвузь.
>Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается **культовый** пакетный менеджер Cargo.вот теперь правильно.
Зачем из новости в носвость тащить безграмотный тезис о том, что в Rust нет runtime и как пруф приводить страничку вики о том, что runtime есть даже в Си?
Что бы там прочесть "There are often no clear criteria for deciding which language behavior is considered inside the runtime system versus which behavior is part of the source program."
Наконец-то, адекватная критика. Правда не Rust, а новости, но всё же приятно после большой кучи навоза выше. Согласен, runtime есть в любом высокоуровневом ЯП, т.е. уровнем выше ассемблера, незачем плодить мифы. Достаточно написать, что у Rust рантайм минимален и упомянуть, что на нём пишут в т.ч. для микроконтроллеров и прочей эмбедятины - люди сразу оценят сравнительную жирность рантайма и сделают выводы. А так лишний повод покукарекать растофобам, не читающим доки.
> Наконец-то, адекватная критика."Адекватная" критика? Человек пытается завязать разговор о смысле используемых слов, вместо того чтобы говорить по теме. Это не адекватная критика, а попытка перевести дискуссию в партер и залить говном. Вот ты подумай мозгом: ты своим ответом сказал ему что-нибудь, чего он не знал? То что ты сказал, как-то изменило его понимание новости? Чьё-либо понимание новости может быть изменилось? Нет, всё это пустые сотрясения воздуха, которые ничего не изменили. Все понимали слова, к которым он придрался, одинаково (и он в частности), и тем не менее тут аж целый тред организовался. Весь этот тред -- флуд, его "адекватная критика" -- в лучшем случае троллинг, в худшем же просто зашкаливающая тупость, которая пытается рационализировать хейтерство раста.
Адекватной критикой было бы что-нибудь в стиле указания на то, что когда ты читаешь в коде a.something().context() иногда крайне сложно понять, что это за функция такая context. Потому что something возвращает хрен его знает что и сбоку бантик, и надо перерыть документацию на это, чтобы найти трейт, который добавляет функцию context к тому, что возвращает something. А там может быть два десятка реализованных трейтов, и... мать моя женщина. Продраться через такое бывает непросто даже несмотря на крутанскую документацию.
Но видишь ли в чём фишка: чтобы такого рода критику выдавать, надо иметь опыт написания программ на языке. Если опыта нет, то вся аргументация будет сводиться к "все вокруг идиоты, я один умный и лучше знаю". Ну реально, в mozilla работают идиоты, которые не в состоянии понять, что наличие unsafe блоков испортит всю малину и код будет unsafe. И всякие во всяких там microsoft'ах, которые адаптируют rust, тоже работают идиоты, которые не понимают этого простого факта. Все вообще идиоты, кроме анонима опеннета. Альтернативно можно попытаться какую-нибудь теорию заговора придумать: мол всё они понимают в mozilla, но ради маркетинга говорят о безопасности, а в майкрософтах просто распил идёт недетский. Но обе эти альтернативы -- это не то, с чем можно спорить. Можно глумиться над людьми, которые исповедуют такие соображения, но доказать им что-либо невозможно.
Адекватная критика любого языка претендующего на роль сишечки и даже крестов начинается и заканчивается на том, что оно того не стоит.Хотя, ИМХО, кресты сами себе роют могилу, притом делают это очень настойчиво и упорно.
Покажи мне контроллер на rust. не embedded os или rtos, в которые уже вообще всё пихают. а именно контроллер.типа такого: https://www.boschrexroth.com/en/xc/products/product-groups/m...
> Покажи мне контроллер на rust. не embedded os или rtos, в которые
> уже вообще всё пихают. а именно контроллер.
> типа такого: https://www.boschrexroth.com/en/xc/products/product-groups/m...А в чём проблема этот контроллер запрограммировать на rust'е?
Вопрос был не в можно или нельзя, может и можно. Но зачем?
Вопрос был в есть или нет. По факту нет. То что нет это не значит что нельзя.А нет потому что пока ты будешь делать его на rust, люди на C++ уже 10 продуктов выпустят.
> Вопрос был не в можно или нельзя, может и можно.Вообще-то, вопроса не было. Была просьба показать.
> Но зачем?
Не знаю -- тебе надо, значит ты должен знать. Мне вообще этот контроллер не въелся, ни на C++, ни на rust, на даже на python'е.
> А нет потому что пока ты будешь делать его на rust, люди
> на C++ уже 10 продуктов выпустят.Ой не факт. Раст очень хорошо интероперирует с C и C++. Там ffi сделан максимально безболезненным и ненапряжным. Он даже чем-то приятнее, чем ffi между C и C++. Вовсе не обязательно переходить на раст одним рывком. Можно выбрать такую стратегию, которая лучше подходит.
Хорошо, не вопрос.
История тут такова была. Было сказано что на расте программируют контроллеры, я попросил показать контроллер который программируют на расте. Не оказалось.Я не мега знаток раста, так чуть ковырял, на хорошо в C/C++. Rust как позиционируют? Безопасная работа с памятью мол киллер фича. Так вот эта киллер фича в подобных контроллерах не нужна от слова совсем.
В таких контроллера нет работы с динамической памятью от слова совсем.
Зато в расте насколько мне известно нет аналога шаблонам. Т.е. абстракции уровня компиляции. То что мне в одном месте пытались впихнуть как аналог на деле оказалось недоделано и скудно по возможностям.
Из всего этого вывод прост. Rust там не нужен. Его киллер фича просто никому там не нежна. А вот темплейты C++ нужны, когда у тебя целая линейка разных продуктов на одном контроллере.
Ну и конечно куча кода уже готова, его никто не будет переписывать потому что от этого не получишь ну вообще никакого выигрыша.
> Хорошо, не вопрос.
> История тут такова была. Было сказано что на расте программируют контроллеры, я
> попросил показать контроллер который программируют на расте. Не оказалось.Тогда я вынужден признать, что я не понимаю вопроса. Что значит "контроллер, который программируют на расте"? Контроллер, который не программируют на C/C++? Контроллер, который чаще программируют на rust'е, чем на C/C++? Контроллер, который кто-то хотя бы раз программировал на rust'е?
> Я не мега знаток раста, так чуть ковырял, на хорошо в C/C++.
> Rust как позиционируют? Безопасная работа с памятью мол киллер фича. Так
> вот эта киллер фича в подобных контроллерах не нужна от слова
> совсем.
> В таких контроллера нет работы с динамической памятью от слова совсем.Безопасность работы с памятью, о которой говорит раст -- это больше, чем просто RAII. Это гарантии отсутствия data race, причём тут речь идёт не только о конкурентности, речь идёт и о реентерабельности. Динамической памяти может и нет, но разве нет и стека? Стек -- это ведь тоже динамическое выделение памяти, пускай и в ограниченном виде, и даже работа со стеком исключительно может порождать и null-указатели, и dangling-указатели. Работа с вводом-выводом? Она тоже ведь легко заворачивается в растовые абстракции, и может быть даже на уровне машинного кода выглядит как работа с памятью.
На деле я с ембеддщиной общаюсь изредка и чисто по фану, но если интересны впечатления профессионала, который стал профессионалом на поле встройки, пользуясь C, а потом попробовал притащить туда rust, и пришёл в восторг, то вот ссылки:
https://www.ecorax.net/as-above-so-below-1/
https://www.ecorax.net/as-above-so-below-2/> Зато в расте насколько мне известно нет аналога шаблонам. Т.е. абстракции уровня
> компиляции. То что мне в одном месте пытались впихнуть как аналог
> на деле оказалось недоделано и скудно по возможностям.Да, растовые дженерики слабее C++. Но есть два нюанса:
1. самый раздражающий меня провал в функциональности дженериков исправили как раз в этом релизе: теперь можно использовать константу в качестве параметра
2. есть макросы -- это не C'шные укуренные макросы, это полноценный макроязык, который заточен на работу с синтаксисом rust'а. Их вполне можно использовать, в отличие от C'шных. То есть, как и с любыми макросами в любом языке, всё же не стоит их использовать без особой нужды, но они позволяют творить очень много чего. На самом деле больше, чем любые шаблоны. В стандартной библиотеке есть немало примеров тому. Взять тот же println!, который вроде как аналог C'шного printf, но он не функция с эллипсисом, он макрос, который парсит форматную строку на этапе компиляции, там же проверяет типы остальных аргументов на соответствие этой форматной строке, и генерит код вывода, согласно форматной строке. Или всякие разные трейты для слайсов разной длины: сейчас вот добавили возможность сделать это без макросов, но это было сделано на макросах, которые генерировали имплементации трейтов для типов [T; N] (в терминах C -- массив длины N с элементом типа T), где T -- это параметризованный тип, а N -- это числа от 1 до 32. В diesel подобное было проделано для таблиц бд с разным количеством полей в записи. На макросах, блин, генераторы парсеров пилят, которые читают файл с описанием грамматики, и генерят код разбора этой грамматики. То есть макросы, по своим возможностям, не хуже лисповских, но чем-то лучше, потому что не в лисповском синтаксисе, который в случае макросов `(погружается ,$в$ 'шизофрению).> Ну и конечно куча кода уже готова, его никто не будет переписывать потому что от этого не получишь ну вообще никакого выигрыша.
А это вовсе и не нужно, как показывает история. Вон с Cobol'а тоже никто не переписывал. И тем не менее бизнес переехал на Java с Cobol'а. С Fortran'а пытались переписать, чёт как-то не вышло, но и где сегодня фортран? Примерно там же, где и кобол.
Почитал человечка по ссылка. Спасибо, позновательное чтение.Дженерики мне и предлагали. К сожалению гибкости и возможности variadic templates мне добиться не удалось с моим уровнем знания rust. Примеров дельных тоже по подобной теме.
В целом rust оказался для меня неудобным языком. Мне не достаточно той инфраструктуры которая для него есть. Поэтому он не прижился. Зачем тратить время на то чем не удобно пользоваться.
По этой же причине массово rust в контроллеры если и влезет, то будет это очень и очень не скоро. А скорее всего никогда. Почему? Потому что вообще уйдёт от их прямого программирования. C/C++ уйдёт, Rust не успеет дойти. Уже сейчас есть инструменты. Там инженер в схемках рисует, а параметры потом просто в уже готовые и проверенные C++ шаблоны пихаются и комбинируется код. Есть такие вообще облачные.И эти инструменты востребованны.
Вот только раст хочет быть вместо сишечки и крестиков.
А сишечка почти ровестник кобола и старше фортрана, правда при этом она в как бы другой нише.
Фортран сегодня - в вашей системе, если у вас десктоп на линухе.Если раст будет так медленно вползать и дальше, то займёт место рядом с D :)
PS: а вам не кажется странным что никто не критикует GO?)
Всё потому что они не претендуют быть чьейто заменой, и компилятор у них лёгкий.
> Вот только раст хочет быть вместо сишечки и крестиков.
> А сишечка почти ровестник кобола и старше фортрана, правда при этом она
> в как бы другой нише.Чё? Фортран лет на двадцать старше C. Cobol помоложе, но тоже старее C.
> Если раст будет так медленно вползать и дальше, то займёт место рядом с D :)
Не. Я наблюдал за динамикой вползания разных языков, и динамика вползания rust'а просто взрывная на фоне остальных. rust уже никуда не денется десятилетиями.
> PS: а вам не кажется странным что никто не критикует GO?)
Да ладно "не критикует". Разуй глаза. Опеннет критикует всё. Но тут надо понимать, что критика опеннета совершенно никоим образом не влияет на динамику языка. И не отражает динамики языка, если уж на то пошло. Критика опеннета совершенно оторвана от реальности.
Quick basic, D lang - тоже никуда не деваются :)
> Quick basic, D lang - тоже никуда не деваются :)Ну вот не надо прикидываться, что ты не понимаешь, о чём я говорю. Или ты не прикидываешься?
Если хорошо поискать то и на этих языках написан софт который заменить нечем/выкинуть нельзя.На расте пока только мозилла конкретно вляпалась, но ей есть альтернативы.
rav1e и rsvg - индустрию не держат.
Чувак, если ты не понимаешь, как языки программирования завоёвывают себе место под Солнцем, то просто наблюдай. Не спорь на форумах, а наблюдай за rust'ом.
Придёт время, напишут и для этой архитектуры. Если что, Rust'у всего 10 лет, а C - 48. Немного нечестно сравнивать поддержку этой широко известной в узких кругах архитектуры Infineon TriCore, о которой я впервые слышу, и для которой компиляторов кот наплакал. Может, мне тоже найти или создать свою чудо-архитектуру, набросать на коленке проприетарный компилятор, а потом чморить C за то, что он её не поддерживает?
> Согласен, runtime есть в любом высокоуровневом ЯП, т.е. уровнем выше ассемблера, незачем плодить мифыЕсли в C не использовать функции из его runtime то C прекрасно компилируется и работает без runtime.
Вы опять врёте, зачем? Как можно с вами что-то обсуждать если всё время врёте?
Дизинформатор на зарплате, вестимо же.
Более того, в плюсах тоже не будет runtime если не использовать функции и классы и runtime.Именно поэтому в true контроллерах C и C++, потому что там не может быть runtime от слова совсем.
> Более того, в плюсах тоже не будет runtime если не использовать функции
> и классы и runtime.Не, ты прикинь, и в расте тоже, если не использовать рантайм, то он не нужен и его может не быть в результирующем бинаре. Я несколько лет назад, экспериментировал с attiny, собирая туда прошивку на rust'е, это реально работает.
llvm?
> llvm?Что "llvm"? Ты чего-то хотел сказать видимо, но я не понимаю, что именно.
Хотел, но потом внимательно залез в документацию и понял что буду не прав и передумал :)
> Достаточно написать, что у Rust рантайм минимален и упомянуть, что на нём пишут в т.ч. для микроконтроллеров и прочей эмбедятиныПрикинь, для мелких МК даже на бейсике и паскале пишут. Получается, отличные языки с минимальным рантаймом, да?
Прикинь а кое где вообще нельзя никакой рантайм. Даже супермалюсенький.
Это ты к чему?! Уж лучше бы ты не встревал со своими повествованиями не в тему.
В чистых сях такое есть.
1.46, 1.47 вы что по каждому чиху новость выкладываете?
Да мы по каждому чиху новость выкладываем.
Раскрутка продукта, имитация бурной деятельности. А по факту - за 15 лет не смогли FF на раст переписать. 15 лет, Карл! Сами создатели не смогли...
Тупейший аргумент. Что значит "не смогли"? Кто ставил такую цель? Кто? Где? Пруфы? Конкретно ссылки на условный блог Мозиллы, где они анонсируют полное переписывание огромной кодовой базы в ущерб новым фичам?
Только полнейшие олухи будут переписывать огромное количество рабочего кода. Они пишут много _новых_ модулей, вот все куски квантума, вебрендеры, сильно повышающие производительность, и прочее-прочее.
Хватит чушь писать, пожалуйста. Или молчите в тряпочку, если абсолютно не компетентны в вопросе, или пишите нормальные аргументы, а не трололо.
Ещё хуже, с твоих слов - никаких планов у Мозилы нет... Будут ещё 100500 лет что-то пилить и ничего не сделают. Факт: за 15 лет никакого рабочего продукта, кроме трёх строчек где-то в недрах FF.
Каких трех строчек?
НОВЫЕ
МОДУЛИ
БОЛЬШИЕ
Аргумент показывает бесполезность этой поделки
Rust 1.0 вышел пять лет назад. Откуда 15 лет?
Ты походу не в курсе, когда его начали разрабатывать.
Ну давай, расскажи нам когда он вышел ?
В 2005. Посчитать не можешь что ли?
2020 -15=2005
Всё с тобой ясно, рустовики даже считать не умеют, потому что ещё первый класс не закончили.
> В 2005. Посчитать не можешь что ли?
> 2020 -15=2005Сразу 100500 бери!
2020 - 100500 = -98480https://www.opennet.dev/opennews/art.shtml?num=42241
> Увидел свет язык программирования Rust 1.0
> 15.05.2015 20:30.
.
> Всё с тобой ясно, рустовики даже считать не умеют, потому что ещё первый класс не закончили.Очередной "захотел набросить до дрожи в пальцах и припекания чуть пониже спины, но как обычно для опеннета, не знал матчасть ...".
Яснопонятно.
> Ты походу не в курсе, когда его начали разрабатывать.https://prev.rust-lang.org/en-US/faq.html
> Rust started as Graydon Hoare’s part-time side project in 2006 and remained
> so for over 3 years. Mozilla got involved in 2009 once the language was
> mature enough to run basic tests and demonstrate its core concepts.И Грейдон тоже не в курсе, никто не в курсе - как обычно, лишь один аноним опеннета знает, как оно вс на самом деле было!
На, читай https://serokell.io/blog/rust-companies
Крупные компании использующие Rust в Production
А тебе как надо? Ежегодно?
А подскажите пожалуйста, есть что-такое, что нельзя написать на расте, только на С?
Молчание опеннетных коментаторов говорит что нет.