170 похожих чатов

Видишь ли, у добавления smart pointers были причины. И

эти причины — плохая имплементация new delete. Зачем учить новичков плохому?

44 ответов

9 просмотров

Удали этот бред)

Эмм, нет, эти причины не были плохой имплементацией new/delete

Мне просто интересно, ты вот сама понимаешь что сказала? И что же плохо в этой их имплементации?

Nastya-Medveda Автор вопроса
Liber Azerate
Эмм, нет, эти причины не были плохой имплементацие...

именно в них. Как будто программы с new delete не текли массово как старое корыто...

Nastya Medveda
именно в них. Как будто программы с new delete не ...

new delete, это следующее поколение malloc free. Далее люди обернули это в смарт поинтеры, чтобы получить полную выгоду от raii

Nastya-Medveda Автор вопроса
Liber Azerate
Вопрос не в плохой имплементации

Видимо, утечки памяти это признак удачного решения?

Nastya Medveda
Видимо, утечки памяти это признак удачного решения...

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

Nastya Medveda
Видимо, утечки памяти это признак удачного решения...

Но мне больше интересно... Расскажи-ка, как должно выглядеть хорошее решение

Liber Azerate
Но мне больше интересно... Расскажи-ка, как должно...

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

Nastya-Medveda Автор вопроса
Liber Azerate
Нет, это признак плохих программистов, которые не ...

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

Nastya Medveda
Можно сделать раковину без слива воды сверху и ра...

Я всё ещё жду "хорошего" решения. Удиви меня

Nastya Medveda
Можно сделать раковину без слива воды сверху и ра...

Сравнение не может являться доказательством, сравнение - это только сравнение, не больше

Nastya-Medveda Автор вопроса
Sergey Sobolev
Сравнение не может являться доказательством, сравн...

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

Nastya Medveda
ARC

shared_ptr так и устроен. Давай ты подумаешь чем отличается оьычный указатель от shared

Nastya-Medveda Автор вопроса
Liber Azerate
shared_ptr так и устроен. Давай ты подумаешь чем о...

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

Nastya Medveda
тем, что он не удаляется при отсутствии на него ак...

Нет, тем, что это дополнительный оверхед, представляешь себе? Особенно в многопоточной среде

Nastya Medveda
тем, что он не удаляется при отсутствии на него ак...

Слышала такую фразу: не плати за то, что не используешь?

Нет, это тоже не так.

Nastya-Medveda Автор вопроса
Liber Azerate
Нет, тем, что это дополнительный оверхед, представ...

Так эта, чего тогда новичков сразу не учить многопоточным приложениям? пишем multithreaded "Hello World" для высоконагруженных систем первой программой.

Nastya Medveda
ARC

Это просто пул же

Nastya Medveda
Так эта, чего тогда новичков сразу не учить многоп...

Хватить утрировать. Я сказал не только о многопоточности

Nastya Medveda
Это о том, что если твой аргумент — пользователи с...

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

Nastya-Medveda Автор вопроса
Liber Azerate
Хватить утрировать. Я сказал не только о многопото...

ты приводишь необходимость учить новичков new delete а не smart pointers тем, что они в многопотоке используются.

Aidar Fattakhov
Это просто пул же

Причем глобальный правда стек пулов

Nastya Medveda
Так эта, чего тогда новичков сразу не учить многоп...

В С++ можно было хоть сразу gc вшить. Вопрос в том, что всё это дополнительная плата... Это не путь С++. За то, что делаешь всё руками, платишь возможностью отбить себе эти руки, однако это гораздо быстрее

Nastya Medveda
именно в них. Как будто программы с new delete не ...

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

Nastya Medveda
ты приводишь необходимость учить новичков new dele...

Слушай, уж прости, ты читать не умеешь? Я сказал не только о многопотоке

Nastya-Medveda Автор вопроса
A B
Так может попробуешь какой нибудь язык со сборщико...

вопрос о том, что new delete это не то, что надо учить новчкам, а не о сборщике мусора

Nastya Medveda
вопрос о том, что new delete это не то, что надо...

Ничего страшного не произойдет с тобой, если ты сначала узнаешь, что такое new delete

Nastya-Medveda Автор вопроса
Sergey Sobolev
Ничего страшного не произойдет с тобой, если ты сн...

Страшное произойдет если я узнаю только о new delete, что и происходит у Праты

Nastya Medveda
вопрос о том, что new delete это не то, что надо...

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

Nastya Medveda
вопрос о том, что new delete это не то, что надо...

New delete это часть инструментов которые дает язык. С их существования начинаются умные указатели. С ними написано куча, кууууча кода. Плюс я лично не вижу проблемы в их изучении. Нормальные инструменты. Говнокод можно с чем угодно написать. Если ты будешь шаред поинтеры везде пихать это тоже говонокод т.к. они сравнительно тяжелые. Особенно их копирование.

Nastya Medveda
Видимо, утечки памяти это признак удачного решения...

Течет и течет, в чем проблема-то? У тебя и Java потечет, если взять substring парой индексов строки вместо копирования

Nastya Medveda
вопрос о том, что new delete это не то, что надо...

new и delete – это то, с чем новичок столкнется практически наверняка, выйдя на свою первую работу. Прямо или косвенно. Рано или поздно. Не учить – прямой путь к отстрелу ног И ещё, я не знаком с Пратой, но практически уверен, что если в простые примеры кода пихать умные указатели, то примеры станут резко сложнее и придётся сосредотачиваться не только на том, что показывается в конкретном примере, но и на самих умных указателях. Это дополнительная нагрузка. Да, сырые указатели сложнее использовать правильно в реальном коде, но они концептуально проще в понимании и читатель сможет сосредоточиться на проблеме, описываемой в примере, а не особенностях владения, поэтому в качестве примеров они проще

Nastya Medveda
вопрос о том, что new delete это не то, что надо...

Может тогда и C++ не надо учить? Есть много классных языков где вообще нет new и delete...

Ofee Oficsu
new и delete – это то, с чем новичок столкнется пр...

Не согласен, что сырые указтели сложнее использовать. Просто нужно понимание, что ты делаешь (random driven design с ними не работает) и дисциплина.

Mikhail Kalugin
Не согласен, что сырые указтели сложнее использова...

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

Nastya-Medveda Автор вопроса
Mikhail Kalugin
Может тогда и C++ не надо учить? Есть много классн...

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

Nastya Medveda
Опять началось... я уже знаю один классный язык, ...

Ну :))) Значит все хорошо. Ты - не новичок. Учить new и delete полезно.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта