URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 123257
[ Назад ]

Исходное сообщение
"Выпуск языка программирования Rust 1.50"

Отправлено opennews , 12-Фев-21 16:00 
Опубликован релиз языка системного программирования Rust 1.50, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью, обеспечивает автоматическое управление памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки)...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=54575


Содержание

Сообщения в этом обсуждении
"Выпуск языка программирования Rust 1.50"
Отправлено растоним , 12-Фев-21 16:00 
БОЖЕСТВЕННЫЙ ЯЗЫК! УРА!

"Выпуск языка программирования Rust 1.50"
Отправлено uis , 12-Фев-21 16:01 
Кто-то не осилил Аду

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:06 
Не осилил? Поэтому этот язык как раз оттуда, из ада)) Про язык "Ада" в курсе

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:07 
Когда же они уже угомоняться и поймут, что их поделие - жалкая пародия на (конечно же современный, т.е. modern) C++

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:08 
вы все еще на стадии отрицания? тогда мы идем к вам)

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:09 
Ну и что там в расте есть такого, что нельзя на плюсах? Он быстрее плюсов? Он безопаснее? Что, утечек памяти нет? Для этого в плюсах ещё с 2011 года используются умные указатели

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:20 
Самое главное это конечно гаранитии корректности и подход к UB. Еще модель работы с ошибками, и стройная система трейтов, которую так хвалит например Александреску. Но помимо синтаксиса еще есть такие вещи как комьюнити, и инфраструктура вокруг с реестром библиотек с единообразной структурой, тулингом и документацией. Вообще раст это то какими должны быть плюсы если бы им не надо было тянуть лямку обратной совместимости с сями.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:24 
Идея подобного языка действительно выглядит хорошей и нужной, но когда язык развивается не целым сообществом, а мозилой... Да и молод он ещё. Те же си и плюсы многими годами развивались, тестировались, проходили целый практический путь до становления тем, чем они стали. Хотя всё же скажу, что возможность компилить си в плюсах очень удобная, системщикам не особо нужен мудрёные плюсы.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:35 
Так раст же развивается сообществом. Недавно туда вошли еще участники из гугла, майкрософта, авс. Да, язык молод - это факт, но очень быстро развивается.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:49 
> Да, язык молод - это факт, но очень быстро развивается.

15 лет, Карл, 15 лет уже развивается... С 2006-го.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:53 
О, очередной хейтер, выучивший "15 лет", даже не понимающий, что первые 7 лет относятся к одному человеку, который дома в свободное от работы и семьи время занимался проектированием языка в качестве хобби. Затем после начала разработки API языка стабилизировалось только в версии 1.0, соответственно ни написанных проектов, ни даже полноценного инструментария нельзя было ожидать в 2015 году.

Зато 15 лет, ага.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:01 
Линус в одиночку за год (!) продвинулся от концепции оси до работающей X Window System.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:11 
> Линус в одиночку за год

Написал ядро на 20к строк, по мануалу от Таненбаума, и прикрутил к нему гнутые тулзы, и работало это все только на 386, и только потом энтузиастами было портировано на другие платформы

В растовом компиляторе, который является фронтендом к llvm, более 360,000 строк, плюс компиляция концепций, которых никто в одном языке до этого не собирал


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:14 
Раз Вы прекрасно осведомлены в биографии Торвальдса, то знаете, что он один из единиц гениев на Земле, кому прощают любую его токсичность. Посмотрите на любые другие примеры, везде создателя стыдили или даже выгоняли. Даже того же "единого диктатора" сместили, хотя это противоречит наполовину негласному соглашению. Торвальдс же на месте, занимается любимым деломм, чему Вы являетесь свидетелем.

К чему это я? Пример некорректен. Не стоит сравнивать гения с просто хорошим математиком. Или Вы можете привести личный пример?


"Выпуск языка программирования Rust 1.50"
Отправлено Школьник , 12-Фев-21 18:23 
Ему прощают токсичность отнюдь не потому, что он гений. А потому что большим дядям, которым нужна его работа и которые платят ему зарплату, понятно, что никто не сможет делать то, что он делает, с тем же качеством и за те же деньги. Его можно заменить, но во что встанет замена его работодателям? В огромные деньги и в потерю качества того продукта, разработкой которого он заправляет. А если учесть, что продукт разросся до монстроидальных масштабов, и, откровенно говоря, качество его и так прихрамывает (в первую очередь из-за размеров и сложности), то дядям рисковать вовсе не с руки. Посмотрите фильм "Дьявол носит Прада", там эта ситуация хорошо обыграна.

Я тоже на работе в моменты особого стресса неоднократно, десятки раз хамил коллегам и даже начальнику - хамил, правда, в ответ на упорное нежелание делать свою работу первыми и упорное нежелание видеть реальность во всей ее неприглядной красе со стороны второго. Меня даже премии не лишили, не то чтобы уволить. Почему? Потому что я гений или человек масштаба Линуса Торвальдса? Хрена лысого. Просто уволив меня, начальнику придется взять на себя огромный пласт административных проблем, который сейчас разруливается мной (в нагрузку к инженерным задачам) настолько успешно, что о существовании большинства из них начальнику не суждено даже узнать. Съэкономленное начальником время он с радостью тратит на не имеющие никакой ценности для работодателя исследования и удовлетворение своего любопытства, а возможность этим заниматься в рабочее время в условиях капитализма очень многого стоит. Более того, в силу особенностей моей квалификации на замену мне придется взять не одного, а нескольких человек, а это сразу приведет к серьезному увеличению расходов хотя бы на зарплатный фонд. Ну и пока эти несколько (каждый из которых может не потянуть свою область) разберутся, что к чему, работодатель потеряет много жирных заказов.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 18:37 
Я и фильм смотрел и знаю, что по вроождении некоторого времени Линус признавал, что в такой-то ситуации был не прав.

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

"Единоличного диктатора" выгонять тоже не очень-то выгодно, но он всё-таки не Торвальдс, так что если хочестся, то можно.

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

И да, приведённые примеры Вашего хамства (если это правда) не всегда применимы к Торвальдсу, за что он извинялся позже.

Так что да, приведённое сравнение всё ещё - гений и хороший математик.

И Ваша избирательность в знании биографии Торвальдса намекает на фанатичность, но это ИМХО, а тут уже не мне судить.


"Выпуск языка программирования Rust 1.50"
Отправлено Школьник , 12-Фев-21 19:13 
> Я и фильм смотрел и знаю, что по вроождении некоторого времени Линус
> признавал, что в такой-то ситуации был не прав.

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

> Тем не менее он продолжал токсить, даже будучи иногда неправым, а его
> не попёрли. Лишь он сам по собственной догадке позже понял, что
> стоит отойти от дел, остыть. Не его, а он. Скажите теперь
> про выгоду дядям.

А вы это точно знаете, что он сам принял это решение, а не ему намекнули сверху? В духе "пора бы тебе, парень, остыть немного, а то так ты рано или позно негра или фемку/лесбиянку/трансгендера обидишь за то, что код плохой пишет, а он/она/оно ведь не со зла код писать не умеет, а потому что белые цисгендерные мрази угнетали веками, и вместо информатики им прищлось gender studies штудировать". Вам он сам за кружкой пива об этом сказал, что это было его собственное решение? И мамой еще поклялся?

> Если этот пример не устраивает, то с Эйхом история наверное даже более
> наглядная - человек явно не тупой, но его попёрли из-за недоказанного
> обвинения, просто потому что кто-то пожаловался. Без существенных доказательств.

И как там дела идут после того, как его поперли? Впрочем, я и так знаю: очень плохо там идут дела. Потому что вежливость к агрессивно-тупым и дружелюбность к людям, которые свои личные проблемы (а иногда и пороки) пытаются выдать за стигматы, никак не может помочь в формировании хорошо работающего коллектива из самых лучших разработчиков.

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

> И да, приведённые примеры Вашего хамства (если это правда) не всегда применимы
> к Торвальдсу, за что он извинялся позже.

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

> И Ваша избирательность в знании биографии Торвальдса намекает на фанатичность, но это
> ИМХО, а тут уже не мне судить.

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

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


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:31 
Ладно, подмена понятий, так подмена понятий. Будем использовать Ваши термины.

Назовите хотя бы 10 человек из Mozilla, таких же неординарных, как и Торвальдс. Или хотя бы на 60% таких же неординарных. Талантливых, если хотите.

Или 50 вообще со всей индустрии разработки ПО.

Хоть он иногда и прав, но это не даёт ему права так часто грубить, а извиняться раз в несколько лет. Конечно, если он не гений.

И к чему Вы про Mozilla и про Эйха? Вы же тем самым лишний раз подтвердили неправоту вашей стороны спора. То есть того, что Вы взялись защищать - Торвальдс и Хор (да, получается, даже Эйх, основываясь, опять же на Вашем же ответе) - разного масштаба личности.

Не понимаю, почему Вы отходите от темы - сравнили Торвальдса и Хора, сравнение некорректно. Да и человек рядом написал, что на самом деле у Торвальдса-то чужие наработки в немалом для того масштаба количестве были. Так что тезис о сравнимости тем более некорректен.

И да, когда там многоядерные процессоры пошли в массы? Году как раз в 2005/2006? Значит у Хора не было так много чужих наработок и исследований (если вообще были), чтобы он мог продвинуться так же быстро, как и Торвальдс.


"Выпуск языка программирования Rust 1.50"
Отправлено Школьник , 12-Фев-21 22:29 
> Ладно, подмена понятий, так подмена понятий. Будем использовать Ваши термины.

Где подмена?

Я вообще говоря несколько потерял уже нить дискуссии. Мы с вами спорим о чем - о том, гений ли Торвальдс? Ну это во многом религиозный и поэтому несколько бессмысленный спор.


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 19:34 
> Ему прощают токсичность отнюдь не потому, что он гений. А потому что
> большим дядям, которым нужна его работа и которые платят ему зарплату,
> понятно, что никто не сможет делать то, что он делает, с
> тем же качеством и за те же деньги. Его можно заменить,
> но во что встанет замена его работодателям? В огромные деньги и
> в потерю качества того продукта, разработкой которого он заправляет.

Если бы это было так, linux был бы не нужен корпорастам. Корпорастов совершенно не улыбает перспектива огромных проблем, в случае если какого-то человека переедет автобус. Вообще вся суть корпорации в том, что она не зависит ни от одного конкретного человека, и существует как бы своей жизнью. (эту мысль очень красиво изложил Харари в своей истории человечества, очч рекомендую.) И, соответственно, linux корпорациям нужен как процесс, который живёт самостоятельной жизнью. Замена Торвальдса -- это не так уж и сложно. Вот _принудительная_ замена силой извне -- это рискованный шаг, который может кончится расколом, и вообще хрен знает чем.

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

Linux, мне кажется, не такой. Там есть кому взять на себя работу Торвальдса, и когда Торвальдс кончится, проект продолжит движение, не запнувшись ни на мгновение. То есть даже вариант, когда на место Торвальдса придёт кто-то ментально не готовый к роли руководителя такого проекта -- это крайне маловероятный вариант, потому как там много людей, есть потенциальные кандидаты на роль Торвальдса, и эти кандидаты постоянно отсвечивают, их видят многие. Эти кандидаты занимаются примерно тем же, чем занимается Торвальдс, только на уровне пониже. Причём, я б даже не сказал что в меньшем масштабе занимаются. Они занимаются тем же: вычитывают патчи, пишут рецензии, отвергают или принимают эти патчи. Выступают с речами на конференциях. Более того, замена Торвальдса тестировалась неоднократно, когда он делал шаг в сторону, чтобы запилить git, например.

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


"Выпуск языка программирования Rust 1.50"
Отправлено Школьник , 12-Фев-21 22:45 
> Если бы это было так, linux был бы не нужен корпорастам. Корпорастов
> совершенно не улыбает перспектива огромных проблем, в случае если какого-то человека
> переедет автобус. Вообще вся суть корпорации в том, что она не
> зависит ни от одного конкретного человека, и существует как бы своей
> жизнью. (эту мысль очень красиво изложил Харари в своей истории человечества,
> очч рекомендую.) И, соответственно, linux корпорациям нужен как процесс, который живёт
> самостоятельной жизнью.

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

Хотелось бы, конечно, им еще и подстраховаться, да только соломку в правильном месте стелить - это сама по себе задача не легче, чем Линукс разрабатывать.

> Замена Торвальдса -- это не так уж и сложно.
> Вот _принудительная_ замена силой извне -- это рискованный шаг, который может
> кончится расколом, и вообще хрен знает чем.

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

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

Если говорить о том, что очень многое сделано для планомерного развития проекта - то да, соглашусь, сделано многое, и кандидаты на место Торвальдса найдутся.

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

Остается только надеяться на лучшее - что Торвальдс поживет еще долго, не скурвится и не прогнется ни под кого, и вовремя передаст кнуты и пряники подходящему человеку.


"Выпуск языка программирования Rust 1.50"
Отправлено Michael Shigorin , 12-Фев-21 17:05 
Вы когда-нибудь что-нибудь сколь-нибудь заметное проектировали?  Такое ощущение, что нет -- и потому неспособны осознать, что такие "первые 7 лет" -- наиболее спокойное время, потому что никто не капает на мозги и можно спокойно поразмыслить о том, что это будет.

Например, я десять лет назад начал продумывать и делать mkimage-profiles в режиме хобби, через несколько лет проект получил регулярное практическое применение, теперь им собираются все дистрибутивы альта под все платформы, а в прошлом году передал подчинённому, который по факту уже больше делал для развития, чем я.  И в одном из докладов на эту тему был слайд со стадиями "фидбэк: дождаться, затем пережить": http://0x1.tv/mkimage-profile-shigorin ;-)


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:11 
Я действительно не проектировал что-нибудь сколь-нибудь заметное. Но я следил за Rust первые несколько лет вплоть до релиза в 2015 году. И никакой тулинг для готовой экосистемы, приведённый Вами в качестве примера не идёт в сравнение с проектированием языка, где человек собирает полученую мудрость других языков и оборачивает это в современный инструмент, подходящий для СОВРЕМЕННОГО железа, что ИМХО редкость. За последние 20 лет другого такого же примера не знаю. А го всё-таки с другой целью разрабатывался и имеет другое применение, так что и он тут не подходит. Тем более учитывая его ресурсы по сравнению с Rust.

Но к чему вообще Ваш вопрос и комментарий в целом? ЯЧтобы Вас пожалели? Или поддержать токсичность хейтеров, потому что на Вас заказчики давили как (как Вам кажется) сейчас давят хейтеры? Так для публичного лица это явно непрофессионально (если вы не Торвальдс, гы-гы)- токсить и поддерживать давление на молодое несформировавшееся сообщество.

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

И да, я согласен, что как минимум с 2014 года Mozilla делает много нехорошего. Но это не должно клеймить такую хорошую идею, которая заложена в Rust.


"Выпуск языка программирования Rust 1.50"
Отправлено Gemorroj , 12-Фев-21 17:01 
> раст это то какими должны быть плюсы

Dlang - это то какими должны быть плюсы. Исправил. Не благодари.


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 16:35 
> Ну и что там в расте есть такого, что нельзя на плюсах?

О, ты знаток плюсов, да? Я тут столкнулся с ними, и всё никак не пойму, как заставить деструктор отрабатывать правильно. Вот глянь, есть код:

class Test {
public:
    Test(std::string name) {
        std::cout << "Constructor called with name: " << name << std::endl;
        this->name = name;
    }
    ~Test() {
        std::cout << "Destructor called for " << this->name << std::endl;
    }
private:
    std::string name;
};
    
int main() {
    Test a = Test(std::string("first"));
    a = Test(std::string("second"));
    return 0;
}

Он при запуске выводит:

Constructor called with name: first
Constructor called with name: second
Destructor called for second
Destructor called for second

Два объекта типа Test создаётся, два объекта удаляется. Дважды вызывается конструктор и дважды деструктор. Но, если присмотреться, то деструктор вызывается не на объект, а на кусок памяти, который этот объект, так случилось, занимал в момент создания объекта. Содержимое куска изменилось при присваивании, и но C++ не заметил этого, и вместо того, чтобы вызвать деструктор, перед присвоением, отложил вызов до выхода из функции, а там уже поздно пить боржоми.

Как сделать так, чтобы деструктор вызывался бы для объекта, а не для куска памяти? Чтобы программа выводила бы такое:

Constructor called with name: first
Constructor called with name: second
Destructor called for first
Destructor called for second

?


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:40 
Чувак, а ты давно собеседование по C++ проходил?
Хоть понимаешь что и почему в твоём коде происходит?)

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:50 
Нормальный вопрос. Ты давно продакшн код писал? Он требует мыслительного процесса не о том, как не выстрелить в ногу ЯП, а о бизнес процессах. Заказчики платят деньги именно за бизнес-логику, а не инфраструктурный код или бойлерплейт. В конкретном приведённом примере прекрасно показана явно лишняя и совершенно ненужная когнитивная нагрузка на и так занятые мозговые ресурсы разработчика.

"Выпуск языка программирования Rust 1.50"
Отправлено Школьник , 12-Фев-21 16:57 
Конкретно в этом примере дело не столько в C++, сколько в том, что вопрошающий в принципе не знает его основ. Плюсы много за что можно критиковать, но в этом коде критиковать особо не за что.

"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 17:10 
> Конкретно в этом примере дело не столько в C++, сколько в том,
> что вопрошающий в принципе не знает его основ. Плюсы много за
> что можно критиковать, но в этом коде критиковать особо не за
> что.

Где ты там увидел критику, родный? У вас мнительность отклеилась.

Там задан ВОПРОС. Как сделать чтобы оно работало так, как мне надо.


"Выпуск языка программирования Rust 1.50"
Отправлено Школьник , 12-Фев-21 17:20 
>Где ты там увидел критику, родный? У вас мнительность отклеилась.

Наверное, вот здесь:

>>Содержимое куска изменилось при присваивании, и но C++ не заметил этого
>>поздно пить боржоми


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 17:55 
>>Где ты там увидел критику, родный? У вас мнительность отклеилась.
> Наверное, вот здесь:
>>>Содержимое куска изменилось при присваивании, и но C++ не заметил этого
>>>поздно пить боржоми

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


"Выпуск языка программирования Rust 1.50"
Отправлено заминированный тапок , 12-Фев-21 18:01 
>Там задан ВОПРОС. Как сделать чтобы оно работало так, как мне надо.

Вот тебе ответ:

// Example program
#include <iostream>
#include <string>
#include <memory>

using namespace std;

class Test {
public:
    Test(std::string name) {
        std::cout << "Constructor called with name: " << name << std::endl;
        this->name = name;
    }
    ~Test() {
        std::cout << "Destructor called for " << this->name << std::endl;
    }
private:
    std::string name;
};

int main() {
    shared_ptr<Test> a(new Test("first"));
    a = shared_ptr<Test>(new Test("second"));
    return 0;
}

/*
    Constructor called with name: first
    Constructor called with name: second
    Destructor called for first
    Destructor called for second
    Press <RETURN> to close this window...
*/


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 18:14 
Да, я думал об этом варианте, но он мне не нравится, потому что приходится тормозную кучу дёргать. У тебя код аж дважды её дёргает (даже четыре раза: free иногда оказывается тормознее, чем alloc).

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:23 
Странный ты какой-то... Заставляешь компилятор делать какую-то чушь из твоей головы. Растаманы - они все такие? Тогда осталось только помолиться, чтобы растокод не оказался в критичных системах.

"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 19:42 
> Странный ты какой-то... Заставляешь компилятор делать какую-то чушь из твоей головы. Растаманы
> - они все такие? Тогда осталось только помолиться, чтобы растокод не
> оказался в критичных системах.

Что ты называешь чушью? Избегание тех new, которых можно избежать? Если ты это считаешь чушью, если тебе производительность не важна, то нахрена тебе C++, пиши уж сразу на Java. Или ты о вызове деструктора, при затирании значения? Порыскай по сиблингам, и узри, что это используется налево и направо в стандартной библиотеке, все эти умные указатели, типа vector, string, uniq_ptr, shared_ptr делают именно это.


"Выпуск языка программирования Rust 1.50"
Отправлено заминированный тапок , 15-Фев-21 12:22 
ну я даже не знаю.

ну вот тебе вариант для двух объектов на стеке:

    Test a("first");
    auto sp = shared_ptr<Test>(&a,[](Test*){});
    Test b("second");
    sp = shared_ptr<Test>(&b,[](Test*){});


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:59 
> В конкретном приведённом примере прекрасно показана ...

...безграмотность автора в базовых основах языка С++.


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 17:06 
> Чувак, а ты давно собеседование по C++ проходил?

Чувак, я ни разу не проходил, и не собираюсь.

> Хоть понимаешь что и почему в твоём коде происходит?)

Чувак, я задал конкретный вопрос. Если у тебя нет ответа, проходи мимо.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:34 
Если не собираешься - то не пиши на C++. И на Rust тоже не пиши. И там, и там думать надо.

А если захочешь подумать (или, для начала, почитать), то посмотри что такое в C++ implicit copy constructor (он же неявный конструктор копирования).

Вот, чтобы даже искать на надо было:
https://en.cppreference.com/w/cpp/language/copy_constructor
>Implicitly-declared copy constructor


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 17:41 
> Вот, чтобы даже искать на надо было:
> https://en.cppreference.com/w/cpp/language/copy_constructor
>>Implicitly-declared copy constructor

И? Где там написано, как заставить деструктор отработать вовремя? Что ты меня отправляешь доки читать? Если бы я мог найти там ответ, я бы уже его нашёл, и не задавал бы вопроса.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:46 
> как заставить деструктор отработать вовремя?

Все деструкторы из твоего примера отработали вовремя, ровно как ты написал.


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 17:49 
>> как заставить деструктор отработать вовремя?
> Все деструкторы из твоего примера отработали вовремя, ровно как ты написал.

АЛЁ ГАРАЖ! Слышно меня? Как слышите? Приём.

Как сделать так, чтобы деструктор отработал для первого значения a, если это значение перезаписывается другим? Там, в реальной ситуации, могут лежать ресурсы, которые надо освободить. Кстати, я не вникал, в этой ситуации память из под std::string освобождается?


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 18:10 
Хорошо, вот ещё подсказка
https://en.cppreference.com/w/cpp/language/copy_elision

Вот так вот, в твоём примере - аж 2 шт неявности от языка C++

PS. И всю эту (и ещё 100500 других) нявную хрень плюсовику надо держать в голове… а вы ещё спрашиваете почему люди любят писать на Rust (те кто могут).

PPS. если ты всё же не понял, почему у тебя 2 раза "second" - то потому что создался второй объект и через copy elision перезатёр первый, без деструктора, ага… сайд эффект
>the compilers are required to omit the copy and move construction of class objects, even if the copy/move constructor and the destructor have observable side-effects


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 18:25 
> Хорошо, вот ещё подсказка
> https://en.cppreference.com/w/cpp/language/copy_elision

И что? Там опять же не написано, как эту copy_elision запретить для типа.

> PPS. если ты всё же не понял, почему у тебя 2 раза
> "second" - то потому что создался второй объект и через copy
> elision перезатёр первый, без деструктора, ага…

Я не понимаю, почему тебе кажется, что я не понял. Все эти разговоры о copy_elision и прочитанные доки, не добавили мне понимания того, как работает этот код. Я как понимал, что деструктор вызывается дважды, как и положено, но не тогда когда мне хочется, так и понимаю это таким же образом. То есть да, про copy_elision я услышал только в этом топике, но, по-сути, я просто узнал новое слово, для обозначении идеи, которую я сформировал тогда, когда посмотрел на то, как этот код работает. Что нового я узнал, так это рационализацию для такого поведения компилятора.

Нуок, я понял, типа оптимизация, типа так быстрее. Но как мне сделать так, чтобы оно деструктор вызывался бы вовремя? Может всё ж ответ "никак"? То есть ради ответа в одно слово, экспертам потребовалось написать несколько десятков комментариев? Или всё же есть какой-нибудь способ?


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:57 
> Два объекта типа Test создаётся...

Мальчик, а ты точно знаешь Си++?


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:00 
Девочка, а ты точно читала вопрос? Или хотя бы пробовала понять почему такие вопросы задаются? Люди работают, на работе нужно писать код. А какой код нужен, я чуточку выше уже достаточно ясно обозначил.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:04 
> почему такие вопросы задаются?

Потому что автор вопроса - ничего не знающий школьник. А надо просто взять и прочитать документацию и понять, что сморозил чушь, задавая вопрос.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:26 
Прямо сейчас лично Вы и Школьник доказали то, что растохейтеры утверждают про наше сообщество - токсичность, т.е. вместо короткого ответа (а Вы ведь знаток, да и пример тривиальный), Вы сначала обвиняете человека, написавшего код на обожаемом Вами языке, в том, что он " не знающий школьник" и "безграмотный". А уже потом приходят адекватные плюсовики и отвечают на заданный ВОПРОС.

"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 17:07 
>> Два объекта типа Test создаётся...
> Мальчик, а ты точно знаешь Си++?

Блеать. Точно НЕ знаю. Знал бы, не задавал бы вопроса. Вы что совсем отупели тут, поливая помоями раст?


"Выпуск языка программирования Rust 1.50"
Отправлено null , 12-Фев-21 17:29 
мож, надо посмотреть на конструктор копирования? сам я С++ не знаю, так что претензии не принимаются

"Выпуск языка программирования Rust 1.50"
Отправлено San , 12-Фев-21 17:11 
int main() {
Test a = Test(std::string("first"));
Test b = Test(std::string("second"));
return 0;
}

Constructor called with name: first
Constructor called with name: second
Destructor called for second
Destructor called for first

Твой пример работает ровно так, как ты написал программу.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:17 
Растаманам это не понять, что программа делает ровно то, что выдумал погромист.

"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 17:20 
> int main() {
> Test a = Test(std::string("first"));
> Test b = Test(std::string("second"));
> return 0;
> }
> Constructor called with name: first
> Constructor called with name: second
> Destructor called for second
> Destructor called for first
> Твой пример работает ровно так, как ты написал программу.

Я знаю что он работает так, как я написал. Мне надо, чтобы он работал иначе, в том то собственно и вопрос, как написать иначе. Твой вариант сработает, но он не решает проблемы. Пример просто упрощён до предела. Представь что a -- это член класса. Мне надоело его значение, и я хочу заменить его на другое. Но при этом a содержит всяких ресурсов, которые надо почистить обязательно -- возможно это указатели, может файловые дескрипторы, или всё что угодно ещё.


"Выпуск языка программирования Rust 1.50"
Отправлено San , 12-Фев-21 17:32 
Ниже описали, почему два раза освобождается second. А GC в С++ нет. Удаление объекта first на совести программиста (перед тем как присвоить "a" новое значение).

"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 17:38 
> Ниже описали, почему два раза освобождается second. А GC в С++ нет.
> Удаление объекта first на совести программиста (перед тем как присвоить "a"
> новое значение).

Мне не надо _удалять_ объекты. Они на стеке лежат, их память будет автоматически освобождена, когда стековый фрем main будет снят со стека. Мне надо вызвать деструктор. Что за C++ знатоки пошли, которые не знают разницы между вызовом деструктора и delete? Ещё учить меня лезут.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:47 
>> Мне надо вызвать деструктор.

Держи:
a.~Test();


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:50 
> Мне надо вызвать деструктор

Он у тебя и вызывается. Ровно столько и там, как ты написал. Все претензии - к себе задавай. В исполнении твоей программы нет никаких ошибок.


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 17:57 
>> Мне надо вызвать деструктор
> Он у тебя и вызывается. Ровно столько и там, как ты написал.
> Все претензии - к себе задавай. В исполнении твоей программы нет
> никаких ошибок.

Мне вот интересно, сколько раз это можно повторять?

И возникает второй вопрос: что никто из знатоков C++ не знает ответа на простой вопрос? Или может быть ответ на исходный вопрос "нельзя так сделать", но признаваться в этом почему-то не хочется?


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:24 
> нельзя так сделать

Да, С++ просто так не позволяет писать чушь.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:34 
Эм, чушь как раз он позволяет писать, количество его undefined для стажёров и джунов сравнимо с языками со слабой типизацией.

Видимо, Вы всё-таки просто хейтр, не читающий ответы оппонента.


"Выпуск языка программирования Rust 1.50"
Отправлено yet another anonymous , 12-Фев-21 19:08 
> ... Представь что a -- это член класса. Мне надоело его значение, и я хочу заменить
> его на другое. Но при этом a содержит всяких ресурсов, которые надо почистить
> обязательно -- возможно это указатели, может файловые дескрипторы, или всё что угодно ещё.

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

Неявные ctors/assignments вполне логичны.

Возможно, происхождение столь затейливого недопонимания в том, что подросло поколение, которое считает что Test --- "это я написал", а string --- это часть языка. D или клоунада Александреску этому способствует.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:11 
Я конечно могу ошибаться, на плюсах только учился, а не программировал, но при конструкции "Test a = Test(std::string("first"));" происходит copy объекта, а не move, как в расте, потому и освобождает 2 раза. Если явно указать перемещение объекта, то возможно и 1 раз освободит (у меня нет желания проверять, я просто воздух тут сотрясаю).

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:21 
Вы что, совсем не знаете, как конструкторы в С++ работают?!

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:27 
Лично я плюсы не осилил. Не вижу в этом ничего плохого.
Выше никто не написал ответа, я предположил (причём обозначил, что не знаток С++), какие могут быть вопросы? Может быть лично Вы дадите развёрнутый ответ?

"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 17:34 
> Я конечно могу ошибаться, на плюсах только учился, а не программировал, но
> при конструкции "Test a = Test(std::string("first"));" происходит copy объекта, а не
> move, как в расте, потому и освобождает 2 раза. Если явно
> указать перемещение объекта, то возможно и 1 раз освободит (у меня
> нет желания проверять, я просто воздух тут сотрясаю).

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


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:52 
Тебе Школьник подробно разжевал, но ты так и не можешь допереть, что чушь сморозил...

"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 17:59 
> Тебе Школьник подробно разжевал, но ты так и не можешь допереть, что
> чушь сморозил...

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

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


"Выпуск языка программирования Rust 1.50"
Отправлено пердёжник , 12-Фев-21 20:15 
Вы там на c++ всегда так программы из 4 строчек пишите?

Я не c++ разработчик (уже лет 7 наверное на дотнете пишу), и у нас никогда не бывает таких споров


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 20:49 
> Вы там на c++ всегда так программы из 4 строчек пишите?

Я закинул сюда пример кода, который был упрощён до крайней степени, чтобы продемонстрировать то, о чём я говорю. Если у меня код на 10k строк, я же не буду постить сюда 10k строк, чтобы продемонстрировать свою проблему, да? "В строчке 6730 есть объявление класса Test, а в строчке 8113 не вызывается деструктор" хороший такой вопрос, люди бы с удовольствием выискивали в 10k строках те, которые релевантны вопросу, обдумывали бы прочитанное и отвечали.

> Я не c++ разработчик (уже лет 7 наверное на дотнете пишу), и
> у нас никогда не бывает таких споров

Я честно говоря сам удивлён реакции. Не знаю насколько это свойственно C++. Или может это свойственно русскоязычным обсуждениям. А может это чисто опеннетовская штука. Сложно сказать: про rust я спрашиваю на реддите на английском, там такого не случалось со мной ни разу.


"Выпуск языка программирования Rust 1.50"
Отправлено Alkog , 13-Фев-21 00:51 
> Я честно говоря сам удивлён реакции. Не знаю насколько это свойственно C++.
> Или может это свойственно русскоязычным обсуждениям. А может это чисто опеннетовская
> штука. Сложно сказать: про rust я спрашиваю на реддите на английском,
> там такого не случалось со мной ни разу.

Для начала Ordu следовало бы извиниться за труднообучаемость его в том чтобы должным образом к Нам обращаться. Затем, если и когда оно будет обучено этому, возможно он сможет задать вопрос о деструкторах...


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 01:43 
Смею заметить, что именно Вы не написали ни одного конструктивного комментария, упрекнув при этом в труднообучаемости задавшго вопрос и показавшего, что ответные комментарии не содержат по существу ответа, ведь задавший вопрос это знал. При это он признает, что не разбирается в C++.

"Знатоки" же (навроде Вас) лишь не в ту сторону уводят разговор, не отвечая на прямые вопросы. Лишь Аноним (35) вносил конструктив. ЕДИНСТВЕННЫЙ, кто внёс хоть какой-то конструктив со стороны плюсовиков. Остальные либо отвечали на незаданные вопросы, игнорируя заданные (в лучшем случае). Либо вовсе разводили холивар, показав сторонников C++ не с лучшей стороны.


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 18:11 
> Я конечно могу ошибаться, на плюсах только учился, а не программировал, но
> при конструкции "Test a = Test(std::string("first"));" происходит copy объекта, а не
> move, как в расте, потому и освобождает 2 раза. Если явно
> указать перемещение объекта, то возможно и 1 раз освободит (у меня
> нет желания проверять, я просто воздух тут сотрясаю).

А, кстати, реально. Я не задумывался раньше, но в расте оказывается нельзя комбинировать Copy+Drop. Там какие-то технические причины[1], но в принципе даже без них такая комбинация выглядит подозрительно, если подумать. То есть, осталось придумать, как отломать копирующий конструктор, не поломав возможность делать move... В C++0x17 есть move конструктор, я что-то читал про это... Надо будет попробовать, может сработает.

[1] https://github.com/rust-lang/rust/issues/20126


"Выпуск языка программирования Rust 1.50"
Отправлено Школьник , 12-Фев-21 17:19 
Там всё правильно, никто там ничего не "забывал", естественно.

Сначала вызывается конструктор объекта Test(std::string("first")), затем из-за применения компилятором техники оптимизации копирования (copy elision) содержимое этого объекта становится объектом a. Без этой техники было бы так: вызывался бы конструктор временного объекта Test(std::string("first")), далее бы вызывался конструктор копирования по умолчанию объекта a, далее бы вызывался деструктор временного объекта Test(std::string("first")).

Что происходит во второй строке? Там вызывается конструктор объекта Test(std::string("second")), и неперегруженный метод присваивания (operator=) заново инициализирует поля объекта a соответствующими полями временного объекта Test(std::string("second")). После этого временный объект Test(std::string("second")) прекращает свое существование, и вызывается его деструктор.

Затем выполнение подходит к концу функции, начинается освобождение всех объектов - локальных переменных, и вызывается уже деструктор объекта a, который содержит в себе строку second, перезаписанную ранее методом присваивания.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:24 
Это слишком сложно для растаманов :) Они сами придумывают байки у себя в голове вместе с тараканами.

"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 17:26 
> Там всё правильно, никто там ничего не "забывал", естественно.

Ну, правильно, и что дальше? Я ведь не задал вопрос "не баг ли это в g++"? Нет, я задал вопрос, как сделать так, чтобы деструктор вызывался бы так, чтобы зачистить существующее значение a, прежде чем затирать его.

> Что происходит во второй строке? ... бла-бла-бла... operator= ...

Ну, и? Перегружать operator=? Как из оператора = вызвать деструктор для self^W this?

> из-за применения компилятором техники оптимизации копирования

Эмм... ну отключать оптимизацию это не вариант. Да и будет странно если при -O0 код будет работать иначе.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:48 
Ты не на тот деструктор тыкаешь.
Запрети все неиспользуемые тобой конструкторы, деструкторы и операторы копирования, а потом принтфами отлаживайся.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:55 
> вызвать деструктор

Ты что, сейчас будешь по всем спекам С++ тупые вопросы спрашивать? Может, тебе ещё рассказать, как бинарные числа проц складывает?


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 18:01 
>> вызвать деструктор
> Ты что, сейчас будешь по всем спекам С++ тупые вопросы спрашивать?

Возможно. Мне понравилась реакция мнимых знатоков C++, которые не могут ответить на прямо поставленный вопрос. Хочется повторения.

> Может, тебе ещё рассказать, как бинарные числа проц складывает?

Расскажи.


"Выпуск языка программирования Rust 1.50"
Отправлено Маняним , 12-Фев-21 18:17 
> Ну, и? Перегружать operator=? Как из оператора = вызвать деструктор для self^W this?

В С++ не надо вызывать деструкторы руками, RAII для этого и придуман. Компилятор сгенерит код, который вызовет деструкторы где и когда нужно в нужном порядке. Если у тебя есть выделение памяти в хипе для дейта-мемберов используй смарт-поинтеры с их конструкторами, деструкторами и присваиваниями, которые тоже будут вызваны автоматически. Твой std::string это и есть пример - его деструктор будет вызван во время вызова деструктора объекта а, но до исполнения кода самого деструктора объекта a. Если ты используешь нетривиальное присваивание, то переопределяй оператор присваивания и руками управляй выделениями и освобождениями памяти для мемберов объекта. Обычно пишут обёртки над такими специфическими объектами с имплементацией конструирования, присваивания и удаления. А потом везде используют без всякого гемора. Такое нужно раз в сто лет. С++ смарт-поинтеры это примеры "владеющих" обёрток над голыми указателями и хандлерами ОС. Такой автоматикой С++ и отличается от всяких говноязыков со всякими defer'ами, ManuallyDrop'ами и прочими закатами солнца вручную. Именно RAII позволяет описать один раз работу с сущностью и везде пользоваться ей единообразно.


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 18:55 
>> Ну, и? Перегружать operator=? Как из оператора = вызвать деструктор для self^W this?
> В С++ не надо вызывать деструкторы руками, RAII для этого и придуман.
> Компилятор сгенерит код, который вызовет деструкторы где и когда нужно в
> нужном порядке. Если у тебя есть выделение памяти в хипе для
> дейта-мемберов используй смарт-поинтеры с их конструкторами, деструкторами и присваиваниями,
> которые тоже будут вызваны автоматически. Твой std::string это и есть пример
> - его деструктор будет вызван во время вызова деструктора объекта а,
> но до исполнения кода самого деструктора объекта a.

Тут ты меня потерял. "Во время вызова деструктора" но "до исполнения деструктора"? В смысле имеется в виду, что деструктор -- это что-то большее, чем мой код деструктора. Это что-то большее может быть побито на куски и эти куски могут быть перетасованы с кодом, где я жонглирую объектами? Или имеется в виду, что есть идеологически правильное место для вызова деструктора, которое в силу copy_elision не используется, ... и хрен его знает.

Или ладно, иначе задам вопрос. То есть в этом примере деструктор для string вызывается, вся память из под обоих string'ов корректно освобождается, и всё ок? То есть, допустим, если у меня в этом Test'е будет лежать грядка uniq_ptr указателей, то их деструкторы будут вызваны, до того, как они будут перезаписаны присваиванием, и вся память будет корректно освобождена, так?

А! Ну тут фишка в том, что по дефолту копирование полей Test выполняется тем же operator=, но в тех реализациях которые на типы полей навешаны. А поскольку на стринг повешена реализация, которая умеет эту ситуацию корректно разруливать, то всё проходит без эксцессов. Ну да, если так, то понятно.

> Если ты используешь
> нетривиальное присваивание, то переопределяй оператор присваивания и руками управляй
> выделениями и освобождениями памяти для мемберов объекта.

Ок.

> Такое нужно раз в сто лет.

Постоянно же. Ты создал File объект, он содержит файловый дескриптор. Ты открыл другой файл, положил новый File в ту же переменную и вот тебе уже это нужно. Или, скажем, я столкнулся с тем, что у меня есть объект, лежащий членом-переменной в другом объекте. Я всегда хочу всегда иметь его инициализированным, но иногда менять на другой инициализированный объект. И эмм... это не очень работает, потому что деинициализация не триггерится вовремя. А когда триггерится, уже поздно пить боржоми. Даже хуже, мне кажется таким образом можно сначала дать утечь памяти, а потом на другой кусок сделать free дважды.

Это очень удобная штука, на самом деле. Я не очень понимаю, как вообще RAII может работать без неё. Подозреваю, что просто надо вспомнить детство, ассемблер, и начать снова думать не о значениях и переменных, а о кусках памяти, которые эти значения занимают, и указателях на эти куски памяти.

> С++ смарт-поинтеры это примеры "владеющих" обёрток над голыми указателями
> и хандлерами ОС.

Да, во. Хороший пример. Я и говорю, что это постоянно нужно. Но смартпоинтеры ж обёртки над указателями, а мне бы то же самое, но над неуказателем. А, ну такую штуку можно написать, наверное, единожды в виде параметризованного типа, и потом заворачивать объекты в этот тип. Можно, наверное, даже взять код uniq_ptr, выкинуть оттуда delete и *, если они там есть, и переименовать в uniq_value.


"Выпуск языка программирования Rust 1.50"
Отправлено Школьник , 12-Фев-21 18:48 
>> Там всё правильно, никто там ничего не "забывал", естественно.
> Ну, правильно, и что дальше? Я ведь не задал вопрос "не баг
> ли это в g++"? Нет, я задал вопрос, как сделать так,
> чтобы деструктор вызывался бы так, чтобы зачистить существующее значение a, прежде
> чем затирать его.

Поля класса, которые сами умеют себя чистить (типа std::string), обычно имеют перегруженный operator=, который при присваивании не позволит, например, утечь внутреннему буферу, где лежат символы, составляющие строку.

Если же у тебя в полях класса обычные указатели (char*), то будь уж добр перегрузить operator= в этом классе, чтобы operator= объемлющего класса правильно отрабатывал.

> Ну, и? Перегружать operator=? Как из оператора = вызвать деструктор для self^W
> this?

Именно - перегружать operator= . Можно сделать какой-нибудь защищенный (protected) метод Finalize, где будут аккуратно чиститься все те поля класса, которые требуют ручной очистки, и дергать его и в перегруженном operator=, и в деструкторе.

Все те комментарии, что тебе написали тут - они не столько со зла, сколько реакция на недоумение  прибывшего в монастырь гостя его уставом. Не всякий корректно ответит на такое. Представь себе, что ты приходишь к жабистам и говоришь: "Посаны, у чего это у вас тут деструкторов нет? А чего finalize перегруженный ни разу не вызвался? Нет, вы ответьте, вы ответьте, как мне добиться того, чтобы finalize дернулся при выходе из области видимости?!"


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 19:06 
>> Ну, и? Перегружать operator=? Как из оператора = вызвать деструктор для self^W
>> this?
> Именно - перегружать operator= . Можно сделать какой-нибудь защищенный (protected) метод
> Finalize, где будут аккуратно чиститься все те поля класса, которые требуют
> ручной очистки, и дергать его и в перегруженном operator=, и в
> деструкторе.

Угу. Понял.

> Все те комментарии, что тебе написали тут - они не столько со
> зла, сколько реакция на недоумение  прибывшего в монастырь гостя его
> уставом. Не всякий корректно ответит на такое. Представь себе, что ты
> приходишь к жабистам и говоришь: "Посаны, у чего это у вас
> тут деструкторов нет? А чего finalize перегруженный ни разу не вызвался?
> Нет, вы ответьте, вы ответьте, как мне добиться того, чтобы finalize
> дернулся при выходе из области видимости?!"

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

В Jave, насколько я её помню, есть простой ответ на поставленный вопрос:

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

Ну, то есть, может я не правильно помню жабу, лет двадцать в неё не заглядывал, но это _три_ предложения ответа. На мой вопрос, по-хорошему, примерно столько же. Надо одно предложение на упоминание copy_elision, на случай, если я не понимаю что происходит в моём примере. Одно предложение на то, как надо заходить к решению -- перегружать =. То есть даже в два можно уложиться.

ps. А на форумах C++ сплошные тролли небось? Если на простые вопросы такая реакция, там небось кормиться можно так, что потом не встать будет.


"Выпуск языка программирования Rust 1.50"
Отправлено Школьник , 12-Фев-21 19:25 
> Мне это непонятно. Что-то бумкнуло и C++ фаны рванулись обсуждать личности, будто
> они по жизни не программисты, а психологи.

Это рунет, тут такое сплошь и рядом.

> finalize вызовется тогда, когда сборщик мусора будет подбирать память за объектом --
> это может произойти через секунду, или через двое суток, зависит от
> разных факторов, на которые не следует полагаться. Сделать так, чтобы он
> вызвался при выходе из области видимости объекта невозможно. Если очень надо,
> вызывай finalize вручную там, где надо.

Не, мой вопрос был в том, как сделать полный аналог деструкторов C++, но в жабе. Ответ тут один - никак. Требовать такое в жабе - значит, не понимать, куда пришёл.

Скорее всего, тебя именно за такого и приняли здесь все (включая, увы, и меня).

> Надо одно предложение на упоминание copy_elision, на
> случай, если я не понимаю что происходит в моём примере. Одно
> предложение на то, как надо заходить к решению -- перегружать =.
> То есть даже в два можно уложиться.

Да, всё именно так, можно было просто упомянуть copy elision и перегрузку operator=.

> ps. А на форумах C++ сплошные тролли небось? Если на простые вопросы
> такая реакция, там небось кормиться можно так, что потом не встать
> будет.

В рунете даже на анонимных имиджбордах можно кормиться, не напрягаясь.


"Выпуск языка программирования Rust 1.50"
Отправлено Кир , 12-Фев-21 17:23 
Ссылочная модель головного мозга детектед.

int a = 10;
a = 20;

Чему равна переменная a после присваивания?


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 17:27 
> Ссылочная модель головного мозга детектед.
> int a = 10;
> a = 20;
> Чему равна переменная a после присваивания?

3.14?

Скажите, это вы все тролли поголовно, или это у C++ программистов коллективное психическое отклонение, не позволяющее им отвечать на чётко и ясно поставленные вопросы?


"Выпуск языка программирования Rust 1.50"
Отправлено Кир , 12-Фев-21 17:31 
Чётче вроде некуда, если не понимаешь, учи матчасть, я тут бессилен.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:40 
Кир, ответ, на заданный Вами вопрос 20.

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

Хотя лично я считаю, что приведённый Вами пример совершенно не показывает разницы между ссылочными и значимыми типами разных ЯП, везде результат будет одинаковый, так что неудивительно, что Ordu посчитал Вас троллем, ведь Вы бесполезно натоксили вместо чёткого ответа либо хотя бы корректного примера "неграмотности" задавшего вопрос.


"Выпуск языка программирования Rust 1.50"
Отправлено Кир , 12-Фев-21 18:28 
Вопрошающий имел в виду что-то вроде такого:

int main() {
auto  a = make_shared<Test>("first");
a = make_shared<Test>("second");
return 0;
}

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


"Выпуск языка программирования Rust 1.50"
Отправлено Кир , 12-Фев-21 18:37 
> Хотя лично я считаю, что приведённый Вами пример совершенно не показывает разницы между ссылочными и значимыми типами разных ЯП, везде результат будет одинаковый

Вы ошибаетесь. В шарпе, скажем, копировались бы именно ссылки на объекты класса (если Test не struct) и он работал бы именно так, как мой пример с shared_ptr на C++. Другое дело, что деструктор там вызвался бы в совершенно неопределенный момент времени.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:05 
Именно приведённый Вами пример (я выделил это) разницы не показывает:
int a = 10;
a = 20;

В любом более менее популярном языке a будет содержать 20.

Вы же придираетесь к словам, к заданному вопросу. Вместо того, чтобы хоть намёк на ответ дать.
Так что в приведённом ВАМИ ЖЕ примере я не ошибаюсь. И ни о каких указателях, ссылках, классах/структурах или хотя бы куче/стеке речи не идёт. И нет объяснения при чём тут "ссылочная модель головного мозга", что вообще-то невежливо с Вашей стороны. Тем более с учётом приведённого примера.


"Выпуск языка программирования Rust 1.50"
Отправлено Кир , 12-Фев-21 19:45 
А, вы про этот пример, пардон. В нём вроде достаточно толстый намек на копирование по значению, разве нет? В паре с обсуждаемым выше кодом есть о чем задуматься. Или я должен был изложить стандарт C++ в полном объёме?

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 11:55 
> В нём вроде достаточно толстый намек на копирование по значению, разве нет?

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

Вмето этого Вы, захотев "технично унизить" человека, лишь показали свою грубость.

> Или я должен был изложить стандарт C++ в полном объёме?

Нет, я Вам уже третий раз даю подсказку, что следовало сделать - прочитать сам вопрос и только после этого формулировать ответ.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:31 
Да ты, оказывается, даже не знаешь понятий "значение" и "ссылка"...

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:16 
Вы вообще ветку читали? Или на любое его сообщение будете бессмысленно токсить?

Задан конкретный вопрос. Человек сказал, что делает приведённый код. Вопрос про то, как получить то, о чём он спросил. А не что делает его код.

Вас подобному поведению шутки про Stackoverflow научили?


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:37 
> Человек сказал, что делает приведённый код.

И? Всё правильно код делает, как чел написал - так и делает. В чём вопрос? Почему чел так написал?


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:46 
Перечитайте ветку, если не понимаете.

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

Конкретно к Вам вопрос - с какой целью Вы так толсто троллите задавшего вопрос?


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 20:19 
Ты такой тупой, просто жесть. Тебе же четко объяснили, что ты изменил содержимое объекта пред его уничтожением. Деструкторы обоих объектов вызываются. Просто у них содержимое одинаковое после твоего присваивания

"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 21:32 
> Ты такой тупой, просто жесть. Тебе же четко объяснили, что ты изменил
> содержимое объекта пред его уничтожением. Деструкторы обоих объектов вызываются. Просто
> у них содержимое одинаковое после твоего присваивания

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


"Выпуск языка программирования Rust 1.50"
Отправлено Кир , 12-Фев-21 21:48 
> Ты так забавно поступаешь -- чуть ли не слово-в-слово скопировал из моего первого коммента объяснение, и заявляешь, что я не понимаю этого объяснения.

Если ты продолжаешь считать, что это:

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

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


class Field {
public:
    Field &operator = (const Field &) {
        std::cout << "Assigning to field" << std::endl;
        return *this;
    }
};

class Test {
public:
Test(std::string name) {
std::cout << "Constructor called with name: " << name << std::endl;
this->name = name;
}
~Test() {
std::cout << "Destructor called for " << this->name << std::endl;
}
private:
std::string name;
Field field;
};

int main() {
auto  a = Test("first");
a = Test("second");
return 0;
}



"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 12-Фев-21 23:24 
> Может это хоть как-то поможет:

Ты тоже почитал ответы Школьника и Манянима?

Нет, не поможет. Тут проскакивали ссылки на copy_elision, сходи и почитай, там описывается откуда берётся это поведение, при котором деструктор вызывается не на значение, а на область памяти содержащее это значение.

Я так подумал, о том что происходит в голове у того анонима выше, и почему ему до сих пор кажется, что я чего-то не понимаю, и у меня возникло предположение. И думаю, что у тебя происходит то же самое, что и у него. Вы не различаете достаточно точно переменную и её значение. Или кусок памяти, и значение хранящееся в нём. Ты знаешь разницу между указателем и адресом? Вот здесь примерно то же самое. Когда выполняется присваивание, одно из значений (которое в данном случае является инстансом класса, или объектом) исчезает. Оно превращается в тепловую энтропию. Это как здесь:

int a = 2;
a = 7;

После a = 7 значение 2 исчезло и превратилось в термодинамическую энтропию, процессор стал чуть теплее. Так и в том примере моём присваивание уничтожило старый объект (старое значение переменной). Память, которая содержала тот объект осталась, и в ней теперь хранится новый объект, а старый прекратил существование. Но деструктор старого объекта будет вызван тогда, когда лайфтайм куска памяти/переменной закончится.

То есть, дефолтный operator= реализован с нарушением семантики C в пользу каких-то там оптимизаций. Это называется Copy Elision. Ссылки ты можешь найти в этом обсуждении. Нарушения этой семантики не проявляют себя, если дефолтного деструктора достаточно. Если же деструктор кастомный, то чтобы получить семантику C, которая проводит чёткую границу между значением и памятью, надо реализовывать ещё и свой operator=.


"Выпуск языка программирования Rust 1.50"
Отправлено Кир , 13-Фев-21 00:28 
Дядя Петя, ты ... ?

Твой код фактически эквивалентен вот такому:


class Test {
public:
    Test(std::string name) {
        std::cout << "Constructor called with name: " << name << std::endl;
        this->name = name;
    }
    ~Test() {
        std::cout << "Destructor called for " << this->name << std::endl;
    }
    std::string name;
};

int main() {
    Test a = Test(std::string("first"));
    {
        Test b{"second"};
        a.name = b.name;
    }
    return 0;
}

Здесь b -- аналог временного объекта, который у тебя создается в выражении присваивания. И в этом коде, и в твоем создаются 2 объекта, и уничтожаются два объекта. Между этими событиями происходит изменение поля a.name, что ты и видишь при вызове деструктора для a. Как именно происходит копирование строки -- не твоя забота, это реализовано в std::string. Изменение поля name никоим образом не должно приводить к вызову деструктора класса Test. Никаким Copy Elision тут и не пахнет. Если до тебя и сейчас не дошло, я умываю руки.


"Выпуск языка программирования Rust 1.50"
Отправлено Кир , 13-Фев-21 00:48 
Подумалось, может тебя смущает это:


Test a = Test(std::string("first"));

Это НЕ оператор присваивания и НЕ вызов копирующего конструктора -- это инициализация, т.е. полностью эквивалентно вот такому:


Test a(std::string("first"));


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 13-Фев-21 06:15 
Нет, меня не смущает это.

"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 13-Фев-21 06:19 
Чукча не читатель, да? Чукча писатель? Ты с кем сейчас и о чём разговаривашь, мальчик? Ты читал комментарий, на который отвечаешь? Какое отношение написанное тобою имеет к моему комментарию, на который ты отвечаешь?

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 11:58 
> Чукча не читатель, да? Чукча писатель?

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


"Выпуск языка программирования Rust 1.50"
Отправлено Кир , 13-Фев-21 14:30 
Ясно, понятно, не помогло. Бывает. Продолжай бредить.

"Выпуск языка программирования Rust 1.50"
Отправлено Alkog , 13-Фев-21 01:05 
> То есть, дефолтный operator= реализован с нарушением семантики C в пользу каких-то
> там оптимизаций. Это называется Copy Elision.

Опять пошли абсурдные утверждения про C...


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:11 
Людей вообще не стоит переубеждать, им кто-то донёс мысль, что С/С++ самые лучшие языки, они так и думают. А кого спроси на чём проекты пилят, то в большинстве случаев вообще на Go, потому что удобно, быстро и не надо бороду в пол отращивать.

"Выпуск языка программирования Rust 1.50"
Отправлено анон , 12-Фев-21 16:21 
Это норм, если не надо работать с ассемблером, а с ассемблером не работает тот, кто пишет либо скрипты, либо велосипед.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:31 
Ну это уже другое дело и не кросс-платформенное.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:33 
Хотя в Го можно получить листинг на асм и подпилить.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:45 
А в каком зрелом компилируемом языке нет инструментов для получения листинга на АСМ? Как будто Го какой-то уникальный в этом плане.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:46 
Да, они просто отращивают бороду. Не в пол, а чтобы была.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:58 
Чувак, мы в новости про твой C++ не лезем и не обсираем его, так и ты не поливай здесь, новость не интересна - пропустил.

Или ты тролль? Тогда прошу прощения, уровень выше моего детектора.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:29 
Ну, немного выше растаман уже пытался обсирать С++, но в результате обдристался сам.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:34 
Просто в качестве эксперимента покажите сообщения "обсиравшего" и Ваши любому знакомому и поинтересуйтесь, чьи сообщения обсирают, у кого токсичный тон.

При этом не надо заранее говорить где чьи сообщения.

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

Результат может оказаться дл Вас малость неожиданным.


"Выпуск языка программирования Rust 1.50"
Отправлено SinoptikU , 12-Фев-21 17:58 
С Rust моя жизнь изменилась!))) Молодцы!

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:41 
Напомнило рекламу гербалайфа.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 20:22 
В худшую или в лучшую сторону?

"Выпуск языка программирования Rust 1.50"
Отправлено freecoder_xx , 14-Фев-21 23:05 
В лучшую.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:07 
Ради таких новостей и живу. Сейчас полетят комментаторы с аргументами(нет) про ненужность всего на свете и раста в том числе.
З.Ы: Думал ещё вчера выйдет новость про обновление :с

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:39 
> Автоматическое управление памятью

Ой, а где это мы уже слышали точь-в-точь? Неужели в С++?!


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:44 
Приведите, пожалуйста, ссылочку на 5-минутный туториал по автоматическое управление памятью в C++, а то когда я его изучал, преподы сказали, что память течёт. Как сделать, чтобы не текла, конечно же не рассказали - студенчество в России.

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


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:07 
Где учился? Математик-информатик? Тогда понятно.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:24 
Ну ясно, ну понятно.
Я не знаю, как у человека выше проходила учёба, но у меня лично на магистратуре (нет, не на математика-информатика) это было так: пытались обучить С# и какого было мое удивление, когда препод просто элементарно гуглил, почему у него выдаёт ошибку в строке: double x = 5;
Так что ты учиться можешь в хорошем универе питера, а препод не знает элементарного синтаксиса языка или как некоторые вместо своих лекций по "Теории принятия решений" выдают чужой урезанный конспект, где не может пояснить за матрицы нечеткого отношения предпочтения и весовые коэффициенты экспертов (господи, у меня по сей день горит с последнего).

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:34 
А потом вот такие преподы сочиняют всякие расты и льют муть про другие языки, которые они не осилили даже открыть синтаксис почитать.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:52 
А потом всякие деятели пишут библиотеки для серьёзных вычислений на питоне

"Выпуск языка программирования Rust 1.50"
Отправлено анонимуслинус , 12-Фев-21 19:44 
технически вопрос не в питоне. он просто более простой инструмент. вот и все. технически он просто удобнее что раста , что с++. именно в науке имею ввиду. для высоконагруженных вычислений с большими объемами данных на  больших кластерных серверах вероятно все же будут писать на компилируемых языках. технически , что раст , что с++ просто инструменты. просто на с++ накрутили столько разных дополнений, что из обычного ключа он превратился в ключ с кучей прибамбасов, с часто непонятными свойствами или применениями. раст моложе и менее усложнен, но идет по тому же пути в желании стать популярным. хотя это наверное свойство всех языков программирования стремящихся быть "всеобемлющими".

"Выпуск языка программирования Rust 1.50"
Отправлено Проходимец , 13-Фев-21 15:57 
Вот ненадо. Самые вменяемые преподы были именно кто "ниасилил" новомодные языки. Они реально разжёвывали как это работает на железном уровне! Что дало понимание когда лучше один алгоритм, а когда быстрей будет другой!

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 18:29 
Ты чо не понял, это Россия!

"Выпуск языка программирования Rust 1.50"
Отправлено Aukamo , 13-Фев-21 00:46 
В Украине также. Только, давайте на чистоту: от студентов также много чего зависит. Люди желающие учится, а не протирать штаны на парах, учат то что им надо, потом идут на олимпиады и прочего рода соревнования, повышая авторитет\прибыль учебного заведения. И далее, уже для этих студентов в учебном заведении создают рабочие места и нанимают нужных специалистов.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 18-Фев-21 17:43 
Чувак, ты забыл указать название планеты.

"Выпуск языка программирования Rust 1.50"
Отправлено Бум , 13-Фев-21 17:51 
Так, а что не так со строкой то было?
double x = 5;
Console.WriteLine(x);

"Выпуск языка программирования Rust 1.50"
Отправлено анонимуслинус , 14-Фев-21 11:16 
double это число с двойной точностью. там должно было быть число с энным количеством знаков после запятой. в этом и ошибка.  но да в компилируемых языках , особенно со статической типизацией это будет грубой ошибкой. данные не соответствуют типу. кстати это самое начало изучения любого языка. там об этом чуть ли не с первых страниц вбивают.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:31 
Интересно. За все комментарии к этой новости Вы не дали ни одного содержательного (не ответил на конкретные вопросы), при этом успели натоксить на целое сообщество.

Пожалуйста, будьте добры отвтетить на заданные Вам вопросы, ведь их задали именно на конкретные Ваши заявления. Соответственно заявления либо Вами подтверждаются, либо вы остаётесь пустословом.


"Выпуск языка программирования Rust 1.50"
Отправлено Бум , 13-Фев-21 17:44 
Разве образование имеет значение? В институте учат учиться, дальше человек учится сам. Или вы за всю жизнь только 5 лет учитесь и не более?

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 01:15 
> В институте учат учиться

Самая дурацкая фраза. Если за 10 лет школы ты не научился учиться - вуз тебе не поможет. Вообще отсюда и проблемы, что вузы выпускают баранов.


"Выпуск языка программирования Rust 1.50"
Отправлено анонимуслинус , 14-Фев-21 11:19 
не соглашусь. процентов так 5-7 выходит нормальных, остальные только для галочки. и да не стоит смотреть на корочки, часто человек без корочки обладает куда большим талантом и потенциалом. сколько вышло знаменитых разработчиков и хакеров в том числе(которые правда все же попались иначе мы бы и не знали) из обычного народа.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноньимъ , 14-Фев-21 12:44 
Задача школ - сделать из людей безмозглых баранов.
Какой там учиться учиться? Что это за волшебные школы в стране единорогов?

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:07 
Гугли shared_ptr, unique_ptr, weak_ptr
Плюсы в вузах учат плохо (возможно очень)

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 00:04 
Спасибо (без шуток) за адекватный ответ. К сожалению, давно неактуально.

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

>> Автоматическое управление памятью
> Ой, а где это мы уже слышали точь-в-точь? Неужели в С++?!

И https://www.opennet.dev/opennews/art.shtml?num=54575#166


Простите, если обидел своим невежеством.


"Выпуск языка программирования Rust 1.50"
Отправлено Aukamo , 13-Фев-21 01:02 
borrow checker фишка которой у плюсов нет. Прежде чем писать что-то в ответ, изучите вопрос на предмет "что это такое и зачем надо?".

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 11:18 
Для того, чтобы мешать программисту решить задачу самым оптимальным способом?

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 01:17 
Есть такое. Раст - это молоток, который бьёт только по диагонали.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 20-Фев-21 04:19 
Самый оптимальный - это вроде инвалидации итератора в плюсах? Спасибо, поржал.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 22:43 
> преподы сказали

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


"Выпуск языка программирования Rust 1.50"
Отправлено Lex , 13-Фев-21 08:14 
[смутно припоминая плюсЫ]:
Когда нужно выделить - вызываешь new
Когда кусок памяти больше не нужен - вызываешь delete

Пусть это и не особо автоматическое управление памятью, но при норм подходе память не течёт. Сколько взял - столько вернул..


"Выпуск языка программирования Rust 1.50"
Отправлено Аноньимъ , 14-Фев-21 12:46 
Ах если бы, в жизни былоб всё как в песне бы...

"Выпуск языка программирования Rust 1.50"
Отправлено Lex , 14-Фев-21 14:06 
> Ах если бы, в жизни былоб всё как в песне бы...

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


"Выпуск языка программирования Rust 1.50"
Отправлено Аноньимъ , 14-Фев-21 14:14 
Это вы намекаете что разрабы которые могут уследить в принципе существуют.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 17:12 
С какой стати вообще нужно тратить время и мыслительные ресурсы на инфраструктурные вещи, если задача программиста - автоматизировать бизнес-процесс?
Вы хоть один день писали код за деньги?

"Выпуск языка программирования Rust 1.50"
Отправлено Michael Shigorin , 14-Фев-21 18:02 
> если задача программиста - автоматизировать бизнес-процесс?

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

> Вы хоть один день писали код за деньги?

Вы хоть одну строчку красивого кода написали?..


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 22:38 
Удивительно, что такой опытный человек. как Вы путает:
Кодер - пишет алгоритмы, как сказали.
Программист - человек, решающий поставленные задачи.

Теперь в связи с этим вопрос:
Если что-то вместо не помогает решить задачу, а мешает, может стоит выбрать другой инструмент?

И да, за чистотой кода я тщательно слежу и инфраструктурный код вот никак не вписывается в красивый код. Основа основ - эффективный код != красивый код, так что чем писать эффективный, но некрасивый код на C/C++ предпочту писать эффективный и красивый на Rust/Go/C#/Java/чтоугоднодругое, да даже PHP, если выбор встанет.

Вы ведь не часто говорите о красоте ассемблерного кода?

Да и вообще, меня удивляют Ваши вбросы, ответы на которые Вы оставляете повисшими. Как будто Ваша цель - похоливарить, что некрасиво с Вашей стороны. Ладно анонимы - с них спроса нет, могут быть и 10-летние школьники, но Вы - взрослый, немалого добившийся человек, а занимаетесь софистикой какой-то.

А если Вы боитесь, что работадатель вдруг захочет, чтобы лично Вы писали на Rust, то сомневаюсь, что холивары на форумах дойдут до него, что уменьшает вероятность услышать про такой ЯП.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 15-Фев-21 00:03 
Признаю свою неправоту: бизнес-процессы бывают разные. В Вашем, например, случае бизнес-процессы - это и есть инфраструктурный код.

Но это не значит, что у остальных такой же. Большинство разработчиков всё-таки прикладное ПО пишут, а не системное. Кстати, Rust позволяет писать красивый код и на системном, и на прикладном уровнях.

А то, что Вы пол года пытаетесь в лоб перевести Rust компилятор на e2k говорит лишь о Ваших ограниченных ресурсах, не позволяющих написать по-настоящему нативный компилятор, а не портированный. За это не стоит винить и ненавидеть Rust. Работадателей вините, но никак не язык.


"Выпуск языка программирования Rust 1.50"
Отправлено Lex , 15-Фев-21 12:31 
> С какой стати вообще нужно тратить время и мыслительные ресурсы на инфраструктурные
> вещи, если задача программиста - автоматизировать бизнес-процесс?
> Вы хоть один день писали код за деньги?

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

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


"Выпуск языка программирования Rust 1.50"
Отправлено 6аппппп , 13-Фев-21 09:45 
shared / unique ptr и никаких new / delete. А висюны можно и в Rust'те получить, ибо подсчет ссылок он и в Африке.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 00:15 
Серёжа, заканчивай! Вам интереснее обсуждать язычек, а не пейсать на нём

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:15 
"Rust избавляет разработчика от ошибок при манипулировании указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью"

А от остальных ошибок? Если разработчик совершает ошибки -- ему не место в отрасли, пусть улицы метет.


"Выпуск языка программирования Rust 1.50"
Отправлено alex312 , 12-Фев-21 16:19 
тормоза придумали трусы!

"Выпуск языка программирования Rust 1.50"
Отправлено анон , 12-Фев-21 16:23 
даешь раст для тех, кто не может осилить си, и синтекс жавы.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 22:46 
Интеллектуальные и административные проблемы не решаются техническими средствами.

"Выпуск языка программирования Rust 1.50"
Отправлено Aukamo , 13-Фев-21 01:09 
Прерву эту волну словами: "пишите на байткоде", благо документация для работы с микроконтроллерами\микропроцесорами имеется. Дело за малым, дерзайте!

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 15-Фев-21 03:26 
Тут вопрос цены. Вы же понимаете, что поплярность в отрасли того или иного решения зависит от того на сколько дорого его продают. Взять успех PHP или Java как думаете почему такая бешеная популряность? Все верно это низкий порог вхождения знаю истории из разряда простой парень бросил школу и заработал себе на машину и квартиру в москве программируя сайты.

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

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


"Выпуск языка программирования Rust 1.50"
Отправлено Aukamo , 10-Мрт-21 20:49 
> Все это основная проблема на пути в Rust-иниан и возникает она так
> же как и с С++ программистами их нужно всего полтора человека
> с колосальной квалификацией и огромной зарплатой, так что большая часть сервислв
> будет написано хреново на каком-нибудь GOlang-е.
> Я думаю, что с Rust ждет такая же учесть востребованность в трех
> с половиной облостях с высокой стоимостью и малой популрностью.

rocket & actix web, вроде как достаточно популярны. Если что-то простенькое писать и тебе достаточно просто дёргать API библиотек, сложность rust не заметишь. С учётом всей экосистемы вокруг языка, простые вещи пишутся почти как на python.

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


"Выпуск языка программирования Rust 1.50"
Отправлено анонимуслинус , 13-Фев-21 05:46 
они как правило то и решаются техническими(инженерными) средствами. но ты мечтай о своем. все проблемы решаются инженерами от разных отраслей.

"Выпуск языка программирования Rust 1.50"
Отправлено Sw00p aka Jerom , 12-Фев-21 21:31 
а толку от тормозов если есть понятие тормозного пути :) все равно собьешь пешехода.

"Выпуск языка программирования Rust 1.50"
Отправлено Второе Я , 20-Фев-21 19:56 
Речь выше про одно из устройств управления автомобилем, а не про дефектные прокладки между рулём и сиденьем ;-)

"Выпуск языка программирования Rust 1.50"
Отправлено Sw00p aka Jerom , 20-Фев-21 20:59 
> Речь выше про одно из устройств управления автомобилем, а не про дефектные
> прокладки между рулём и сиденьем ;-)

вы про трусов, которые придумали тормоза?


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 16:32 
>тормоза придумали трусы!

Тормоза думают очень медленно. А трусы придумали уже давно.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:35 
А вот для того чтобы не делать "других ошибок" и нужна голова программиста.
Rust же голову человека разгружает, т.к. не надо отвлекаться и думать о безопасной работе с памятью, потоками и UB - как это бывает когда пишешь что-то серьёзное на C++.

"Выпуск языка программирования Rust 1.50"
Отправлено Бум , 13-Фев-21 17:58 
Для разных задач, разных секторов (веб, клиентский гуй, серверные службы, разовые операции), разных сроков (срочно сделать вчера, за недельку, проект на год), разных команд (один человек, пара спецов, команда) есть разные языки и разные фреймворки! Нужно трезво понимать, что применять в согласно бюджета, сроков и реалий в каждом случае (в плане языка и инфраструктуры). Можно и на PHP писать серьёзные вещи и на C++ писать программульки.

"Выпуск языка программирования Rust 1.50"
Отправлено Fracta1L , 13-Фев-21 08:41 
> Если разработчик совершает ошибки -- ему не место в отрасли, пусть улицы метет

Так и запишем: всех без исключения С-разрабов перевести в дворники.


"Выпуск языка программирования Rust 1.50"
Отправлено Random , 13-Фев-21 11:18 
"С-" тут лишнее, с остальным согласен. )

"Выпуск языка программирования Rust 1.50"
Отправлено анонимуслинус , 13-Фев-21 18:33 
> "С-" тут лишнее, с остальным согласен. )

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


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 01:48 
Растаманы даже в дворники не могут сгодиться, для них метла - это unsafe.

"Выпуск языка программирования Rust 1.50"
Отправлено анонимуслинус , 14-Фев-21 05:36 
)) им придется включать unsafe режим))))

"Выпуск языка программирования Rust 1.50"
Отправлено JackoNeill , 16-Фев-21 11:42 
Да что ты такое несешь, черт побери...
Звучит как, если человек допускает ошибки, ему не место в жизни.
Ну ты и задвинул.

"Выпуск языка программирования Rust 1.50"
Отправлено pushy , 12-Фев-21 16:22 
Ну, ща начнется... When the shit hits the fan...

"Взвейтесь, кострами, синие ночи ..."


"Выпуск языка программирования Rust 1.50"
Отправлено A.Stahl , 12-Фев-21 16:31 
Раcтомани кодять, вилазяють очi...

"Выпуск языка программирования Rust 1.50"
Отправлено ryoken , 12-Фев-21 16:23 
Да тьфу на вас. Опять пересобираться часа 3 будет...

"Выпуск языка программирования Rust 1.50"
Отправлено Alladin , 13-Фев-21 13:10 
меня веселит опеннет, очередная несвразная чушь...


что пересобираться?:)
rust std?:) а это надо ваще?


"Выпуск языка программирования Rust 1.50"
Отправлено ДмитрийСССР , 12-Фев-21 16:26 
Почему в последнее время на opennet так форсится эта тема? В какую новость не зайди в комментария обязательно будет упоминание Rust, прям как идол которому надо поклоняться. Что происходит? Складывается впечатление, что кроме Rust ничего в мире больше не развивается и не на чём больше не пишут...

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:33 
Если коротко: слишком кричащий пиар был у раста, что это убийца всего чего можно, у людей вспыхнуло, но отпустить их так и не может, дотлевают на опеннете.
А так о расте первыми заводят разговор только хейтеры и тролли.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:41 
Я понимаю, что Вы не хейтер, но о якобы пиаре говорят только хейтеры, потому что до сих пор не привели ни одной ссылки на этот самый пресловутый пиар. Если у Вас есть, поделитесь, пожалуйста. И если приведёте, скажите, чем это отличается от анонса или обычной новости о фичах инструмента.

"Выпуск языка программирования Rust 1.50"
Отправлено анон , 12-Фев-21 17:10 
Заходишь на реддит, ищешь раст комьюнити, грепаешь список подписонов.
Заходишь на технические сабреддиты, грепаешь самые заминусованные комментарии, собирешь ники.
Удивляешься сорокам процентам ни с чем не коррелирующим совпадением, продолжаешь верить в отсутствие рептилоидов.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:39 
То есть пресловутые минусы на рандомных темах == пиар раста?

Вопрос был задан один, а Вы про другое.
Токсичные люди в любом сообществе есть. И необязательно, что они не троллят. Вот прямо под обсуждаемой сейчас новостью токсики от мира C/C++ ярко показали себя. Взять, к примеру, комментарии данного анонима https://www.opennet.dev/opennews/art.shtml?num=54575#34


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 09:37 
В расте все токсичные, иначе такой синтаксис не переварить. Насмотрятся раста и кидаются в злобе на прохожих

"Выпуск языка программирования Rust 1.50"
Отправлено SlackJiralove , 13-Фев-21 13:32 
После лиспа синтаксис раста совсем не страшен, заходит на ура.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 01:22 
С таким подходом научишься понимать психически больных.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:36 
> на opennet так форсится эта тема?
> обязательно будет упоминание Rust, прям как идол которому надо поклоняться

На opennet то? Ты ничего не путаешь? Здесь даже в новости про пыху раст вспомнят и выльют на него мировой океан помоев, в любой новости сишники с горящими жопами его принесут, будто бы раст - причина всех проблем в мире, высший грех, за которым следует высшее наказание


"Выпуск языка программирования Rust 1.50"
Отправлено draw1 , 13-Фев-21 02:14 
Ну уж тогда давайте будем чуть более честными...

Ничуть не меньше будет и такого:

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


"Выпуск языка программирования Rust 1.50"
Отправлено пердёжник , 13-Фев-21 09:30 
> Здесь даже в новости про пыху, раст вспомнят и выльют на си мировой океан помоев.

Это не так

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

Это не так


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 14:03 
> Здесь даже в новости про пыху, раст вспомнят и выльют на си мировой океан помоев.
>Это не так

Это так

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

Это так


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:38 
Да просто Rust молодой ЯП и сейчас активно набирает кодовую базу.
Потому каждая более-менее внятная поделка (а иногда - и изделие!) на нём генерит новость.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:49 
Да тьфу на вас

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:38 
Нет, всё начинается с обсирания языка. Наглядный пример - новость про GTK 4.0.1. Хейтеры ни к селу ни к городу приплели "убогость" раста, хотя никто и не упоминал его до этого, тем самым был спровоцирован срач, скрытый модераторами.

Вы, кстати, зачем в новости про раст провоцируете очередной срач? Ведь тут как раз в тему обсудить НОВШЕСТВА Rust. Не обсирать, не говорить, что он лучше всех (кстати, никто всерьёз так не делал ни на одной новости на Opennet за всю историю Rust), а именно обсуждать новшества.

Троллей не кормить, против них есть ссылочная кнопка "к модератору".


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:57 
> Троллей не кормить, против них есть ссылочная кнопка "к модератору".

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

***
Но!
Будьте снисходительны!
Не виноватые они!
А мода сия,
Пришла к нам вместе с смузями и латте!
Ведь раньше было как?
Сморозил глупость раз, сморозил два
И балабокою тебя все записали!
Теперь же можно смело все писать,
И опеннеты субъективной правдой сотрясать!
А на вопрос «какого *уя несешь пургу?» - гордо отвечать:
«Вы все д**ьмо! Я Дартаньян и я так троллю!»
© Аноним


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 06:23 
Сия? Это что литературовед тут нарисавовался. Чмырить хейтеров раста литературно или культурно, изволите?

"Выпуск языка программирования Rust 1.50"
Отправлено ИмяХ , 12-Фев-21 19:52 
>>кстати, никто всерьёз так не делал ни на одной новости

Потому что сам язык вообще не серьёзный.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 06:32 
Правильно, а еще перед тем, чтобы что-то сказать ты должен спрашивать разрешения и чистых сишников.

"Выпуск языка программирования Rust 1.50"
Отправлено alex312 , 13-Фев-21 17:36 
чистый С - это фантастика !

"Выпуск языка программирования Rust 1.50"
Отправлено Сишник , 12-Фев-21 20:26 
Ну дык неудивительно, множество любителей хруста сильно пересекается с множеством лгбтшников, сжв, блмщиков возможно даже более, чем с множеством тем кто вообще хоть как-то кодить умеет. Как тут не быть срачам? Вот например, вышла новость с нововведениями языка, теоретически здесь должны были отметиться пишущие на расте растоманы, пообсуждать нововведения, но нет же, никому это неинтересно - то ли растоманы на опеннете ненастоящие, то ли нововведения яйца выеденного не стоящие.

"Выпуск языка программирования Rust 1.50"
Отправлено acroobat , 12-Фев-21 16:28 
Язык будущего. Всех раст-оманов с релизом.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:12 
> Язык будущего

белого пушного лиса.


"Выпуск языка программирования Rust 1.50"
Отправлено acroobat , 12-Фев-21 17:15 
Огнелиса чтоль?

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:37 
> белого
> Огнелиса чтоль?

Н-да... Даже читать не умеем. Если ты не в курсе, тут просто цензура работает на <белого пушистого лиса>.


"Выпуск языка программирования Rust 1.50"
Отправлено acroobat , 12-Фев-21 17:45 
> белого пушистого лиса

Ну так что сказать-то хотел, сишник?


"Выпуск языка программирования Rust 1.50"
Отправлено Урри , 14-Фев-21 01:03 
Что вы, растаманы, даже такую элементарщину понять не в состоянии - а все ту же, в программирование.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 20:46 
>Язык будущего

Не каркай.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:36 
"Ржавчинные грибы обычно произрастают на надземных частях различных растений. Большинство из них погибает, когда растения отмирают, однако существуют и многолетние виды. Некоторые ржавчинные зимуют в корнях растений. Мицелий без пряжек, его тяжи располагаются между клетками растения-хозяина. Распространены по всему миру, вызывают серьёзные болезни цветковых и папоротниковидных растений."

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:42 
> Преимущества async также пропадают в случае привязки потока к одному ядру

Ух, ты! А если нет разницы, зачем использовать async? И тут же всплывает вопрос, а не привязкой ли к ядру сделан "быстрый" async?


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:47 
Написано же дальше, в чем разница

> Время создания новой задачи составляет для async ~300ns, а для Linux-потоков - ~17µs. На обычном
> ноутбуке с 4-ядерным CPU и 32 ГБ ОЗУ не возникло проблем с созданием 150 тысяч async-задач, но
> удалось запустить только 80 тысяч Linux-потоков. Минимальное потребление памяти на задачу
> составило нескольких сотен байт для async и 20КБ (9.5КБ в пространстве пользователя + 10КБ в
> ядре) для Linux-потоков.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:14 
> Преимущества async также пропадают

Карл, пропадают преимущества, понимаешь?


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:25 
Карл, ты задавал вопрос, в чем разница, понимаешь?

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:39 
> ты задавал вопрос, в чем разница

Да ты ещё и читать не умеешь. Перечитай внимательно мой пост.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 20:01 
>> Преимущества async также пропадают в случае привязки потока к одному ядру
> Ух, ты! А если нет разницы, зачем использовать async? И тут же всплывает вопрос, а не привязкой
> ли к ядру сделан "быстрый" async?

Я даже выделю

> если нет разницы, зачем использовать async?
> если нет разницы
> если
> нет
> разницы

А разница есть


"Выпуск языка программирования Rust 1.50"
Отправлено Wilem82 , 13-Фев-21 20:40 
Асинк в расте решает две проблемы:

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

2. Убирает callback-hell при написании асихнронного кода. Код выглядит как синхронный, что позволяет пользоваться обычными конструкциями языка типа for/while. Если непонятно о чём это - представь ситуацию, когда у тебя итератор возвращает футуру, а не готовый элемент и ты хочешь обрабатывать элементы который когда-нибудь будут вёрнуты футурой, последовательно.  Что бы вокруг такого написать цикл ты себе весь мозг сломаешь. А с растовским асинком такой проблемы нет.  В котлине эту же задачу решают корутины.

В общем, зачем это нужно становится понятно когда ты напишешь хотябы одно сетевое приложение в неблокирующем режиме IO, когда у тебя каждая сетевая операция - что на вход (http request к тебе пришёл), что на выход (http request ты послал куда-то) в ответ на read/write будет давать тебе не результат read/write, а колбек, и логику программы ты должен продолжить в этом колбеке, в результате у тебя весь код - это колбеки в колбеках в колбеках, что затрудняет и обработку ошибок (в Java по крайней мере), и control flow, и вообще кучу всего.  А async/await или корутины эту проблему решают.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 15-Фев-21 16:55 
Это не reddit/rust, прекратите писать красивые комменты

"Выпуск языка программирования Rust 1.50"
Отправлено Wilem82 , 15-Фев-21 21:51 
> Это не reddit/rust, прекратите писать красивые комменты

Согласен, для опеннета очень необычно. Как правило тут по делу процентов 5-10, а остальное - упражнения в бессмысленном остроумии и эмоциональных выбросах. Но как-то тухло - ни рыбо, ни мясо. То есть ни сатиры нормальной нет, ни полезных знаний. Увы.  Но, не беда! 5-10 процентов всё равно могут нормально друг с другом общаться и писать полезные вещи для читателей, которые никогда ничего не пишут (а таких много).


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 12:46 
Например за тем, что без асинка ты не сделаешь нормальную канцелляцию. С заблоченным тредом ты ничего не сделаешь. Футуру же можно завернуть в select с другой футурой-таймаутом.

"Выпуск языка программирования Rust 1.50"
Отправлено _ , 14-Фев-21 18:46 
В Rust футуру ты можешь отменить просто перестав дёргать Poll::poll, и дропнув

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 20-Фев-21 04:23 
Да, но ты же не будешь поллить футуру руками? ) async/await, все дела.

"Выпуск языка программирования Rust 1.50"
Отправлено _ , 21-Фев-21 15:01 
> Да, но ты же не будешь поллить футуру руками? ) async/await, все
> дела.

C async/await это же можно сделать на уровне рантайме, у того же tokio JoinHandle таски при дропе её отменяет.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 16:52 
> Пять директоров представляют интересы компании AWS, Huawei, Google, Microsoft и Mozilla, ставших учредителями и спонсорами Фонда

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:15 
"независимый" язык :) "свободное" сообщество :)

"Выпуск языка программирования Rust 1.50"
Отправлено proninyaroslav , 12-Фев-21 21:30 
Так можно сказать про любой опенсорс проект. Любой мало мальский популярный спонсируется кем-либо, а не голым энтузиазмом.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 11:45 
> Пять директоров

Они не спонсоры, они начальники. Нужные для того, чтобы заставить программистов, которые обрели существенное финансовое влияние в нынешнем мире, пресмыкаться перед феминистками за свой шовинизм, перед неграми за свои белые привилегии. И ни в коем случае не помышлять о смене власти на технократию. Для всего этого нужно их сообщество держать за горло, отбросив старых авторитетов в лице знаменитых программистов и приняв новых лидеров. Политика и ничего больше. Так то раст конкурирует вовсе не с Си, а с языками похожими на Ada, пытающиеся предотвратить любые ошибки программиста, а не только переполнения буфера.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:16 
У фонда финансирование 1 миллион долларов в год. На такое можно нанять трех вменяемых программистов в долине. Или десять в США. Но все деньги всё равно пойдут не на программистов, а на менеджеров. Которые будут внушать легковерным фракталятам как всё круто.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:41 
> У фонда финансирование 1 миллион долларов в год.

Это еле-еле разделится на 10 директоров фонда. Какие там программисты...


"Выпуск языка программирования Rust 1.50"
Отправлено AnonymPatient , 12-Фев-21 20:18 
>Это еле-еле разделится на 10 директоров фонда.

так, на цыгарки


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:37 
Визуально, код на С++ воспринимается лучше и проще, чем на Rust.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 18:22 
Я считаю наоборот

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 21:26 
Я считаю наоборот

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 13:53 
Я считаю наоборот

"Выпуск языка программирования Rust 1.50"
Отправлено admin , 14-Фев-21 12:44 
я считаю наоборот

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 16:23 
Нет, я считаю наоборот

"Выпуск языка программирования Rust 1.50"
Отправлено АноннонА , 15-Фев-21 12:41 
Нет, я!

"Выпуск языка программирования Rust 1.50"
Отправлено Aukamo , 13-Фев-21 01:51 
Смотря как писать. `cargo fmt` производит автоматическое форматирование которое не всегда удачное (близжайшая аналогия это история с PEP8 для Python). Но, с другой стороны это убирает проблемы когда в репозиторий попадают безсмысленные коммиты с изменениями в форматировании, символами пробелов в конце строки и т.д.

"Выпуск языка программирования Rust 1.50"
Отправлено freecoder_xx , 14-Фев-21 23:16 
В реальных проектах ни разу не сталкивался с неудачным форматированием cargo fmt.

"Выпуск языка программирования Rust 1.50"
Отправлено Aukamo , 10-Мрт-21 20:34 
> В реальных проектах ни разу не сталкивался с неудачным форматированием cargo fmt.

Банальный пример это длинные названия в методах и\или параметрах, после чего имеем 4-5 строк в сгенерированной документации для каждого метода, при том что однострочник читается на порядок проще.

Смотришь такую доку и текст сливается. Где названия методов? Где названия параметров?. Всё в одну простыню сливается.

На счёт реальности проекта: точно уже не помню где с этим столкнулся, но что-то связанное с GUI. Либо с are we gui yet либо are we game yet.


"Выпуск языка программирования Rust 1.50"
Отправлено burjui , 15-Фев-21 06:14 
Это дело привычки и вкуса. Я писал на С++ гораздо больше, чем на Rust, но от плюсового кода хочется плеваться. А после сеанса отладки ещё и вешаться, потому что код писал не эксперт с Опеннета, который никогда не делает ошибок. Вообще, красивый код на С++ сложно найти - скорее всего, потому, что когда плюсовик открывает книгу дядюшки Боба про чистый код и видит там Java, он её тут же с отвращением закрывает, не утруждая себя ненужными на его взгляд интеллектуальными усилиями.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:46 
Вот групые, надо было указать, что версия "150"

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 17:59 
Погоди, растаманы ещё не созрели до такого, всего-то 15 лет пилят свой раст.

"Выпуск языка программирования Rust 1.50"
Отправлено йо ж , 12-Фев-21 19:38 
кстати, така ж фигня с перлом. только не пилят, а хоронят.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 00:45 
Версия 100500 круче

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 18:23 
Мужыки нашего колхоза сумневайуться. Люди говорят што без интырнета исходники на Расте нельзя скомпилировать!

"Выпуск языка программирования Rust 1.50"
Отправлено Aukamo , 13-Фев-21 01:45 
cargo может работать в offline режиме используя локальный реестр crate-ов.

"Выпуск языка программирования Rust 1.50"
Отправлено burjui , 15-Фев-21 06:17 
Вдобавок, любой crate, не имеющий зависимостей, можно по старинке скопипастить в проект и подключить по относительному пути. Но это для особых эстетов.

"Выпуск языка программирования Rust 1.50"
Отправлено _ , 14-Фев-21 18:48 
Эта проблема решается вендорингом, и он встроен: cargo vendor

Отличие от golang тут в том, что в git репы зависимости не вендорят, т.к если есть интернет для скачивания репы, то почему бы зависимости тож не скачать?


"Выпуск языка программирования Rust 1.50"
Отправлено александреску , 12-Фев-21 19:05 
был уже такой раст, тут же, на опеннете. точно с таким же апломбом.
Язык назывался D.

"Выпуск языка программирования Rust 1.50"
Отправлено анонимуслинус , 14-Фев-21 16:16 
он и сейчас имеется. D2 или dlang. смотрел его, даже пробовал. ничего так , но он еще в развитии , впрочем как и раст. просто враст вложили уйму денег и рекламы. , а D почти ничего. вот и не слышно, но он не заглох и развивается. впрочем как и много других.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 22:21 
а нефиг под венду его было зотачивать. забвенен и зашкварен этот дэ

"Выпуск языка программирования Rust 1.50"
Отправлено burjui , 15-Фев-21 06:25 
Был, да сплыл. Потому что, в отличие от Rust, в его разработке царили разброд и шатание, слишком много ad-hoc решений вместо строгого подхода с позиций теории типов и прочей computer science, разработчиков было меньше, баги оставались открытыми годами, не было финансовой поддержки и так далее. Я даже писал на нём немало кода, пока не понял, что состояние экосистемы и принципы руководства меняться не спешат. Да о чём говорить, когда чуть ли не в каждом стабильном релизе компилятора натыкаешься на ICE - бесит неимоверно. А вот поганые хипстеры-растоманы как-то смогли наладить процесс и пашут, как ошалелые, чтобы мы могли наслаждаться процессом разработки, а не писать в Bugzilla по кд.

"Выпуск языка программирования Rust 1.50"
Отправлено александреску , 12-Фев-21 19:09 
>удалось запустить только 80 тысяч Linux-потоков

собственно, здесь не про ядро, да и не про раст. Тут про квалификацию


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:31 
1.5 означает 15 лет разработки?

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:43 
Да, по 0.1 прибавляли.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 23:54 
наливали, будь точнее. смотри синтаксис какой, на трезвую голову такой не придумаешь.

"Выпуск языка программирования Rust 1.50"
Отправлено Aukamo , 13-Фев-21 01:42 
Читать Войну и Мир надо с начала а не с конца. Вот и Вам советую начать читать Книгу с самого предисловия: https://doc.rust-lang.org/book/

"Выпуск языка программирования Rust 1.50"
Отправлено Анонимъ , 13-Фев-21 09:57 
Это как C++, в котором в названии очередного стандарта пишут количество лет, необходимых для беглого изучения.

"Выпуск языка программирования Rust 1.50"
Отправлено анонимуслинус , 14-Фев-21 16:18 
согласен, плюсы превратили в монстра трудного для поверхностного изучения, не говоря уже о полном и доскональном освоении. полагаю и его создатель уже не знает всех его возможностей.

"Выпуск языка программирования Rust 1.50"
Отправлено wyry , 24-Дек-21 22:48 
В чём проблема собственно? Стандарт существует не для того чтобы его читать от корки до корки, он существует чтобы точно сказать как работает та или иная функциональность языка, если возникают вопросы. Читать стандарт - это всё равно что читать справочник по любому предмету.

"Выпуск языка программирования Rust 1.50"
Отправлено ИмяХ , 12-Фев-21 19:50 
>>Автоматическое управление памятью

Да у них автоматика эта вся течёт.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:53 
Да нет там у них никакой автоматики... Забыл освободить память - утекла. Всё через явные манипуляции делается. Вот в самом начале растаман офигевает, что в С++ не надо деструктор руками вызывать! Растаман хочет вызвать деструктор сам (привык, однако, к расту).

"Выпуск языка программирования Rust 1.50"
Отправлено Aukamo , 13-Фев-21 01:38 
Единственное пректическое примерение метода `drop()` котое приходит на ум это использование `Mutex` и то, часто удобнее просто во вложенную область видимости работу с ним засунуть и ограничить время жизни таким образом.

Кратко о деструкторах в rust: https://doc.rust-lang.org/reference/destructors.html


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 01:46 
Вы прекрасно описали знаменитые free() крестов, поздравляю - перед обсиранием надо было снять с себя низ.

Судя по комментариям, Вы даже не понимаете термин владение. А столько всего зато вылили в новость про Rust.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 11:56 
Это не кресты, это чистый Си. А не крестах выделения осуществляются vect.push_back(0) или make_unique<myclass>(). При этом память будет освобождена автоматически. ИМХО учить c++, через Си крайне вредно. У них принципиально разные подходы к программированию.

"Выпуск языка программирования Rust 1.50"
Отправлено alex312 , 13-Фев-21 21:10 
>Это не кресты, это чистый Си.

От ответил так ответил! То фигня, конечно, что немного соврал, но ведь какой с насильника спрос :)


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 02:17 
> От ответил так ответил! То фигня, конечно, что немного соврал, но ведь
> какой с насильника спрос :)

malloc/free часть языка C89, С++ на тот момент даже не существовало. Конечно у С++ есть свои new/delete для ручного управления памятью. Но это примитивы как и указатели, шаблоны всё это скрывают, а кто продолжает использовать примитивы, тот ССЗБ.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 17:14 
Так местные крестноносцы только примитивы и указатели и предлагают использовать, показывая свой уровень понимания своего же языка.

"Выпуск языка программирования Rust 1.50"
Отправлено пердёжник , 13-Фев-21 17:52 
🤦🏻‍♂️ ой, у вас лёгкое недопонимание вообще всего

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 19:57 
Язык, на котором невозможно реализовать ряд алгоритмов, не может считаться полноценным.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 21:39 
> невозможно реализовать ряд алгоритмов

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


"Выпуск языка программирования Rust 1.50"
Отправлено Анонович , 12-Фев-21 23:12 
Например, каких?

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 23:41 
Всё, что делается на расте - только обёртки вокруг асма или си.

"Выпуск языка программирования Rust 1.50"
Отправлено Aukamo , 13-Фев-21 01:26 
Я, когда начинал читать Книгу, столкнулся с проблемой реализации рекурсивного DFS, ибо borrow checker всё время бил по рукам. В последнее время таких проблем не замечал, либо задачи другие либо переболел.

"Выпуск языка программирования Rust 1.50"
Отправлено burjui , 15-Фев-21 06:32 
Во-первых, компилятор постоянно совершенствуется, и сейчас писать на Rust на порядок проще, чем когда он только появился. Во-вторых, ко всему нужно привыкать: когда я только начинал, borrowck очень раздражал, а сейчас я вообще его не замечаю. Это как учить комбинации клавиш в программе.

"Выпуск языка программирования Rust 1.50"
Отправлено DEUDEV , 15-Фев-21 14:05 
>> рекурсивного DFS

как решил это? попутно вопрос не с помощью ли сторонних крейтов который под грфафы сделаны были?


"Выпуск языка программирования Rust 1.50"
Отправлено Aukamo , 16-Фев-21 01:23 
Никаких сторонних крейтов, хотел сам разобраться и разобрался. Конкретно не помню что там было, но задачу решил. Вроде, там какой-то косяк был с моей стороны.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 01:34 
Даже css теперь можно назвать тьюринг полным языком программирования. Конечно, там всё будет накостылено и громоздко, но Rust язык не таблицы стилей, а мультипарадигменный язык программирования.

Так что Ваше утверждение говорит лишь о Вашей некомпетентности как разработчика.


"Выпуск языка программирования Rust 1.50"
Отправлено yet another anonymous , 13-Фев-21 20:49 
> Rust язык ... мультипарадигменный язык программирования

Это совсем не так. В отличие от C++ (на котором можно писАть и в move-семантике, обеспечивая
уникальность владения). Остальные парадигмы, в которых можно писать на C++ нужно перечислять?


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 17:17 
Да, пожалуйста, перечислите.

А ещё скажите, как писать на C++ в функциональном стиле без костылей.

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

Я написал об одном (Rust), а Вы про другое (C++). Связь какая-нибудь будет?


"Выпуск языка программирования Rust 1.50"
Отправлено burjui , 15-Фев-21 06:35 
Писать-то можно, но вот что скажет компилятор при попытке использовать переменную, из которой был сделан move? Последний раз, когда я это проверял (год назад), он молча скомпилировал мне очевидно некорректный код.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 20:03 
Под воздействием шумихи и пиара взялся изучать этот с позволения сказать язык. Оказалось, что это тупо аналог уникальных и умных указателей из C++

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 21:37 
Это уже норма: взять готовое, источник - обгадить, самим пропиариться.

"Выпуск языка программирования Rust 1.50"
Отправлено red75prim , 14-Фев-21 01:15 
Ага, ещё и move семантика у него какая-то кривая: переменная недоступна после перемещения из неё значения.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 20:06 
Лучше бы Zig так хайпили.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 20:21 
Кому лучше?

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 10:50 
Он один в один такой же как раст. Единственное что синтаксис по-человечнее. Но он еще не зарелизился.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 15-Фев-21 17:07 
А какая версия один в один такая же? А то стабильного релиза ещё не было, никакой гарантии, что API не поломается. Да ещё и оговорочки на каждой версии такие: всё описанное справедливо только для версии такой-то, в следующей всё может поменяться. Да на той же странице https://ziglang.org/learn/why_zig_rust_d_cpp/ описаны базовые (весьма сомнительные, смею заметить) "преимущества".

Плюс низкий порог входа грозит наплодить тоже кучу говнокодеров, как это случилось с Java, PHP, JavaScript и Go.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 10:49 
Он в бете

"Выпуск языка программирования Rust 1.50"
Отправлено alex312 , 14-Фев-21 09:47 
все в твоих руках.

"Выпуск языка программирования Rust 1.50"
Отправлено Иваня , 12-Фев-21 21:52 
Снова этот раст... когда уже opennet перепишут на безопасный раст? :)

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 10:50 
Перл безопаснее раста.

"Выпуск языка программирования Rust 1.50"
Отправлено PnD , 14-Фев-21 21:22 
Однозначно!
foreach (<STDIN>) { eval(eval($_)); }

"Выпуск языка программирования Rust 1.50"
Отправлено burjui , 15-Фев-21 06:39 
Лучше бы хейтеров переписали на С++, чтобы те сегфолтнулись и перестали дампить свои потоки сознания раз и навсегда.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 22:52 
за такой синтаксис надо отрывать ру.., но.. и прочие части тела
интересно, сколько раз в день средний программист пишет слово function?
если больше 1000, то тогда сокращение до fn возможно оправдано.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 22:53 
подсказка: int main()

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 10:54 
Если ты будешь быстро писать код. Тогда в нем быстро будут появляться дырени. В этом и заключается безопасность раста.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноньимъ , 14-Фев-21 12:49 
Показательно что вас fn смутило, а не ::<>:{*& и прочая жесть.

"Выпуск языка программирования Rust 1.50"
Отправлено burjui , 15-Фев-21 06:40 
Может, ещё фигурные скобки заменить на begin/end? А то 1000 в день никто не пишет же в ясном уме.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 12-Фев-21 23:54 
Мне уже кажется, что Школьник и Аноним (42) - один и тот же человек, пишущий то с ПК, то с мобильного устройства.

Оба ловко и непринуждённо теряют нить дискуссии, даже когда им в лицо тычут темой. Либо как-то подсознательно не видят предложения, оканчивающиеся знаком вопроса. Иначе мне непонятно, как они оба игнорируют эти самые вопросы и уводят тему вообще в другое русло.

Хотя да, Кир тоже сначала этим пострадал. Потом, видимо, кофейку выпл или поел - стал поадекватнее и вместо токсичности начал на вопросы отвечать.

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


"Выпуск языка программирования Rust 1.50"
Отправлено name , 12-Фев-21 23:55 
пока люди заняты растом, они не пишут такой же плохой код на других языках

"Выпуск языка программирования Rust 1.50"
Отправлено burjui , 15-Фев-21 06:43 
Пока хейтеры пишут на Опеннете, они не пишут идеальный код на С++ без сегфолтов, порчи памяти и утечек. Непорядок.

"Выпуск языка программирования Rust 1.50"
Отправлено Aukamo , 13-Фев-21 01:20 
Меня больше волнует чтобы в 0.15 этой ошибки небыло https://github.com/rust-lang/compiler-builtins/issues/400

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 02:54 
Интересно, есть ли люди которые добровольно переходят на ЭТО. После такого синтаксиса нужно неделю сишником отпаиваться.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 06:25 
> есть ли люди которые добровольно переходят на ЭТО.

Американские исследователи отмечают рост числа психических заболеваний в Штатах. 30% американцев хотя бы раз нуждались в медикаментозном лечении. К чему это всё... То, что мы наблюдаем в синтаксисе раста - признак психической деструкции.


"Выпуск языка программирования Rust 1.50"
Отправлено freecoder_xx , 14-Фев-21 23:22 
А что с синтаксисом не так?

"Выпуск языка программирования Rust 1.50"
Отправлено burjui , 15-Фев-21 06:45 
Ща, погоди, плюсовики поморгают, чтобы бревно в глазу не мешало, и напишут.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 06:43 
Последнее, победное слово!

Говоря, что растаманы лгбт и геи, вы лишь насмешите, и их и нас.

Если хотите по настоящему нагнуть растамана скажите, что они против POSIX, UNIX-like, GNU и копилефта. Растаманы противники философии Unix.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 12:35 
Мы не знаем ни раста ни философии растоманов. Пусть расскажут, тогда поспорим.

Растовый "компилятор", который является фронтендом к llvm, есть большим минусом. Компилятор должен уметь компелять хотя бы себя, в готовый бинарь.

Присудствие M$ это точно не путь UNIX.


"Выпуск языка программирования Rust 1.50"
Отправлено Alladin , 13-Фев-21 13:19 
вы случаем не несете чушню?

llvm же для этого и разрабатывался? не?

и языки например Swift, они что? тоже недоязыки, так как используют llvm?

а C++ на Clang? что? также недоязык, не умеющий себя собирать в бинарь?


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 14:24 
Твой оппонент невежественный. Не обращай на него внимания.

"Выпуск языка программирования Rust 1.50"
Отправлено alex312 , 13-Фев-21 21:19 
>Присудствие M$ это точно не путь UNIX.

M$ - платиновый спонсор Linux Foundation. И не притворяйся что не знал 💸.


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 14-Фев-21 06:01 
> Мы не знаем ни раста ни философии растоманов. Пусть расскажут, тогда поспорим.

Это простая философия.

1. Все инварианты должны быть прописаны в сорцах в виде понятном для компилятора.
2. Всё что может быть посчитано в компайл-тайме, должно быть посчитано в компайл-тайме.

Я не очень знаю, где это противоречит философии Unix, но троллинга ради, можно, например, начать катить бочку на MMU, говоря о том, что он не нужен, разделение системы на процессы не нужно -- это C'шный костыль для небезопасных программ, чтобы была возможность локализовать сегфолт и не прибивать на каждый сегфолт всю систему целиком.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноньимъ , 14-Фев-21 12:53 
> но троллинга ради,
> можно, например, начать катить бочку на MMU, говоря о том, что
> он не нужен, разделение системы на процессы не нужно -- это
> C'шный костыль для небезопасных программ, чтобы была возможность локализовать сегфолт
> и не прибивать на каждый сегфолт всю систему целиком.

Это костыли Си процессоров дли Си программ, таки да.


"Выпуск языка программирования Rust 1.50"
Отправлено Ordu , 14-Фев-21 13:29 
Ну, типа того. Можно получить прирост скорости, прописав одну единую таблицу страниц, и отказавшись от внесения изменений туда, дабы процессор не тормозил бы перезагружая TLB. А ещё лучше, взять процессор без MMU, чтобы он не грел бы этим MMU кристалл почём зря. Да и транзисторов наэкономить, им можно найти лучшее применение.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 14:13 
> А ещё лучше, взять процессор без MMU

А ещё лучше не использовать всякие расты.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноньимъ , 14-Фев-21 14:17 
Управлению памятью это хорошо.
Проблема с сишными процессорами и сишными программами.

Цп должен работать с памятью как и с любым другим конечным ресурсом, а ПО должно работать с памятью как с любым другим конечным ресурсом.

Проблема сишных прог в том что они проектируются и работают так, как будто кроме них ничего больше на компьютере с бесконечным ОЗУ нет.
А сишные процессоры проектируют так чтобы эти волшебные сишные проги могли как-то в количестве больше 1 работать.


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

Другой, запускать на процессоре виртуальную машину по типу ЖВМ и пусть она заботится о всём остальном...


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 14:16 
> разделение системы на процессы ... это C'шный костыль для небезопасных программ

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


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 11:11 
Главный недостаток rust является его же чуть ли не главным достоинством, привлекающим внимание неофитов - это пакетный менеджер. Как много ругали C++ за сложность работы с зависимостями! Однако, на деле выходит, что отсутствие удобного пакетного менеджера, качающего потенциальные зловреды из интернета без спроса, может быть даже плюсом языка. Можно подменить пакет на сервере даже во время скачивания, что особо никто не заметит. Такая целевая атака может быть запросто проведена. Поэтому где-то независимость от внешних репозиториев очень ценят до сих пор. Придет время, и это станет особенно важно. На это будут обращать внимание, но пока не все еще готовы это понять.

P.S. "cargo vendor" не является нисколько решением проблемы. Как это непонятно?!


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 13:23 
> Как это непонятно?!

Примерно так же, как тебе не понятно, что можно собирать софт без cargo или можно собирать софт cargo, качая зависимости ручками, а не из интернетов


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 14:26 
Так ведь карго создавался для того чтобы зависимости касались из интернатов и для компиляния без своих ручек.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 15:11 
Но это не значит, что этим нужно обязательно пользоваться

"Выпуск языка программирования Rust 1.50"
Отправлено Wilem82 , 13-Фев-21 20:54 
> Однако, на деле выходит, что отсутствие удобного пакетного менеджера, качающего потенциальные зловреды из интернета без спроса, может быть даже плюсом языка.

Каким образом качание всего того же самого, что тебе всё равно нужно, но не автоматически а руками убережёт тебя от плохого кода? Типа, если ты сам мышку навёл на ссылку и нажал "скачать", то код от этого стал проверенным?


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 13-Фев-21 21:12 
Очевидно же, что шансы подсунуть тебе зловред резко снизятся. В некоторых конторах еще и аудит устриавают используемым пакетам. Бывает, что и более жесткие требования выставляют. А вот легкость работы с cargo сильно расслабляет. Это психология уже. Для критически важного софта rust использовать просто опасно (пока?), но сам язык - красивый и изящный, с перспективами.

"Выпуск языка программирования Rust 1.50"
Отправлено Wilem82 , 13-Фев-21 23:38 
> Очевидно же, что шансы подсунуть тебе зловред резко снизятся.

Не используй публичную репу. Используй частную. Клади туда только то, что лично проверил.

> А вот легкость работы с cargo сильно расслабляет. Это психология уже.

А теперь давай твой аргумент применим ко всему остальному, а не только сборке проекта. Всё, что удобно - то более опасно, чем неудобное. Потому что неудобное заипёшься делать, а удобное чуть ли не само работает. Прекрасно. Для начала предлагаю запретить глобы в шеллах. А то слишком удобно - мало ли чего. Потом запретить $PATH. Ну из тех же соображений. Перенаправление в файл тоже надо убрать, а то вдруг ты перенаправишь и место кончится. Далее надо убрать ДНС - нечего удобно вводить имя сайта, мало ли куда тебя занесёт - надо только айпишник. У тебя будет специальный блокнот с айпишниками, чисто проверенными, им можно доверять. Ну и так далее.

Удобство - это всегда хорошо, это повышашет эффективность. Бороться надо не с ним, так как корень проблемы не в нём. А в том, что если ты не доверяешь публичным репам (и правильно делаешь), то не надо слепо пользоваться публичными репами. При этом ты сохраняешь удобство, но убираешь опасность.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 08:11 
Не стал вчитываться в это перетягивание, в этот бред. Эх, растоман, растоман! Что же вы совсем не прислушиваетесь? А главное в моих прошлых словах опустили, как бы сделали вид, что не заметили. Не будет пока rust использоваться для критически важного софта, не будет.

"Выпуск языка программирования Rust 1.50"
Отправлено burjui , 15-Фев-21 06:46 
Так и запишем: хейтерам лень читать.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 09:39 
>Удобство - это всегда хорошо, это повышашет эффективность. Бороться надо не с ним, так как корень проблемы не в нём. А в том, что если ты не доверяешь публичным репам (и правильно делаешь), то не надо слепо пользоваться публичными репами. При этом ты сохраняешь удобство, но убираешь опасность.

Спасибо, я понял Раст - опасный язык. Не надо им пользовался.


"Выпуск языка программирования Rust 1.50"
Отправлено alex312 , 14-Фев-21 11:15 
>Всё, что удобно - то более опасно, чем неудобное.

Все с точностью наоборот.

Вот, допустим, захотел ты колбаски.

Простой способ - пойти в магаз и купить. Все просто. есть конечно риски что попадется брак/просрочка, что по пути тебя собьет автобус. но они, реально, невелики.

Второй путь - это сделать колбаску самому. И тут есть множество вариантов насколько глубоко копать в это "самому". Т.е. откуда начинать. С покупки готовых ингридиентов(мясо, специи, соль) или прям с выращивания этого самого мяса в виде коровок и свинок, а может еще и корма им выращивать  в контролируемых условиях?

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

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


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 16:38 
> Ну, попробуй теперь опровергнуть, что купить колбаски в магазе

Запросто - тут начнем с заработать денег.

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

...

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


Короче сделать на много безопаснее и проще.


"Выпуск языка программирования Rust 1.50"
Отправлено alex312 , 14-Фев-21 11:20 
>Очевидно же, что

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

Вот многим очевидно, что Земля плоская, но это не так.
Очевидно, что Солнце крутиться вокруг Земли, но это тоже не совсем правда.
Очевидно, что укреплять броню на самолете надо дам, где обнаруживается больше попаданий - и вот опять  это не так.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 13:16 
> укреплять броню на самолете надо дам, где обнаруживается больше попаданий - и вот опять  это не так.

А у растаманов - как раз так! Где дыры - там и вешают броню :) Потому раст и не летает, как Си/Си++. Растаманы не понимают, что не с той стороны к проблеме подошли.


"Выпуск языка программирования Rust 1.50"
Отправлено alex312 , 14-Фев-21 15:00 
>Где дыры

Кому что, а насильнику дыры.

Да даже если раст придумали только для троллинга таких вот как ты, то его миссия выполнена на 100% :)

А уж если на нем еще и что-то напишут - то так ваще 146%


"Выпуск языка программирования Rust 1.50"
Отправлено red75prime , 16-Фев-21 11:35 
> Где дыры - там и вешают броню

Дыра в вернувшемся самолёте показывает место, которое можно повредить без снижения функциональности. Дыра в програмном комплексе - это баг, используя который можно осуществить атаку на комплекс. То и то - дыра!!! Патчить баги не надо!!! Офигеть какая логика.


"Выпуск языка программирования Rust 1.50"
Отправлено Плохой Танцор , 13-Фев-21 14:33 
Раст может и не плохой, но обилие колючих символов в тексте программы напрягает и отталкивает. "привет мир" смотрится на расте убедительно, чего не скажешь о серьёзных проектах, там все прелести раста теряются за обилием кракозябр и прочей нечитабельной мути. Хотя современный Си++ в плохом смысле даже раст кладёт на лопатки в плане читабельности и очевидности решений при постановке решений самых элементарных задач.

"Выпуск языка программирования Rust 1.50"
Отправлено Wilem82 , 13-Фев-21 20:54 
А на чём ты обычно пишешь?

"Выпуск языка программирования Rust 1.50"
Отправлено Плохой Танцор , 14-Фев-21 00:22 
Питон, Си и Си++.

"Выпуск языка программирования Rust 1.50"
Отправлено Wilem82 , 14-Фев-21 02:22 
> Питон, Си и Си++.

Ну с сями понятно - там меньше символов потому, что меньше фич. Фичи-то надо как-то в синтаксисе отображать.  В питоне тоже фич меньше - дженериков нету например.

Какие в расте необычные или просто вездесущие символы?

1. "!" - что бы отделять макросы от функций. Какой-то спец-символ всё равно для этого нужен. Читая код надо видеть, т.к. внутри вызова макроса может быть собственный под-синтаксис, определённый в описании самого макроса.  Пример: println!("abc") - выглядит как функция. А вот другой: lazy_static! { ... } - уже вообще ни на что не похоже, блок какой-то.

2. "::" - разделение имён в пути к чему-то через модули (неймспейсы, пакеты). Пример: std::path::Path.  Мне привычнее "." для этого - оно так в жаве, в котлине, в скале, да и много где. Хз зачем они так сделали, но вроде не бесит.

3. "T::<type_parameters>::function()" - так называемый turbofish. У самих пользователей раста притензия только к этому и эта конструкция многих бесит. Но убрать её пока не получается, см. https://github.com/varkor/rust/blob/b188c2a4eb7a3eede8477e3f... . Попытка указывать дженерики после имени фукнции, как это обычно делается в других языках, приводит к неоднозначности обработки туплов.

4. Описание дженериков в сигнатуре фукнции. Оно во всех языках, что я видел - многословно и турдночитаемо.  Но в отличии от жавы и котлина тут хотябы есть под-секция "where", где можно отдельно от основного определения сигнатуры развернуть условия.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 06:11 
>Ну с сями понятно - там меньше символов потому, что меньше фич.

Обьясните этому долбо?бу, что существует процедурный язык со структурной парадигмой. Си просто повторяет архитектуру компьютера. Именно потому он такой эффективный.

Виллем родившийся 1982 году, скажи, какие фичи ты видиш в плашке оперативной памяти?


"Выпуск языка программирования Rust 1.50"
Отправлено Wilem82 , 14-Фев-21 08:17 
>>Ну с сями понятно - там меньше символов потому, что меньше фич.
> Обьясните этому долбо?бу, что существует процедурный язык со структурной парадигмой. Си просто повторяет архитектуру компьютера. Именно потому он такой эффективный.

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


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 12:53 
Ну ты прям подтвердил "нагромождение символов", приведя нагромождение символов :). Что и требовалось доказать.

"Выпуск языка программирования Rust 1.50"
Отправлено alex312 , 14-Фев-21 09:53 
>Си просто повторяет архитектуру компьютера.

Начал фразу, так продолжай. Си просто повторяет архитектуру допотопного компьютера PDP-11.
И все кокруг (производители железа и писатели компиляторов) последние десятилетия натягивают сову на глобус.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 12:43 
> Обьясните этому долбо?бу какие фичи ты видиш

и горькая слеза скатилась в стакан со смузи


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 12:50 
> какие фичи ты видиш в плашке оперативной памяти?

Ну ты валишь его! Прям как на экзамене студента вопросом "а не 4 ли получится при 2+2?". А студент сидит и только "Му... му..." в ответ.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 14:09 
>> Описание дженериков в сигнатуре фукнции. Оно во всех языках, что я видел - многословно и турдночитаемо.
> Обьясните этому долбо?бу, что существует процедурный язык со структурной парадигмой.

Он то все верно написал - долбо?б здесь исключительно аноним, прочитавший только первое предложение и бросившийся отвечать.

> Си просто повторяет архитектуру компьютера. Именно потому он такой эффективный.

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


https://queue.acm.org/detail.cfm?id=3212479
> C Is Not a Low-level Language
> Your computer is not a fast PDP-11.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 16:02 
> дженериков, неймспейсов и нормальных макросов

Обычный неймспейсный дженерик головного мозга.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 16:26 
>> дженериков, неймспейсов и нормальных макросов
> Обычный неймспейсный дженерик головного мозга.

Обычное анонимное балабольство мимо темы, ничего нового.



"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 22:24 
С каких пор ассемблерные вставки это Си?
Или по-другому: на каком нормальном компилируемом языке нет ассемблерных вставок?

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 15-Фев-21 13:21 
На java

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 15-Фев-21 14:58 
Точно?
Его младший брат (C#) позволяет использовать ассемблерные вставки, да и вообще, на нём при сильном желании можно писать сравнимый по производительности с C++ код.

А насчёт Java - не знаю, писал на нём только в университете, по сравнению с C# не понравился. Вот Kotlin у шарпистов популярный язык на JVM.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 15-Фев-21 16:09 
> Java
> C#

Ты бы ещё перл и питон сравнил.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 15-Фев-21 17:00 
Так речь о компилируемых языках. В данном случае ещё и со сборкой мусора, со своей виртуальной машиной (JVM/CLR), что ИМХО корректное сравнение.
Но да, ущербность джавы можно оправдыватьтем, что его нельзя сравнивать с C#, конечно.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 15-Фев-21 17:10 
> Виллем родившийся 1982 году, скажи, какие фичи ты видиш в плашке оперативной памяти?

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


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 16-Фев-21 05:56 
>Могли бы уже как в других языках, ввести соответствующий базовый тип,

Переименовать или переизобрести malloc, calloc, realloc?

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

То есть ты хочешь чтобы, компилятор брал на себя функцию Стандартной библиотеки: fgets, gets_s... ?

Скажи, ты хочешь убить Дух Чистого Си? Или ты хочешь сделать из чистого Cи ещё один "Си плюс-плюс"? СПЕЦИАЛЬНО так сделано, что чистом Си нет строкового типа. Дабы не усложнять язык и чтобы не убить дух языка.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 09:47 
Пацаны, растаманы хитрые! В прошлый раз один прикинуля С плюс-плюсником, и он завязал фальшивый разговор с одним-двумя растаманами о синтаксисе языков C++ и Rust. Они поспорили, сравнили два языка. Потом прикинувшийся Си плюс-плюсником человек сказал: "Спасибо, начну изучать Раст".

Не ведитесь на такие вбросы! Это хитрая подстава!


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 12:46 
> Спасибо, начну изучать ...

Излишняя вежливость настораживает.


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 14-Фев-21 22:15 
па сишнаму уравню сразу видно кто перед табой

"Выпуск языка программирования Rust 1.50"
Отправлено burjui , 15-Фев-21 06:51 
Тот срач, который здесь развели хейтеры-консерваторы, лишний раз доказывает, что никто здесь Rust не форсит, кроме их самих.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 15-Фев-21 15:38 
rust это системный или прикладной язык?

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 15-Фев-21 16:06 
Неработающая у них система ресдох - на асме. Получается, прикладной. Жалкая пародия на умные и прочие указатели С++.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 15-Фев-21 16:46 
> Неработающая у них система ресдох - на асме.

Столько же асма, сколько и в реализациях такого же ABI на сишке.

> Получается, прикладной. Жалкая пародия на умные и прочие указатели С++.

У жс-питонистов получается и сишка не системный ЯП. Ну, им конечно же виднее, они зря писать не будут! (сарказм)


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 15-Фев-21 19:08 
> Столько же асма, сколько и в ...

А если нет разницы, зачем раст?!


"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 15-Фев-21 20:20 
А если нет разницы, зачем си?

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 18-Фев-21 20:45 
Си стабилен.

"Выпуск языка программирования Rust 1.50"
Отправлено Хартман , 19-Фев-21 04:10 
Си говно, в котором нужно городить велосипед даже для таких простых структур как список, очередь, стек

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 18-Фев-21 17:49 
Если программист выбрал rust - значит он не умеет принимать оптимальные решения и от таких срочно избавляются. Это естественный отбор.

"Выпуск языка программирования Rust 1.50"
Отправлено Аноним , 18-Фев-21 20:46 
> программист выбрал rust - значит он не умеет принимать оптимальные решения и от таких срочно избавляются

Мозила так и сделала.