The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск языка программирования Rust 1.50"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск языка программирования 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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от растоним (?), 12-Фев-21, 16:00   +1 +/
БОЖЕСТВЕННЫЙ ЯЗЫК! УРА!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2

2. Сообщение от uis (ok), 12-Фев-21, 16:01   +2 +/
Кто-то не осилил Аду
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #3

3. Сообщение от Аноним (3), 12-Фев-21, 16:06   –3 +/
Не осилил? Поэтому этот язык как раз оттуда, из ада)) Про язык "Ада" в курсе
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

4. Сообщение от Аноним (3), 12-Фев-21, 16:07   –6 +/
Когда же они уже угомоняться и поймут, что их поделие - жалкая пародия на (конечно же современный, т.е. modern) C++
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6, #50, #116

5. Сообщение от Аноним (64), 12-Фев-21, 16:07   +9 +/
Ради таких новостей и живу. Сейчас полетят комментаторы с аргументами(нет) про ненужность всего на свете и раста в том числе.
З.Ы: Думал ещё вчера выйдет новость про обновление :с
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #34, #274

6. Сообщение от Аноним (6), 12-Фев-21, 16:08   +12 +/
вы все еще на стадии отрицания? тогда мы идем к вам)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #7, #8

7. Сообщение от Аноним (3), 12-Фев-21, 16:09   +2 +/
Ну и что там в расте есть такого, что нельзя на плюсах? Он быстрее плюсов? Он безопаснее? Что, утечек памяти нет? Для этого в плюсах ещё с 2011 года используются умные указатели
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #13, #29

8. Сообщение от Аноним (64), 12-Фев-21, 16:11   +/
Людей вообще не стоит переубеждать, им кто-то донёс мысль, что С/С++ самые лучшие языки, они так и думают. А кого спроси на чём проекты пилят, то в большинстве случаев вообще на Go, потому что удобно, быстро и не надо бороду в пол отращивать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #14, #40

9. Сообщение от Аноним (9), 12-Фев-21, 16:15   –9 +/
"Rust избавляет разработчика от ошибок при манипулировании указателями и защищает от проблем, возникающих из-за низкоуровневой работы с памятью"

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #12, #27, #229, #377

12. Сообщение от alex312 (?), 12-Фев-21, 16:19   +7 +/
тормоза придумали трусы!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #17, #179, #258

13. Сообщение от Аноним (6), 12-Фев-21, 16:20   +5 +/
Самое главное это конечно гаранитии корректности и подход к UB. Еще модель работы с ошибками, и стройная система трейтов, которую так хвалит например Александреску. Но помимо синтаксиса еще есть такие вещи как комьюнити, и инфраструктура вокруг с реестром библиотек с единообразной структурой, тулингом и документацией. Вообще раст это то какими должны быть плюсы если бы им не надо было тянуть лямку обратной совместимости с сями.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #19, #54

14. Сообщение от анон (?), 12-Фев-21, 16:21   +/
Это норм, если не надо работать с ассемблером, а с ассемблером не работает тот, кто пишет либо скрипты, либо велосипед.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #22

15. Сообщение от pushyemail (?), 12-Фев-21, 16:22   +/
Ну, ща начнется... When the shit hits the fan...

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #23

17. Сообщение от анон (?), 12-Фев-21, 16:23   –2 +/
даешь раст для тех, кто не может осилить си, и синтекс жавы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #189

18. Сообщение от ryoken (ok), 12-Фев-21, 16:23   +2 +/
Да тьфу на вас. Опять пересобираться часа 3 будет...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #246

19. Сообщение от Аноним (3), 12-Фев-21, 16:24   +3 +/
Идея подобного языка действительно выглядит хорошей и нужной, но когда язык развивается не целым сообществом, а мозилой... Да и молод он ещё. Те же си и плюсы многими годами развивались, тестировались, проходили целый практический путь до становления тем, чем они стали. Хотя всё же скажу, что возможность компилить си в плюсах очень удобная, системщикам не особо нужен мудрёные плюсы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #28

20. Сообщение от ДмитрийСССР (?), 12-Фев-21, 16:26   +9 +/
Почему в последнее время на opennet так форсится эта тема? В какую новость не зайди в комментария обязательно будет упоминание Rust, прям как идол которому надо поклоняться. Что происходит? Складывается впечатление, что кроме Rust ничего в мире больше не развивается и не на чём больше не пишут...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #25, #30, #32, #33, #173

21. Сообщение от acroobat (?), 12-Фев-21, 16:28   +1 +/
Язык будущего. Всех раст-оманов с релизом.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #65, #174

22. Сообщение от Аноним (22), 12-Фев-21, 16:31   +/
Ну это уже другое дело и не кросс-платформенное.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #26

23. Сообщение от A.Stahl (ok), 12-Фев-21, 16:31   –3 +/
Раcтомани кодять, вилазяють очi...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

25. Сообщение от Аноним (64), 12-Фев-21, 16:33   +3 +/
Если коротко: слишком кричащий пиар был у раста, что это убийца всего чего можно, у людей вспыхнуло, но отпустить их так и не может, дотлевают на опеннете.
А так о расте первыми заводят разговор только хейтеры и тролли.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #36

26. Сообщение от Аноним (22), 12-Фев-21, 16:33   +/
Хотя в Го можно получить листинг на асм и подпилить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #39

27. Сообщение от Аноним (35), 12-Фев-21, 16:35   +/
А вот для того чтобы не делать "других ошибок" и нужна голова программиста.
Rust же голову человека разгружает, т.к. не надо отвлекаться и думать о безопасной работе с памятью, потоками и UB - как это бывает когда пишешь что-то серьёзное на C++.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #264

28. Сообщение от Аноним (6), 12-Фев-21, 16:35   +/
Так раст же развивается сообществом. Недавно туда вошли еще участники из гугла, майкрософта, авс. Да, язык молод - это факт, но очень быстро развивается.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #42

29. Сообщение от Ordu (ok), 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

?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #35, #46, #63, #64, #73, #77

30. Сообщение от Аноним (62), 12-Фев-21, 16:36   +6 +/
> на opennet так форсится эта тема?
> обязательно будет упоминание Rust, прям как идол которому надо поклоняться

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #218

31. Сообщение от Аноним (22), 12-Фев-21, 16:36   +/
"Ржавчинные грибы обычно произрастают на надземных частях различных растений. Большинство из них погибает, когда растения отмирают, однако существуют и многолетние виды. Некоторые ржавчинные зимуют в корнях растений. Мицелий без пряжек, его тяжи располагаются между клетками растения-хозяина. Распространены по всему миру, вызывают серьёзные болезни цветковых и папоротниковидных растений."
Ответить | Правка | Наверх | Cообщить модератору

32. Сообщение от Аноним (35), 12-Фев-21, 16:38   +/
Да просто Rust молодой ЯП и сейчас активно набирает кодовую базу.
Потому каждая более-менее внятная поделка (а иногда - и изделие!) на нём генерит новость.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #108

33. Сообщение от Аноним (45), 12-Фев-21, 16:38   +5 +/
Нет, всё начинается с обсирания языка. Наглядный пример - новость про GTK 4.0.1. Хейтеры ни к селу ни к городу приплели "убогость" раста, хотя никто и не упоминал его до этого, тем самым был спровоцирован срач, скрытый модераторами.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #47, #162, #226

34. Сообщение от Аноним (42), 12-Фев-21, 16:39   –3 +/
> Автоматическое управление памятью

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #38

35. Сообщение от Аноним (35), 12-Фев-21, 16:40   +6 +/
Чувак, а ты давно собеседование по C++ проходил?
Хоть понимаешь что и почему в твоём коде происходит?)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #43, #57

36. Сообщение от Аноним (45), 12-Фев-21, 16:41   +2 +/
Я понимаю, что Вы не хейтер, но о якобы пиаре говорят только хейтеры, потому что до сих пор не привели ни одной ссылки на этот самый пресловутый пиар. Если у Вас есть, поделитесь, пожалуйста. И если приведёте, скажите, чем это отличается от анонса или обычной новости о фичах инструмента.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #61

37. Сообщение от Аноним (42), 12-Фев-21, 16:42   –1 +/
> Преимущества async также пропадают в случае привязки потока к одному ядру

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #41, #266, #306

38. Сообщение от Аноним (45), 12-Фев-21, 16:44   –6 +/
Приведите, пожалуйста, ссылочку на 5-минутный туториал по автоматическое управление памятью в C++, а то когда я его изучал, преподы сказали, что память течёт. Как сделать, чтобы не текла, конечно же не рассказали - студенчество в России.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #59, #138, #187, #228, #232

39. Сообщение от Аноним (45), 12-Фев-21, 16:45   –3 +/
А в каком зрелом компилируемом языке нет инструментов для получения листинга на АСМ? Как будто Го какой-то уникальный в этом плане.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

40. Сообщение от Аноним (45), 12-Фев-21, 16:46   –2 +/
Да, они просто отращивают бороду. Не в пол, а чтобы была.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

41. Сообщение от Аноним (62), 12-Фев-21, 16:47   +/
Написано же дальше, в чем разница

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #67

42. Сообщение от Аноним (42), 12-Фев-21, 16:49   +1 +/
> Да, язык молод - это факт, но очень быстро развивается.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #45

43. Сообщение от Аноним (45), 12-Фев-21, 16:50   +2 +/
Нормальный вопрос. Ты давно продакшн код писал? Он требует мыслительного процесса не о том, как не выстрелить в ногу ЯП, а о бизнес процессах. Заказчики платят деньги именно за бизнес-логику, а не инфраструктурный код или бойлерплейт. В конкретном приведённом примере прекрасно показана явно лишняя и совершенно ненужная когнитивная нагрузка на и так занятые мозговые ресурсы разработчика.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #49, #51

44. Сообщение от Аноним (44), 12-Фев-21, 16:52   +2 +/
> Пять директоров представляют интересы компании AWS, Huawei, Google, Microsoft и Mozilla, ставших учредителями и спонсорами Фонда
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #69, #71

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #53, #56

46. Сообщение от Аноним (42), 12-Фев-21, 16:57   +2 +/
> Два объекта типа Test создаётся...

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #52, #58

47. Сообщение от Аноним (-), 12-Фев-21, 16:57   +/
> Троллей не кормить, против них есть ссылочная кнопка "к модератору".

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #223

49. Сообщение от Школьник (ok), 12-Фев-21, 16:57   +2 +/
Конкретно в этом примере дело не столько в C++, сколько в том, что вопрошающий в принципе не знает его основ. Плюсы много за что можно критиковать, но в этом коде критиковать особо не за что.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #60

50. Сообщение от Аноним (45), 12-Фев-21, 16:58   –3 +/
Чувак, мы в новости про твой C++ не лезем и не обсираем его, так и ты не поливай здесь, новость не интересна - пропустил.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #86

51. Сообщение от Аноним (42), 12-Фев-21, 16:59   +2 +/
> В конкретном приведённом примере прекрасно показана ...

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

52. Сообщение от Аноним (45), 12-Фев-21, 17:00   –1 +/
Девочка, а ты точно читала вопрос? Или хотя бы пробовала понять почему такие вопросы задаются? Люди работают, на работе нужно писать код. А какой код нужен, я чуточку выше уже достаточно ясно обозначил.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #55

53. Сообщение от Аноним (42), 12-Фев-21, 17:01   +/
Линус в одиночку за год (!) продвинулся от концепции оси до работающей X Window System.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #62, #68

54. Сообщение от Gemorroj (ok), 12-Фев-21, 17:01   +/
> раст это то какими должны быть плюсы

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

55. Сообщение от Аноним (42), 12-Фев-21, 17:04   +2 +/
> почему такие вопросы задаются?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #82

56. Сообщение от Michael Shigorinemail (ok), 12-Фев-21, 17:05   +/
Вы когда-нибудь что-нибудь сколь-нибудь заметное проектировали?  Такое ощущение, что нет -- и потому неспособны осознать, что такие "первые 7 лет" -- наиболее спокойное время, потому что никто не капает на мозги и можно спокойно поразмыслить о том, что это будет.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #141

57. Сообщение от Ordu (ok), 12-Фев-21, 17:06   +/
> Чувак, а ты давно собеседование по C++ проходил?

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #94

58. Сообщение от Ordu (ok), 12-Фев-21, 17:07   –2 +/
>> Два объекта типа Test создаётся...
> Мальчик, а ты точно знаешь Си++?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #85

59. Сообщение от Аноним (42), 12-Фев-21, 17:07   +/
Где учился? Математик-информатик? Тогда понятно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #79, #87, #261

60. Сообщение от Ordu (ok), 12-Фев-21, 17:10   +3 +/
> Конкретно в этом примере дело не столько в C++, сколько в том,
> что вопрошающий в принципе не знает его основ. Плюсы много за
> что можно критиковать, но в этом коде критиковать особо не за
> что.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #75, #120

61. Сообщение от анон (?), 12-Фев-21, 17:10   +/
Заходишь на реддит, ищешь раст комьюнити, грепаешь список подписонов.
Заходишь на технические сабреддиты, грепаешь самые заминусованные комментарии, собирешь ники.
Удивляешься сорокам процентам ни с чем не коррелирующим совпадением, продолжаешь верить в отсутствие рептилоидов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #154

62. Сообщение от Аноним (62), 12-Фев-21, 17:11   +5 +/
> Линус в одиночку за год

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53

63. Сообщение от San (??), 12-Фев-21, 17:11   +1 +/
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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #72, #74

64. Сообщение от Аноним (64), 12-Фев-21, 17:11   +1 +/
Я конечно могу ошибаться, на плюсах только учился, а не программировал, но при конструкции "Test a = Test(std::string("first"));" происходит copy объекта, а не move, как в расте, потому и освобождает 2 раза. Если явно указать перемещение объекта, то возможно и 1 раз освободит (у меня нет желания проверять, я просто воздух тут сотрясаю).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #76, #91, #122

65. Сообщение от Аноним (42), 12-Фев-21, 17:12   +/
> Язык будущего

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #70

67. Сообщение от Аноним (42), 12-Фев-21, 17:14   –3 +/
> Преимущества async также пропадают

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #80

68. Сообщение от Аноним (45), 12-Фев-21, 17:14   –5 +/
Раз Вы прекрасно осведомлены в биографии Торвальдса, то знаете, что он один из единиц гениев на Земле, кому прощают любую его токсичность. Посмотрите на любые другие примеры, везде создателя стыдили или даже выгоняли. Даже того же "единого диктатора" сместили, хотя это противоречит наполовину негласному соглашению. Торвальдс же на месте, занимается любимым деломм, чему Вы являетесь свидетелем.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #126

69. Сообщение от Аноним (42), 12-Фев-21, 17:15   +2 +/
"независимый" язык :) "свободное" сообщество :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #178

70. Сообщение от acroobat (?), 12-Фев-21, 17:15   –1 +/
Огнелиса чтоль?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #96

71. Сообщение от Аноним (71), 12-Фев-21, 17:16   +/
У фонда финансирование 1 миллион долларов в год. На такое можно нанять трех вменяемых программистов в долине. Или десять в США. Но все деньги всё равно пойдут не на программистов, а на менеджеров. Которые будут внушать легковерным фракталятам как всё круто.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #100

72. Сообщение от Аноним (42), 12-Фев-21, 17:17   +/
Растаманам это не понять, что программа делает ровно то, что выдумал погромист.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

73. Сообщение от Школьник (ok), 12-Фев-21, 17:19   +5 +/
Там всё правильно, никто там ничего не "забывал", естественно.

Сначала вызывается конструктор объекта 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, перезаписанную ранее методом присваивания.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #78, #81

74. Сообщение от Ordu (ok), 12-Фев-21, 17:20   –2 +/
> 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 содержит всяких ресурсов, которые надо почистить обязательно -- возможно это указатели, может файловые дескрипторы, или всё что угодно ещё.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63 Ответы: #90, #139

75. Сообщение от Школьник (ok), 12-Фев-21, 17:20   +/
>Где ты там увидел критику, родный? У вас мнительность отклеилась.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60 Ответы: #113

76. Сообщение от Аноним (42), 12-Фев-21, 17:21   +/
Вы что, совсем не знаете, как конструкторы в С++ работают?!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #84

77. Сообщение от Кир (?), 12-Фев-21, 17:23   +1 +/
Ссылочная модель головного мозга детектед.

int a = 10;
a = 20;

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #83

78. Сообщение от Аноним (42), 12-Фев-21, 17:24   +/
Это слишком сложно для растаманов :) Они сами придумывают байки у себя в голове вместе с тараканами.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73

79. Сообщение от Аноним (64), 12-Фев-21, 17:24   +1 +/
Ну ясно, ну понятно.
Я не знаю, как у человека выше проходила учёба, но у меня лично на магистратуре (нет, не на математика-информатика) это было так: пытались обучить С# и какого было мое удивление, когда препод просто элементарно гуглил, почему у него выдаёт ошибку в строке: double x = 5;
Так что ты учиться можешь в хорошем универе питера, а препод не знает элементарного синтаксиса языка или как некоторые вместо своих лекций по "Теории принятия решений" выдают чужой урезанный конспект, где не может пояснить за матрицы нечеткого отношения предпочтения и весовые коэффициенты экспертов (господи, у меня по сей день горит с последнего).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59 Ответы: #93, #130, #262

80. Сообщение от Аноним (62), 12-Фев-21, 17:25   +2 +/
Карл, ты задавал вопрос, в чем разница, понимаешь?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #98

81. Сообщение от Ordu (ok), 12-Фев-21, 17:26   –2 +/
> Там всё правильно, никто там ничего не "забывал", естественно.

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73 Ответы: #107, #114, #124, #133

82. Сообщение от Аноним (45), 12-Фев-21, 17:26   –1 +/
Прямо сейчас лично Вы и Школьник доказали то, что растохейтеры утверждают про наше сообщество - токсичность, т.е. вместо короткого ответа (а Вы ведь знаток, да и пример тривиальный), Вы сначала обвиняете человека, написавшего код на обожаемом Вами языке, в том, что он " не знающий школьник" и "безграмотный". А уже потом приходят адекватные плюсовики и отвечают на заданный ВОПРОС.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55

83. Сообщение от Ordu (ok), 12-Фев-21, 17:27   +/
> Ссылочная модель головного мозга детектед.
> int a = 10;
> a = 20;
> Чему равна переменная a после присваивания?

3.14?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77 Ответы: #88, #89, #170

84. Сообщение от Аноним (64), 12-Фев-21, 17:27   +/
Лично я плюсы не осилил. Не вижу в этом ничего плохого.
Выше никто не написал ответа, я предположил (причём обозначил, что не знаток С++), какие могут быть вопросы? Может быть лично Вы дадите развёрнутый ответ?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

85. Сообщение от null (??), 12-Фев-21, 17:29   +/
мож, надо посмотреть на конструктор копирования? сам я С++ не знаю, так что претензии не принимаются
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58

86. Сообщение от Аноним (42), 12-Фев-21, 17:29   +/
Ну, немного выше растаман уже пытался обсирать С++, но в результате обдристался сам.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #92

87. Сообщение от Аноним (45), 12-Фев-21, 17:31   –4 +/
Интересно. За все комментарии к этой новости Вы не дали ни одного содержательного (не ответил на конкретные вопросы), при этом успели натоксить на целое сообщество.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59

88. Сообщение от Кир (?), 12-Фев-21, 17:31   +2 +/
Чётче вроде некуда, если не понимаешь, учи матчасть, я тут бессилен.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83 Ответы: #99

89. Сообщение от Аноним (42), 12-Фев-21, 17:31   +1 +/
Да ты, оказывается, даже не знаешь понятий "значение" и "ссылка"...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83 Ответы: #143

90. Сообщение от San (??), 12-Фев-21, 17:32   +1 +/
Ниже описали, почему два раза освобождается second. А GC в С++ нет. Удаление объекта first на совести программиста (перед тем как присвоить "a" новое значение).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74 Ответы: #97

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #111

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86

93. Сообщение от Аноним (42), 12-Фев-21, 17:34   –1 +/
А потом вот такие преподы сочиняют всякие расты и льют муть про другие языки, которые они не осилили даже открыть синтаксис почитать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79 Ответы: #112, #257

94. Сообщение от Аноним (35), 12-Фев-21, 17:34   +1 +/
Если не собираешься - то не пиши на C++. И на Rust тоже не пиши. И там, и там думать надо.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57 Ответы: #101

95. Сообщение от Аноним (95), 12-Фев-21, 17:37   +2 +/
Визуально, код на С++ воспринимается лучше и проще, чем на Rust.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #125, #217, #346

96. Сообщение от Аноним (42), 12-Фев-21, 17:37   +3 +/
> белого
> Огнелиса чтоль?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70 Ответы: #103

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90 Ответы: #106, #110

98. Сообщение от Аноним (42), 12-Фев-21, 17:39   –1 +/
> ты задавал вопрос, в чем разница

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80 Ответы: #165

99. Сообщение от Аноним (45), 12-Фев-21, 17:40   –2 +/
Кир, ответ, на заданный Вами вопрос 20.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88 Ответы: #129, #131

100. Сообщение от Аноним (42), 12-Фев-21, 17:41   +3 +/
> У фонда финансирование 1 миллион долларов в год.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71 Ответы: #169

101. Сообщение от Ordu (ok), 12-Фев-21, 17:41   +/
> Вот, чтобы даже искать на надо было:
> https://en.cppreference.com/w/cpp/language/copy_constructor
>>Implicitly-declared copy constructor

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94 Ответы: #104, #121

103. Сообщение от acroobat (?), 12-Фев-21, 17:45   –2 +/
> белого пушистого лиса

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96 Ответы: #277

104. Сообщение от Аноним (42), 12-Фев-21, 17:46   +/
> как заставить деструктор отработать вовремя?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101 Ответы: #109

105. Сообщение от Аноним (112), 12-Фев-21, 17:46   +/
Вот групые, надо было указать, что версия "150"
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #117, #202

106. Сообщение от Аноним (106), 12-Фев-21, 17:47   +1 +/
>> Мне надо вызвать деструктор.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97

107. Сообщение от Аноним (107), 12-Фев-21, 17:48   +/
Ты не на тот деструктор тыкаешь.
Запрети все неиспользуемые тобой конструкторы, деструкторы и операторы копирования, а потом принтфами отлаживайся.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81

108. Сообщение от Аноним (112), 12-Фев-21, 17:49   +4 +/
Да тьфу на вас
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

109. Сообщение от Ordu (ok), 12-Фев-21, 17:49   +/
>> как заставить деструктор отработать вовремя?
> Все деструкторы из твоего примера отработали вовремя, ровно как ты написал.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104

110. Сообщение от Аноним (42), 12-Фев-21, 17:50   +/
> Мне надо вызвать деструктор

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97 Ответы: #115

111. Сообщение от Аноним (42), 12-Фев-21, 17:52   –1 +/
Тебе Школьник подробно разжевал, но ты так и не можешь допереть, что чушь сморозил...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91 Ответы: #118

112. Сообщение от Аноним (112), 12-Фев-21, 17:52   +5 +/
А потом всякие деятели пишут библиотеки для серьёзных вычислений на питоне
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #93 Ответы: #158

113. Сообщение от Ordu (ok), 12-Фев-21, 17:55   +1 +/
>>Где ты там увидел критику, родный? У вас мнительность отклеилась.
> Наверное, вот здесь:
>>>Содержимое куска изменилось при присваивании, и но C++ не заметил этого
>>>поздно пить боржоми

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75

114. Сообщение от Аноним (42), 12-Фев-21, 17:55   +/
> вызвать деструктор

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81 Ответы: #119

115. Сообщение от Ordu (ok), 12-Фев-21, 17:57   +/
>> Мне надо вызвать деструктор
> Он у тебя и вызывается. Ровно столько и там, как ты написал.
> Все претензии - к себе задавай. В исполнении твоей программы нет
> никаких ошибок.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110 Ответы: #145

116. Сообщение от SinoptikU (?), 12-Фев-21, 17:58   +/
С Rust моя жизнь изменилась!))) Молодцы!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #155, #172

117. Сообщение от Аноним (42), 12-Фев-21, 17:59   –3 +/
Погоди, растаманы ещё не созрели до такого, всего-то 15 лет пилят свой раст.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105 Ответы: #153

118. Сообщение от Ordu (ok), 12-Фев-21, 17:59   +/
> Тебе Школьник подробно разжевал, но ты так и не можешь допереть, что
> чушь сморозил...

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #168

119. Сообщение от Ordu (ok), 12-Фев-21, 18:01   –1 +/
>> вызвать деструктор
> Ты что, сейчас будешь по всем спекам С++ тупые вопросы спрашивать?

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

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

Расскажи.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #114

120. Сообщение от заминированный тапок (ok), 12-Фев-21, 18:01   +1 +/
>Там задан ВОПРОС. Как сделать чтобы оно работало так, как мне надо.

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

// 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...
*/

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60 Ответы: #123

121. Сообщение от Аноним (35), 12-Фев-21, 18:10   +1 +/
Хорошо, вот ещё подсказка
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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101 Ответы: #128

122. Сообщение от Ordu (ok), 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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64

123. Сообщение от Ordu (ok), 12-Фев-21, 18:14   +/
Да, я думал об этом варианте, но он мне не нравится, потому что приходится тормозную кучу дёргать. У тебя код аж дважды её дёргает (даже четыре раза: free иногда оказывается тормознее, чем alloc).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #120 Ответы: #144, #357

124. Сообщение от Маняним (?), 12-Фев-21, 18:17   +2 +/
> Ну, и? Перегружать operator=? Как из оператора = вызвать деструктор для self^W this?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81 Ответы: #134

125. Сообщение от Аноним (125), 12-Фев-21, 18:22   +2 +/
Я считаю наоборот
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95 Ответы: #177

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68 Ответы: #132, #150

127. Сообщение от Аноним (-), 12-Фев-21, 18:23   +1 +/
Мужыки нашего колхоза сумневайуться. Люди говорят што без интырнета исходники на Расте нельзя скомпилировать!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #215, #335

128. Сообщение от Ordu (ok), 12-Фев-21, 18:25   +1 +/
> Хорошо, вот ещё подсказка
> https://en.cppreference.com/w/cpp/language/copy_elision

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #121

129. Сообщение от Кир (?), 12-Фев-21, 18:28   +2 +/
Вопрошающий имел в виду что-то вроде такого:

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99

130. Сообщение от Аноним (-), 12-Фев-21, 18:29   –7 +/
Ты чо не понял, это Россия!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79 Ответы: #203

131. Сообщение от Кир (?), 12-Фев-21, 18:37   +/
> Хотя лично я считаю, что приведённый Вами пример совершенно не показывает разницы между ссылочными и значимыми типами разных ЯП, везде результат будет одинаковый

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #135

132. Сообщение от Аноним (45), 12-Фев-21, 18:37   +/
Я и фильм смотрел и знаю, что по вроождении некоторого времени Линус признавал, что в такой-то ситуации был не прав.

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #142

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81 Ответы: #137

134. Сообщение от Ordu (ok), 12-Фев-21, 18:55   –1 +/
>> Ну, и? Перегружать 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.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #124

135. Сообщение от Аноним (45), 12-Фев-21, 19:05   +/
Именно приведённый Вами пример (я выделил это) разницы не показывает:
int a = 10;
a = 20;

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #131 Ответы: #159

136. Сообщение от александреску (?), 12-Фев-21, 19:05   +1 +/
был уже такой раст, тут же, на опеннете. точно с таким же апломбом.
Язык назывался D.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #325, #348

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

Угу. Понял.

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #133 Ответы: #146

138. Сообщение от Аноним (138), 12-Фев-21, 19:07   +/
Гугли shared_ptr, unique_ptr, weak_ptr
Плюсы в вузах учат плохо (возможно очень)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #200, #206

139. Сообщение от yet another anonymous (?), 12-Фев-21, 19:08   +1 +/
> ... Представь что a -- это член класса. Мне надоело его значение, и я хочу заменить
> его на другое. Но при этом a содержит всяких ресурсов, которые надо почистить
> обязательно -- возможно это указатели, может файловые дескрипторы, или всё что угодно ещё.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74

140. Сообщение от александреску (?), 12-Фев-21, 19:09   +/
>удалось запустить только 80 тысяч Linux-потоков

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

Ответить | Правка | Наверх | Cообщить модератору

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56

142. Сообщение от Школьник (ok), 12-Фев-21, 19:13   +1 +/
> Я и фильм смотрел и знаю, что по вроождении некоторого времени Линус
> признавал, что в такой-то ситуации был не прав.

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

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

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

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132 Ответы: #147

143. Сообщение от Аноним (45), 12-Фев-21, 19:16   –1 +/
Вы вообще ветку читали? Или на любое его сообщение будете бессмысленно токсить?

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89 Ответы: #152

144. Сообщение от Аноним (42), 12-Фев-21, 19:23   +/
Странный ты какой-то... Заставляешь компилятор делать какую-то чушь из твоей головы. Растаманы - они все такие? Тогда осталось только помолиться, чтобы растокод не оказался в критичных системах.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123 Ответы: #156

145. Сообщение от Аноним (42), 12-Фев-21, 19:24   +/
> нельзя так сделать

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #115 Ответы: #149

146. Сообщение от Школьник (ok), 12-Фев-21, 19:25   +2 +/
> Мне это непонятно. Что-то бумкнуло и C++ фаны рванулись обсуждать личности, будто
> они по жизни не программисты, а психологи.

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #137

147. Сообщение от Аноним (45), 12-Фев-21, 19:31   +/
Ладно, подмена понятий, так подмена понятий. Будем использовать Ваши термины.

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #142 Ответы: #185

148. Сообщение от Аноним (-), 12-Фев-21, 19:31   +1 +/
1.5 означает 15 лет разработки?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #157, #233

149. Сообщение от Аноним (45), 12-Фев-21, 19:34   +/
Эм, чушь как раз он позволяет писать, количество его undefined для стажёров и джунов сравнимо с языками со слабой типизацией.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145

150. Сообщение от Ordu (ok), 12-Фев-21, 19:34   +/
> Ему прощают токсичность отнюдь не потому, что он гений. А потому что
> большим дядям, которым нужна его работа и которые платят ему зарплату,
> понятно, что никто не сможет делать то, что он делает, с
> тем же качеством и за те же деньги. Его можно заменить,
> но во что встанет замена его работодателям? В огромные деньги и
> в потерю качества того продукта, разработкой которого он заправляет.

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #188

152. Сообщение от Аноним (42), 12-Фев-21, 19:37   +/
> Человек сказал, что делает приведённый код.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #143 Ответы: #160

153. Сообщение от йо ж (?), 12-Фев-21, 19:38   –1 +/
кстати, така ж фигня с перлом. только не пилят, а хоронят.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #117

154. Сообщение от Аноним (45), 12-Фев-21, 19:39   +/
То есть пресловутые минусы на рандомных темах == пиар раста?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61 Ответы: #231

155. Сообщение от Аноним (42), 12-Фев-21, 19:41   +/
Напомнило рекламу гербалайфа.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116

156. Сообщение от Ordu (ok), 12-Фев-21, 19:42   +/
> Странный ты какой-то... Заставляешь компилятор делать какую-то чушь из твоей головы. Растаманы
> - они все такие? Тогда осталось только помолиться, чтобы растокод не
> оказался в критичных системах.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #144

157. Сообщение от Аноним (42), 12-Фев-21, 19:43   +/
Да, по 0.1 прибавляли.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #148 Ответы: #198

158. Сообщение от анонимуслинус (?), 12-Фев-21, 19:44   +2 +/
технически вопрос не в питоне. он просто более простой инструмент. вот и все. технически он просто удобнее что раста , что с++. именно в науке имею ввиду. для высоконагруженных вычислений с большими объемами данных на  больших кластерных серверах вероятно все же будут писать на компилируемых языках. технически , что раст , что с++ просто инструменты. просто на с++ накрутили столько разных дополнений, что из обычного ключа он превратился в ключ с кучей прибамбасов, с часто непонятными свойствами или применениями. раст моложе и менее усложнен, но идет по тому же пути в желании стать популярным. хотя это наверное свойство всех языков программирования стремящихся быть "всеобемлющими".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112

159. Сообщение от Кир (?), 12-Фев-21, 19:45   +/
А, вы про этот пример, пардон. В нём вроде достаточно толстый намек на копирование по значению, разве нет? В паре с обсуждаемым выше кодом есть о чем задуматься. Или я должен был изложить стандарт C++ в полном объёме?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135 Ответы: #242

160. Сообщение от Аноним (45), 12-Фев-21, 19:46   +/
Перечитайте ветку, если не понимаете.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #152

161. Сообщение от ИмяХ (?), 12-Фев-21, 19:50   –3 +/
>>Автоматическое управление памятью

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #163

162. Сообщение от ИмяХ (?), 12-Фев-21, 19:52   –2 +/
>>кстати, никто всерьёз так не делал ни на одной новости

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

163. Сообщение от Аноним (42), 12-Фев-21, 19:53   –3 +/
Да нет там у них никакой автоматики... Забыл освободить память - утекла. Всё через явные манипуляции делается. Вот в самом начале растаман офигевает, что в С++ не надо деструктор руками вызывать! Растаман хочет вызвать деструктор сам (привык, однако, к расту).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #161 Ответы: #212, #216, #263

164. Сообщение от Аноним (170), 12-Фев-21, 19:57   –1 +/
Язык, на котором невозможно реализовать ряд алгоритмов, не может считаться полноценным.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #182, #192, #211

165. Сообщение от Аноним (165), 12-Фев-21, 20:01   +1 +/
>> Преимущества async также пропадают в случае привязки потока к одному ядру
> Ух, ты! А если нет разницы, зачем использовать async? И тут же всплывает вопрос, а не привязкой
> ли к ядру сделан "быстрый" async?

Я даже выделю

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #98

166. Сообщение от Аноним (170), 12-Фев-21, 20:03   –3 +/
Под воздействием шумихи и пиара взялся изучать этот с позволения сказать язык. Оказалось, что это тупо аналог уникальных и умных указателей из C++
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #181, #278

167. Сообщение от Аноним (167), 12-Фев-21, 20:06   +2 +/
Лучше бы Zig так хайпили.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #171, #234, #295

168. Сообщение от пердёжник (?), 12-Фев-21, 20:15   –1 +/
Вы там на c++ всегда так программы из 4 строчек пишите?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #118 Ответы: #175

169. Сообщение от AnonymPatient (?), 12-Фев-21, 20:18   –1 +/
>Это еле-еле разделится на 10 директоров фонда.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #100

170. Сообщение от Аноним (170), 12-Фев-21, 20:19   +2 +/
Ты такой тупой, просто жесть. Тебе же четко объяснили, что ты изменил содержимое объекта пред его уничтожением. Деструкторы обоих объектов вызываются. Просто у них содержимое одинаковое после твоего присваивания
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83 Ответы: #180

171. Сообщение от Аноним (171), 12-Фев-21, 20:21   +/
Кому лучше?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #167 Ответы: #235

172. Сообщение от Аноним (170), 12-Фев-21, 20:22   +/
В худшую или в лучшую сторону?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116 Ответы: #341

173. Сообщение от Сишник (?), 12-Фев-21, 20:26   +/
Ну дык неудивительно, множество любителей хруста сильно пересекается с множеством лгбтшников, сжв, блмщиков возможно даже более, чем с множеством тем кто вообще хоть как-то кодить умеет. Как тут не быть срачам? Вот например, вышла новость с нововведениями языка, теоретически здесь должны были отметиться пишущие на расте растоманы, пообсуждать нововведения, но нет же, никому это неинтересно - то ли растоманы на опеннете ненастоящие, то ли нововведения яйца выеденного не стоящие.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

174. Сообщение от Аноним (174), 12-Фев-21, 20:46   +/
>Язык будущего

Не каркай.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21

175. Сообщение от Ordu (ok), 12-Фев-21, 20:49   +1 +/
> Вы там на c++ всегда так программы из 4 строчек пишите?

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #168 Ответы: #205

177. Сообщение от Аноним (71), 12-Фев-21, 21:26   +1 +/
Я считаю наоборот
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #125 Ответы: #250

178. Сообщение от proninyaroslavemail (ok), 12-Фев-21, 21:30   +1 +/
Так можно сказать про любой опенсорс проект. Любой мало мальский популярный спонсируется кем-либо, а не голым энтузиазмом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #241

179. Сообщение от Sw00p aka Jerom (?), 12-Фев-21, 21:31   –1 +/
а толку от тормозов если есть понятие тормозного пути :) все равно собьешь пешехода.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #385

180. Сообщение от Ordu (ok), 12-Фев-21, 21:32   +/
> Ты такой тупой, просто жесть. Тебе же четко объяснили, что ты изменил
> содержимое объекта пред его уничтожением. Деструкторы обоих объектов вызываются. Просто
> у них содержимое одинаковое после твоего присваивания

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #170 Ответы: #183

181. Сообщение от Аноним (42), 12-Фев-21, 21:37   –3 +/
Это уже норма: взять готовое, источник - обгадить, самим пропиариться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #166

182. Сообщение от Аноним (42), 12-Фев-21, 21:39   –2 +/
> невозможно реализовать ряд алгоритмов

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #164

183. Сообщение от Кир (?), 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;
}


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #180 Ответы: #194

184. Сообщение от Иваня (?), 12-Фев-21, 21:52   +/
Снова этот раст... когда уже opennet перепишут на безопасный раст? :)
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #236, #351

185. Сообщение от Школьник (ok), 12-Фев-21, 22:29   +/
> Ладно, подмена понятий, так подмена понятий. Будем использовать Ваши термины.

Где подмена?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #147

187. Сообщение от Аноним (187), 12-Фев-21, 22:43   +/
> преподы сказали

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

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

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #150

189. Сообщение от Аноним (187), 12-Фев-21, 22:46   +1 +/
Интеллектуальные и административные проблемы не решаются техническими средствами.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #208, #220

190. Сообщение от Аноним (190), 12-Фев-21, 22:52   +/
за такой синтаксис надо отрывать ру.., но.. и прочие части тела
интересно, сколько раз в день средний программист пишет слово function?
если больше 1000, то тогда сокращение до fn возможно оправдано.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #191, #237, #309, #352

191. Сообщение от Аноним (42), 12-Фев-21, 22:53   +1 +/
подсказка: int main()
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #190

192. Сообщение от Анонович (?), 12-Фев-21, 23:12   +1 +/
Например, каких?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #164 Ответы: #195, #210

194. Сообщение от Ordu (ok), 12-Фев-21, 23:24   +/
> Может это хоть как-то поможет:

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

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

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

int a = 2;
a = 7;

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #183 Ответы: #201, #207

195. Сообщение от Аноним (42), 12-Фев-21, 23:41   –4 +/
Всё, что делается на расте - только обёртки вокруг асма или си.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #192

197. Сообщение от Аноним (45), 12-Фев-21, 23:54   +/
Мне уже кажется, что Школьник и Аноним (42) - один и тот же человек, пишущий то с ПК, то с мобильного устройства.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору

198. Сообщение от Аноним (198), 12-Фев-21, 23:54   +/
наливали, будь точнее. смотри синтаксис какой, на трезвую голову такой не придумаешь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #157 Ответы: #213

199. Сообщение от name (??), 12-Фев-21, 23:55   +1 +/
пока люди заняты растом, они не пишут такой же плохой код на других языках
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #353

200. Сообщение от Аноним (45), 13-Фев-21, 00:04   –1 +/
Спасибо (без шуток) за адекватный ответ. К сожалению, давно неактуально.

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

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

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


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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #138

201. Сообщение от Кир (?), 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 тут и не пахнет. Если до тебя и сейчас не дошло, я умываю руки.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #194 Ответы: #204, #222

202. Сообщение от Аноним (112), 13-Фев-21, 00:45   +/
Версия 100500 круче
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105

203. Сообщение от Aukamo (ok), 13-Фев-21, 00:46   +/
В Украине также. Только, давайте на чистоту: от студентов также много чего зависит. Люди желающие учится, а не протирать штаны на парах, учат то что им надо, потом идут на олимпиады и прочего рода соревнования, повышая авторитет\прибыль учебного заведения. И далее, уже для этих студентов в учебном заведении создают рабочие места и нанимают нужных специалистов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #130 Ответы: #378

204. Сообщение от Кир (?), 13-Фев-21, 00:48   +/
Подумалось, может тебя смущает это:


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

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


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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #201 Ответы: #221

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #175 Ответы: #214

206. Сообщение от Aukamo (ok), 13-Фев-21, 01:02   +/
borrow checker фишка которой у плюсов нет. Прежде чем писать что-то в ответ, изучите вопрос на предмет "что это такое и зачем надо?".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #138 Ответы: #240

207. Сообщение от Alkog (?), 13-Фев-21, 01:05   +/
> То есть, дефолтный operator= реализован с нарушением семантики C в пользу каких-то
> там оптимизаций. Это называется Copy Elision.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #194

208. Сообщение от Aukamo (ok), 13-Фев-21, 01:09   +2 +/
Прерву эту волну словами: "пишите на байткоде", благо документация для работы с микроконтроллерами\микропроцесорами имеется. Дело за малым, дерзайте!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #189 Ответы: #345

209. Сообщение от Aukamo (ok), 13-Фев-21, 01:20   +/
Меня больше волнует чтобы в 0.15 этой ошибки небыло https://github.com/rust-lang/compiler-builtins/issues/400
Ответить | Правка | Наверх | Cообщить модератору

210. Сообщение от Aukamo (ok), 13-Фев-21, 01:26   +/
Я, когда начинал читать Книгу, столкнулся с проблемой реализации рекурсивного DFS, ибо borrow checker всё время бил по рукам. В последнее время таких проблем не замечал, либо задачи другие либо переболел.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #192 Ответы: #349, #361

211. Сообщение от Аноним (45), 13-Фев-21, 01:34   +1 +/
Даже css теперь можно назвать тьюринг полным языком программирования. Конечно, там всё будет накостылено и громоздко, но Rust язык не таблицы стилей, а мультипарадигменный язык программирования.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #164 Ответы: #267

212. Сообщение от Aukamo (ok), 13-Фев-21, 01:38   +2 +/
Единственное пректическое примерение метода `drop()` котое приходит на ум это использование `Mutex` и то, часто удобнее просто во вложенную область видимости работу с ним засунуть и ограничить время жизни таким образом.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #163

213. Сообщение от Aukamo (ok), 13-Фев-21, 01:42   +/
Читать Войну и Мир надо с начала а не с конца. Вот и Вам советую начать читать Книгу с самого предисловия: https://doc.rust-lang.org/book/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #198

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #205

215. Сообщение от Aukamo (ok), 13-Фев-21, 01:45   +2 +/
cargo может работать в offline режиме используя локальный реестр crate-ов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #127 Ответы: #347

216. Сообщение от Аноним (45), 13-Фев-21, 01:46   +2 +/
Вы прекрасно описали знаменитые free() крестов, поздравляю - перед обсиранием надо было снять с себя низ.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #163 Ответы: #243

217. Сообщение от Aukamo (ok), 13-Фев-21, 01:51   +/
Смотря как писать. `cargo fmt` производит автоматическое форматирование которое не всегда удачное (близжайшая аналогия это история с PEP8 для Python). Но, с другой стороны это убирает проблемы когда в репозиторий попадают безсмысленные коммиты с изменениями в форматировании, символами пробелов в конце строки и т.д.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95 Ответы: #342

218. Сообщение от draw1 (?), 13-Фев-21, 02:14   +2 +/
Ну уж тогда давайте будем чуть более честными...

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #230

219. Сообщение от Аноним (219), 13-Фев-21, 02:54   +1 +/
Интересно, есть ли люди которые добровольно переходят на ЭТО. После такого синтаксиса нужно неделю сишником отпаиваться.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #224, #343

220. Сообщение от анонимуслинус (?), 13-Фев-21, 05:46   +/
они как правило то и решаются техническими(инженерными) средствами. но ты мечтай о своем. все проблемы решаются инженерами от разных отраслей.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #189

221. Сообщение от Ordu (ok), 13-Фев-21, 06:15   +/
Нет, меня не смущает это.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #204

222. Сообщение от Ordu (ok), 13-Фев-21, 06:19   +/
Чукча не читатель, да? Чукча писатель? Ты с кем сейчас и о чём разговаривашь, мальчик? Ты читал комментарий, на который отвечаешь? Какое отношение написанное тобою имеет к моему комментарию, на который ты отвечаешь?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #201 Ответы: #244, #254

223. Сообщение от Аноним (-), 13-Фев-21, 06:23   +/
Сия? Это что литературовед тут нарисавовался. Чмырить хейтеров раста литературно или культурно, изволите?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

224. Сообщение от Аноним (279), 13-Фев-21, 06:25   +/
> есть ли люди которые добровольно переходят на ЭТО.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #219

226. Сообщение от Аноним (-), 13-Фев-21, 06:32   –1 +/
Правильно, а еще перед тем, чтобы что-то сказать ты должен спрашивать разрешения и чистых сишников.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #259

227. Сообщение от Аноним (-), 13-Фев-21, 06:43   +/
Последнее, победное слово!

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #245

228. Сообщение от Lex (??), 13-Фев-21, 08:14   +/
[смутно припоминая плюсЫ]:
Когда нужно выделить - вызываешь new
Когда кусок памяти больше не нужен - вызываешь delete

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #307

229. Сообщение от Fracta1L (ok), 13-Фев-21, 08:41   –2 +/
> Если разработчик совершает ошибки -- ему не место в отрасли, пусть улицы метет

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #239

230. Сообщение от пердёжник (?), 13-Фев-21, 09:30   +2 +/
> Здесь даже в новости про пыху, раст вспомнят и выльют на си мировой океан помоев.

Это не так

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

Это не так

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #218 Ответы: #251

231. Сообщение от Аноним (-), 13-Фев-21, 09:37   +/
В расте все токсичные, иначе такой синтаксис не переварить. Насмотрятся раста и кидаются в злобе на прохожих
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #154 Ответы: #249

232. Сообщение от 6аппппп (?), 13-Фев-21, 09:45   +2 +/
shared / unique ptr и никаких new / delete. А висюны можно и в Rust'те получить, ибо подсчет ссылок он и в Африке.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

233. Сообщение от Анонимъ (?), 13-Фев-21, 09:57   +2 +/
Это как C++, в котором в названии очередного стандарта пишут количество лет, необходимых для беглого изучения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #148 Ответы: #326

234. Сообщение от Аноним (235), 13-Фев-21, 10:49   +/
Он в бете
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #167

235. Сообщение от Аноним (235), 13-Фев-21, 10:50   –1 +/
Он один в один такой же как раст. Единственное что синтаксис по-человечнее. Но он еще не зарелизился.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #171 Ответы: #369

236. Сообщение от Аноним (235), 13-Фев-21, 10:50   +1 +/
Перл безопаснее раста.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #184 Ответы: #336

237. Сообщение от Аноним (235), 13-Фев-21, 10:54   –1 +/
Если ты будешь быстро писать код. Тогда в нем быстро будут появляться дырени. В этом и заключается безопасность раста.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #190

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #248, #268

239. Сообщение от Random (??), 13-Фев-21, 11:18   +1 +/
"С-" тут лишнее, с остальным согласен. )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #229 Ответы: #265

240. Сообщение от Аноним (240), 13-Фев-21, 11:18   –2 +/
Для того, чтобы мешать программисту решить задачу самым оптимальным способом?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #206 Ответы: #280, #383

241. Сообщение от Аноним (240), 13-Фев-21, 11:45   –1 +/
> Пять директоров

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #178

242. Сообщение от Аноним (45), 13-Фев-21, 11:55   +/
> В нём вроде достаточно толстый намек на копирование по значению, разве нет?

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #159

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

244. Сообщение от Аноним (45), 13-Фев-21, 11:58   +/
> Чукча не читатель, да? Чукча писатель?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #222

245. Сообщение от Аноним (245), 13-Фев-21, 12:35   –2 +/
Мы не знаем ни раста ни философии растоманов. Пусть расскажут, тогда поспорим.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #227 Ответы: #247, #272, #289

246. Сообщение от Alladin (?), 13-Фев-21, 13:10   +1 +/
меня веселит опеннет, очередная несвразная чушь...


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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

247. Сообщение от Alladin (?), 13-Фев-21, 13:19   +1 +/
вы случаем не несете чушню?

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #245 Ответы: #252

248. Сообщение от Аноним (248), 13-Фев-21, 13:23   +/
> Как это непонятно?!

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #238 Ответы: #253

249. Сообщение от SlackJiralove (?), 13-Фев-21, 13:32   +/
После лиспа синтаксис раста совсем не страшен, заходит на ура.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #231 Ответы: #281

250. Сообщение от Аноним (251), 13-Фев-21, 13:53   +1 +/
Я считаю наоборот
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #177 Ответы: #304

251. Сообщение от Аноним (251), 13-Фев-21, 14:03   –2 +/
> Здесь даже в новости про пыху, раст вспомнят и выльют на си мировой океан помоев.
>Это не так

Это так

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

Это так

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #230

252. Сообщение от Аноним (-), 13-Фев-21, 14:24   +/
Твой оппонент невежественный. Не обращай на него внимания.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #247

253. Сообщение от Аноним (-), 13-Фев-21, 14:26   +/
Так ведь карго создавался для того чтобы зависимости касались из интернатов и для компиляния без своих ручек.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #248 Ответы: #256

254. Сообщение от Кир (?), 13-Фев-21, 14:30   +/
Ясно, понятно, не помогло. Бывает. Продолжай бредить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #222

255. Сообщение от Плохой Танцор (?), 13-Фев-21, 14:33   –1 +/
Раст может и не плохой, но обилие колючих символов в тексте программы напрягает и отталкивает. "привет мир" смотрится на расте убедительно, чего не скажешь о серьёзных проектах, там все прелести раста теряются за обилием кракозябр и прочей нечитабельной мути. Хотя современный Си++ в плохом смысле даже раст кладёт на лопатки в плане читабельности и очевидности решений при постановке решений самых элементарных задач.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #269

256. Сообщение от Аноним (248), 13-Фев-21, 15:11   +/
Но это не значит, что этим нужно обязательно пользоваться
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #253

257. Сообщение от Проходимец (?), 13-Фев-21, 15:57   +1 +/
Вот ненадо. Самые вменяемые преподы были именно кто "ниасилил" новомодные языки. Они реально разжёвывали как это работает на железном уровне! Что дало понимание когда лучше один алгоритм, а когда быстрей будет другой!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #93

258. Сообщение от Аноним (258), 13-Фев-21, 16:32   +1 +/
>тормоза придумали трусы!

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

259. Сообщение от alex312 (?), 13-Фев-21, 17:36   +/
чистый С - это фантастика !
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #226

261. Сообщение от Бум (?), 13-Фев-21, 17:44   –1 +/
Разве образование имеет значение? В институте учат учиться, дальше человек учится сам. Или вы за всю жизнь только 5 лет учитесь и не более?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59 Ответы: #279

262. Сообщение от Бум (?), 13-Фев-21, 17:51   +/
Так, а что не так со строкой то было?
double x = 5;
Console.WriteLine(x);
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79 Ответы: #299

263. Сообщение от пердёжник (?), 13-Фев-21, 17:52   +1 +/
🤦🏻‍♂️ ой, у вас лёгкое недопонимание вообще всего
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #163

264. Сообщение от Бум (?), 13-Фев-21, 17:58   +1 +/
Для разных задач, разных секторов (веб, клиентский гуй, серверные службы, разовые операции), разных сроков (срочно сделать вчера, за недельку, проект на год), разных команд (один человек, пара спецов, команда) есть разные языки и разные фреймворки! Нужно трезво понимать, что применять в согласно бюджета, сроков и реалий в каждом случае (в плане языка и инфраструктуры). Можно и на PHP писать серьёзные вещи и на C++ писать программульки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

265. Сообщение от анонимуслинус (?), 13-Фев-21, 18:33   +/
> "С-" тут лишнее, с остальным согласен. )

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #239 Ответы: #283

266. Сообщение от Wilem82 (ok), 13-Фев-21, 20:40   +5 +/
Асинк в расте решает две проблемы:

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #367

267. Сообщение от yet another anonymous (?), 13-Фев-21, 20:49   –1 +/
> Rust язык ... мультипарадигменный язык программирования

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #211 Ответы: #332, #350

268. Сообщение от Wilem82 (ok), 13-Фев-21, 20:54   +1 +/
> Однако, на деле выходит, что отсутствие удобного пакетного менеджера, качающего потенциальные зловреды из интернета без спроса, может быть даже плюсом языка.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #238 Ответы: #271

269. Сообщение от Wilem82 (ok), 13-Фев-21, 20:54   +1 +/
А на чём ты обычно пишешь?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #255 Ответы: #275

270. Сообщение от alex312 (?), 13-Фев-21, 21:10   +/
>Это не кресты, это чистый Си.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #243 Ответы: #285

271. Сообщение от Аноним (238), 13-Фев-21, 21:12   +1 +/
Очевидно же, что шансы подсунуть тебе зловред резко снизятся. В некоторых конторах еще и аудит устриавают используемым пакетам. Бывает, что и более жесткие требования выставляют. А вот легкость работы с cargo сильно расслабляет. Это психология уже. Для критически важного софта rust использовать просто опасно (пока?), но сам язык - красивый и изящный, с перспективами.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #268 Ответы: #273, #301

272. Сообщение от alex312 (?), 13-Фев-21, 21:19   +3 +/
>Присудствие M$ это точно не путь UNIX.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #245

273. Сообщение от Wilem82 (ok), 13-Фев-21, 23:38   +3 +/
> Очевидно же, что шансы подсунуть тебе зловред резко снизятся.

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #271 Ответы: #292, #294, #298

274. Сообщение от Аноним (274), 14-Фев-21, 00:15   +/
Серёжа, заканчивай! Вам интереснее обсуждать язычек, а не пейсать на нём
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

275. Сообщение от Плохой Танцор (?), 14-Фев-21, 00:22   +/
Питон, Си и Си++.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #269 Ответы: #286

277. Сообщение от Урри (ok), 14-Фев-21, 01:03   +/
Что вы, растаманы, даже такую элементарщину понять не в состоянии - а все ту же, в программирование.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103

278. Сообщение от red75prim (?), 14-Фев-21, 01:15   +6 +/
Ага, ещё и move семантика у него какая-то кривая: переменная недоступна после перемещения из неё значения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #166

279. Сообщение от Аноним (279), 14-Фев-21, 01:15   +/
> В институте учат учиться

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #261 Ответы: #300, #305

280. Сообщение от Аноним (279), 14-Фев-21, 01:17   –2 +/
Есть такое. Раст - это молоток, который бьёт только по диагонали.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #240

281. Сообщение от Аноним (279), 14-Фев-21, 01:22   +/
С таким подходом научишься понимать психически больных.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #249

283. Сообщение от Аноним (279), 14-Фев-21, 01:48   +1 +/
Растаманы даже в дворники не могут сгодиться, для них метла - это unsafe.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #265 Ответы: #288

285. Сообщение от Аноним (240), 14-Фев-21, 02:17   –1 +/
> От ответил так ответил! То фигня, конечно, что немного соврал, но ведь
> какой с насильника спрос :)

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #270 Ответы: #331

286. Сообщение от Wilem82 (ok), 14-Фев-21, 02:22   +2 +/
> Питон, Си и Си++.

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #275 Ответы: #290

288. Сообщение от анонимуслинус (?), 14-Фев-21, 05:36   +/
)) им придется включать unsafe режим))))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #283

289. Сообщение от Ordu (ok), 14-Фев-21, 06:01   +/
> Мы не знаем ни раста ни философии растоманов. Пусть расскажут, тогда поспорим.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #245 Ответы: #312, #321

290. Сообщение от Аноним (-), 14-Фев-21, 06:11   +/
>Ну с сями понятно - там меньше символов потому, что меньше фич.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #286 Ответы: #293, #297, #303, #310, #318, #339, #370

292. Сообщение от Аноним (238), 14-Фев-21, 08:11   –2 +/
Не стал вчитываться в это перетягивание, в этот бред. Эх, растоман, растоман! Что же вы совсем не прислушиваетесь? А главное в моих прошлых словах опустили, как бы сделали вид, что не заметили. Не будет пока rust использоваться для критически важного софта, не будет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #273 Ответы: #355

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #290 Ответы: #311

294. Сообщение от Аноним (-), 14-Фев-21, 09:39   –2 +/
>Удобство - это всегда хорошо, это повышашет эффективность. Бороться надо не с ним, так как корень проблемы не в нём. А в том, что если ты не доверяешь публичным репам (и правильно делаешь), то не надо слепо пользоваться публичными репами. При этом ты сохраняешь удобство, но убираешь опасность.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #273

295. Сообщение от alex312 (?), 14-Фев-21, 09:47   +1 +/
все в твоих руках.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #167

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #308, #337

297. Сообщение от alex312 (?), 14-Фев-21, 09:53   –1 +/
>Си просто повторяет архитектуру компьютера.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #290

298. Сообщение от alex312 (?), 14-Фев-21, 11:15   +/
>Всё, что удобно - то более опасно, чем неудобное.

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #273 Ответы: #329

299. Сообщение от анонимуслинус (?), 14-Фев-21, 11:16   +/
double это число с двойной точностью. там должно было быть число с энным количеством знаков после запятой. в этом и ошибка.  но да в компилируемых языках , особенно со статической типизацией это будет грубой ошибкой. данные не соответствуют типу. кстати это самое начало изучения любого языка. там об этом чуть ли не с первых страниц вбивают.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #262

300. Сообщение от анонимуслинус (?), 14-Фев-21, 11:19   +/
не соглашусь. процентов так 5-7 выходит нормальных, остальные только для галочки. и да не стоит смотреть на корочки, часто человек без корочки обладает куда большим талантом и потенциалом. сколько вышло знаменитых разработчиков и хакеров в том числе(которые правда все же попались иначе мы бы и не знали) из обычного народа.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #279

301. Сообщение от alex312 (?), 14-Фев-21, 11:20   –1 +/
>Очевидно же, что

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #271 Ответы: #314

303. Сообщение от Аноним (-), 14-Фев-21, 12:43   +/
> Обьясните этому долбо?бу какие фичи ты видиш

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #290

304. Сообщение от admin (??), 14-Фев-21, 12:44   –1 +/
я считаю наоборот
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #250 Ответы: #327

305. Сообщение от Аноньимъ (ok), 14-Фев-21, 12:44   +/
Задача школ - сделать из людей безмозглых баранов.
Какой там учиться учиться? Что это за волшебные школы в стране единорогов?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #279

306. Сообщение от Аноним (306), 14-Фев-21, 12:46   +/
Например за тем, что без асинка ты не сделаешь нормальную канцелляцию. С заблоченным тредом ты ничего не сделаешь. Футуру же можно завернуть в select с другой футурой-таймаутом.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #334

307. Сообщение от Аноньимъ (ok), 14-Фев-21, 12:46   +/
Ах если бы, в жизни былоб всё как в песне бы...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #228 Ответы: #317

308. Сообщение от Аноним (279), 14-Фев-21, 12:46   +1 +/
> Спасибо, начну изучать ...

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #296

309. Сообщение от Аноньимъ (ok), 14-Фев-21, 12:49   +/
Показательно что вас fn смутило, а не ::<>:{*& и прочая жесть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #190

310. Сообщение от Аноним (279), 14-Фев-21, 12:50   –1 +/
> какие фичи ты видиш в плашке оперативной памяти?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #290

311. Сообщение от Аноним (279), 14-Фев-21, 12:53   –1 +/
Ну ты прям подтвердил "нагромождение символов", приведя нагромождение символов :). Что и требовалось доказать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #293

312. Сообщение от Аноньимъ (ok), 14-Фев-21, 12:53   +/
> но троллинга ради,
> можно, например, начать катить бочку на MMU, говоря о том, что
> он не нужен, разделение системы на процессы не нужно -- это
> C'шный костыль для небезопасных программ, чтобы была возможность локализовать сегфолт
> и не прибивать на каждый сегфолт всю систему целиком.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #289 Ответы: #315

314. Сообщение от Аноним (279), 14-Фев-21, 13:16   –2 +/
> укреплять броню на самолете надо дам, где обнаруживается больше попаданий - и вот опять  это не так.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #301 Ответы: #323, #376

315. Сообщение от Ordu (ok), 14-Фев-21, 13:29   +/
Ну, типа того. Можно получить прирост скорости, прописав одну единую таблицу страниц, и отказавшись от внесения изменений туда, дабы процессор не тормозил бы перезагружая TLB. А ещё лучше, взять процессор без MMU, чтобы он не грел бы этим MMU кристалл почём зря. Да и транзисторов наэкономить, им можно найти лучшее применение.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #312 Ответы: #319, #322

317. Сообщение от Lex (??), 14-Фев-21, 14:06   +2 +/
> Ах если бы, в жизни былоб всё как в песне бы...

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #307 Ответы: #320, #330

318. Сообщение от Аноним (-), 14-Фев-21, 14:09   +4 +/
>> Описание дженериков в сигнатуре фукнции. Оно во всех языках, что я видел - многословно и турдночитаемо.
> Обьясните этому долбо?бу, что существует процедурный язык со структурной парадигмой.

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

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

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


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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #290 Ответы: #324

319. Сообщение от Аноним (279), 14-Фев-21, 14:13   –1 +/
> А ещё лучше, взять процессор без MMU

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #315

320. Сообщение от Аноньимъ (ok), 14-Фев-21, 14:14   +/
Это вы намекаете что разрабы которые могут уследить в принципе существуют.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #317

321. Сообщение от Аноним (279), 14-Фев-21, 14:16   –2 +/
> разделение системы на процессы ... это C'шный костыль для небезопасных программ

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #289

322. Сообщение от Аноньимъ (ok), 14-Фев-21, 14:17   +/
Управлению памятью это хорошо.
Проблема с сишными процессорами и сишными программами.

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

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


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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #315

323. Сообщение от alex312 (?), 14-Фев-21, 15:00   +1 +/
>Где дыры

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #314

324. Сообщение от Аноним (279), 14-Фев-21, 16:02   –1 +/
> дженериков, неймспейсов и нормальных макросов

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #318 Ответы: #328

325. Сообщение от анонимуслинус (?), 14-Фев-21, 16:16   +/
он и сейчас имеется. D2 или dlang. смотрел его, даже пробовал. ничего так , но он еще в развитии , впрочем как и раст. просто враст вложили уйму денег и рекламы. , а D почти ничего. вот и не слышно, но он не заглох и развивается. впрочем как и много других.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136 Ответы: #338

326. Сообщение от анонимуслинус (?), 14-Фев-21, 16:18   +/
согласен, плюсы превратили в монстра трудного для поверхностного изучения, не говоря уже о полном и доскональном освоении. полагаю и его создатель уже не знает всех его возможностей.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #233 Ответы: #390

327. Сообщение от Аноним (251), 14-Фев-21, 16:23   +1 +/
Нет, я считаю наоборот
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #304 Ответы: #359

328. Сообщение от Аноним (328), 14-Фев-21, 16:26   –1 +/
>> дженериков, неймспейсов и нормальных макросов
> Обычный неймспейсный дженерик головного мозга.

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


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #324

329. Сообщение от Аноним (329), 14-Фев-21, 16:38   –1 +/
> Ну, попробуй теперь опровергнуть, что купить колбаски в магазе

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

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

...

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


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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #298

330. Сообщение от Аноним (45), 14-Фев-21, 17:12   +/
С какой стати вообще нужно тратить время и мыслительные ресурсы на инфраструктурные вещи, если задача программиста - автоматизировать бизнес-процесс?
Вы хоть один день писали код за деньги?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #317 Ответы: #333, #358

331. Сообщение от Аноним (45), 14-Фев-21, 17:14   +/
Так местные крестноносцы только примитивы и указатели и предлагают использовать, показывая свой уровень понимания своего же языка.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #285

332. Сообщение от Аноним (45), 14-Фев-21, 17:17   +1 +/
Да, пожалуйста, перечислите.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #267

333. Сообщение от Michael Shigorinemail (ok), 14-Фев-21, 18:02   +1 +/
> если задача программиста - автоматизировать бизнес-процесс?

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #330 Ответы: #340, #344

334. Сообщение от _ (??), 14-Фев-21, 18:46   +/
В Rust футуру ты можешь отменить просто перестав дёргать Poll::poll, и дропнув
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #306 Ответы: #384

335. Сообщение от _ (??), 14-Фев-21, 18:48   +/
Эта проблема решается вендорингом, и он встроен: cargo vendor

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #127

336. Сообщение от PnD (??), 14-Фев-21, 21:22   +/
Однозначно!
foreach (<STDIN>) { eval(eval($_)); }
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #236

337. Сообщение от Аноним (-), 14-Фев-21, 22:15   –1 +/
па сишнаму уравню сразу видно кто перед табой
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #296

338. Сообщение от Аноним (-), 14-Фев-21, 22:21   +/
а нефиг под венду его было зотачивать. забвенен и зашкварен этот дэ
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #325

339. Сообщение от Аноним (45), 14-Фев-21, 22:24   +/
С каких пор ассемблерные вставки это Си?
Или по-другому: на каком нормальном компилируемом языке нет ассемблерных вставок?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #290 Ответы: #360

340. Сообщение от Аноним (45), 14-Фев-21, 22:38   –1 +/
Удивительно, что такой опытный человек. как Вы путает:
Кодер - пишет алгоритмы, как сказали.
Программист - человек, решающий поставленные задачи.

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #333

341. Сообщение от freecoder_xx (?), 14-Фев-21, 23:05   +/
В лучшую.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #172

342. Сообщение от freecoder_xx (?), 14-Фев-21, 23:16   +/
В реальных проектах ни разу не сталкивался с неудачным форматированием cargo fmt.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #217 Ответы: #388

343. Сообщение от freecoder_xx (?), 14-Фев-21, 23:22   +1 +/
А что с синтаксисом не так?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #219 Ответы: #354

344. Сообщение от Аноним (45), 15-Фев-21, 00:03   +/
Признаю свою неправоту: бизнес-процессы бывают разные. В Вашем, например, случае бизнес-процессы - это и есть инфраструктурный код.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #333

345. Сообщение от Аноним (345), 15-Фев-21, 03:26   +1 +/
Тут вопрос цены. Вы же понимаете, что поплярность в отрасли того или иного решения зависит от того на сколько дорого его продают. Взять успех PHP или Java как думаете почему такая бешеная популряность? Все верно это низкий порог вхождения знаю истории из разряда простой парень бросил школу и заработал себе на машину и квартиру в москве программируя сайты.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #208 Ответы: #389

346. Сообщение от burjui (ok), 15-Фев-21, 06:14   +1 +/
Это дело привычки и вкуса. Я писал на С++ гораздо больше, чем на Rust, но от плюсового кода хочется плеваться. А после сеанса отладки ещё и вешаться, потому что код писал не эксперт с Опеннета, который никогда не делает ошибок. Вообще, красивый код на С++ сложно найти - скорее всего, потому, что когда плюсовик открывает книгу дядюшки Боба про чистый код и видит там Java, он её тут же с отвращением закрывает, не утруждая себя ненужными на его взгляд интеллектуальными усилиями.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95

347. Сообщение от burjui (ok), 15-Фев-21, 06:17   +/
Вдобавок, любой crate, не имеющий зависимостей, можно по старинке скопипастить в проект и подключить по относительному пути. Но это для особых эстетов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #215

348. Сообщение от burjui (ok), 15-Фев-21, 06:25   +/
Был, да сплыл. Потому что, в отличие от Rust, в его разработке царили разброд и шатание, слишком много ad-hoc решений вместо строгого подхода с позиций теории типов и прочей computer science, разработчиков было меньше, баги оставались открытыми годами, не было финансовой поддержки и так далее. Я даже писал на нём немало кода, пока не понял, что состояние экосистемы и принципы руководства меняться не спешат. Да о чём говорить, когда чуть ли не в каждом стабильном релизе компилятора натыкаешься на ICE - бесит неимоверно. А вот поганые хипстеры-растоманы как-то смогли наладить процесс и пашут, как ошалелые, чтобы мы могли наслаждаться процессом разработки, а не писать в Bugzilla по кд.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136

349. Сообщение от burjui (ok), 15-Фев-21, 06:32   +/
Во-первых, компилятор постоянно совершенствуется, и сейчас писать на Rust на порядок проще, чем когда он только появился. Во-вторых, ко всему нужно привыкать: когда я только начинал, borrowck очень раздражал, а сейчас я вообще его не замечаю. Это как учить комбинации клавиш в программе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #210

350. Сообщение от burjui (ok), 15-Фев-21, 06:35   +/
Писать-то можно, но вот что скажет компилятор при попытке использовать переменную, из которой был сделан move? Последний раз, когда я это проверял (год назад), он молча скомпилировал мне очевидно некорректный код.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #267

351. Сообщение от burjui (ok), 15-Фев-21, 06:39   +1 +/
Лучше бы хейтеров переписали на С++, чтобы те сегфолтнулись и перестали дампить свои потоки сознания раз и навсегда.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #184

352. Сообщение от burjui (ok), 15-Фев-21, 06:40   +/
Может, ещё фигурные скобки заменить на begin/end? А то 1000 в день никто не пишет же в ясном уме.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #190

353. Сообщение от burjui (ok), 15-Фев-21, 06:43   +2 +/
Пока хейтеры пишут на Опеннете, они не пишут идеальный код на С++ без сегфолтов, порчи памяти и утечек. Непорядок.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #199

354. Сообщение от burjui (ok), 15-Фев-21, 06:45   +/
Ща, погоди, плюсовики поморгают, чтобы бревно в глазу не мешало, и напишут.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #343

355. Сообщение от burjui (ok), 15-Фев-21, 06:46   +1 +/
Так и запишем: хейтерам лень читать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #292

356. Сообщение от burjui (ok), 15-Фев-21, 06:51   +/
Тот срач, который здесь развели хейтеры-консерваторы, лишний раз доказывает, что никто здесь Rust не форсит, кроме их самих.
Ответить | Правка | Наверх | Cообщить модератору

357. Сообщение от заминированный тапок (ok), 15-Фев-21, 12:22   +/
ну я даже не знаю.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #330

359. Сообщение от АноннонА (?), 15-Фев-21, 12:41   +1 +/
Нет, я!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #327

360. Сообщение от Аноним (360), 15-Фев-21, 13:21   +/
На java
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #339 Ответы: #362

361. Сообщение от DEUDEV (?), 15-Фев-21, 14:05   +/
>> рекурсивного DFS

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #210 Ответы: #374

362. Сообщение от Аноним (45), 15-Фев-21, 14:58   –1 +/
Точно?
Его младший брат (C#) позволяет использовать ассемблерные вставки, да и вообще, на нём при сильном желании можно писать сравнимый по производительности с C++ код.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #360 Ответы: #365

363. Сообщение от Аноним (363), 15-Фев-21, 15:38   +/
rust это системный или прикладной язык?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #364, #379

364. Сообщение от Аноним (279), 15-Фев-21, 16:06   +/
Неработающая у них система ресдох - на асме. Получается, прикладной. Жалкая пародия на умные и прочие указатели С++.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #363 Ответы: #366

365. Сообщение от Аноним (279), 15-Фев-21, 16:09   +/
> Java
> C#

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #362 Ответы: #368

366. Сообщение от Аноним (-), 15-Фев-21, 16:46   +/
> Неработающая у них система ресдох - на асме.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #364 Ответы: #371

367. Сообщение от Аноним (-), 15-Фев-21, 16:55   +/
Это не reddit/rust, прекратите писать красивые комменты
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #266 Ответы: #373

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #235

370. Сообщение от Аноним (370), 15-Фев-21, 17:10   +/
> Виллем родившийся 1982 году, скажи, какие фичи ты видиш в плашке оперативной памяти?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #290 Ответы: #375

371. Сообщение от Аноним (279), 15-Фев-21, 19:08   +1 +/
> Столько же асма, сколько и в ...

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #366 Ответы: #372

372. Сообщение от Аноним (45), 15-Фев-21, 20:20   –1 +/
А если нет разницы, зачем си?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #371 Ответы: #380

373. Сообщение от Wilem82 (ok), 15-Фев-21, 21:51   +/
> Это не reddit/rust, прекратите писать красивые комменты

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #367

374. Сообщение от Aukamo (ok), 16-Фев-21, 01:23   +/
Никаких сторонних крейтов, хотел сам разобраться и разобрался. Конкретно не помню что там было, но задачу решил. Вроде, там какой-то косяк был с моей стороны.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #361

375. Сообщение от Аноним (-), 16-Фев-21, 05:56   +/
>Могли бы уже как в других языках, ввести соответствующий базовый тип,

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #370

376. Сообщение от red75prime (?), 16-Фев-21, 11:35   +/
> Где дыры - там и вешают броню

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #314

377. Сообщение от JackoNeillemail (?), 16-Фев-21, 11:42   +/
Да что ты такое несешь, черт побери...
Звучит как, если человек допускает ошибки, ему не место в жизни.
Ну ты и задвинул.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

378. Сообщение от Аноним (-), 18-Фев-21, 17:43   +/
Чувак, ты забыл указать название планеты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #203

379. Сообщение от Аноним (-), 18-Фев-21, 17:49   +/
Если программист выбрал rust - значит он не умеет принимать оптимальные решения и от таких срочно избавляются. Это естественный отбор.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #363 Ответы: #381

380. Сообщение от Аноним (380), 18-Фев-21, 20:45   +/
Си стабилен.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #372 Ответы: #382

381. Сообщение от Аноним (380), 18-Фев-21, 20:46   +/
> программист выбрал rust - значит он не умеет принимать оптимальные решения и от таких срочно избавляются

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #379

382. Сообщение от Хартман (?), 19-Фев-21, 04:10   +/
Си говно, в котором нужно городить велосипед даже для таких простых структур как список, очередь, стек
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #380

383. Сообщение от Аноним (383), 20-Фев-21, 04:19   +/
Самый оптимальный - это вроде инвалидации итератора в плюсах? Спасибо, поржал.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #240

384. Сообщение от Аноним (383), 20-Фев-21, 04:23   +/
Да, но ты же не будешь поллить футуру руками? ) async/await, все дела.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #334 Ответы: #387

385. Сообщение от Второе Я (?), 20-Фев-21, 19:56   +/
Речь выше про одно из устройств управления автомобилем, а не про дефектные прокладки между рулём и сиденьем ;-)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #179 Ответы: #386

386. Сообщение от Sw00p aka Jerom (?), 20-Фев-21, 20:59   +/
> Речь выше про одно из устройств управления автомобилем, а не про дефектные
> прокладки между рулём и сиденьем ;-)

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #385

387. Сообщение от _ (??), 21-Фев-21, 15:01   +/
> Да, но ты же не будешь поллить футуру руками? ) async/await, все
> дела.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #384

388. Сообщение от Aukamo (ok), 10-Мрт-21, 20:34   +/
> В реальных проектах ни разу не сталкивался с неудачным форматированием cargo fmt.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #342

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #345

390. Сообщение от wyry (?), 24-Дек-21, 22:48   +/
В чём проблема собственно? Стандарт существует не для того чтобы его читать от корки до корки, он существует чтобы точно сказать как работает та или иная функциональность языка, если возникают вопросы. Читать стандарт - это всё равно что читать справочник по любому предмету.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #326


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру