Дима
Упырь мел, я говорю по факту, что наблюдаю вокруг
Loyd
А на js ещё больше.
Loyd
Т.е. на всём остальном, относительно этого, никто не пишет
Дима
В проекты мозиллы я бы вообще не лез
Дима
Она откинется через год другой и что ты будешь делать?
Loyd
Слишком громкое заявление
Loyd
Нет, теоретически можно везде писать безопасно
Loyd
Но это уникальные кадры
Дима
И ангуляре, ага
Дима
Образец для подражания
Loyd
Умные указатели это счётчики ссылок или указатели с десктруктором
Loyd
Теряешь в производительности
Loyd
Не будешь же все указатели оборачивать
Loyd
В расте не тоже самое
Loyd
В этом и идея
Loyd
borrow checker смотри
Loyd
><
Loyd
Учи матчасть.
Loyd
И да, кроме денглинг поинтеров и коротких лайфтаймов раст неплохо следит за многопоточностью. Плюс нормальная система типов.
Дима
Фанат раста в треде, все в укрытие
Loyd
Фанат-не фанат, а пока не будет конструктивной критики, тебя воспринимать в серьёз вряд ли стоит.
Дима
Самомнение у тебя охренеть, конечно
Loyd
Ты же говорил про умные указатели. Если всё обложить умными указателями, то (очевидно) кресты будут медленными.
Loyd
Поэтому так никто не пишет на крестах.
Loyd
Нет, это принципиально разные вещи
Loyd
borrow checker это проверки в компайл-тайме
Loyd
А умные указатели это райнтайм код
Loyd
В расте они тоже есть, так-то (счётчики Rc и Arc для меногопоточных)
Loyd
Молодец. Идея в дестркукторе, который освобождает память.
Loyd
Это если компилятор доказал, что тип простой твой
Loyd
Число какое-нибдуь
Loyd
Ты точно понимаешь что такое unique_ptr (и другие: shared_ptr и пр)?
Loyd
Да, о чём я тебе и сказал
Loyd
Ты предлагаешь все указатели поменять на умные
Loyd
Т.е. по факту привезти GC в язык
Loyd
Борроу чекер позволяет использовать простые указатели
Loyd
Без дестркуторов и прочее
Loyd
Пока это реально не будет требоваться.
Loyd
Мда. Туго быть тобой.
Loyd
Разберись уже что такое lifetime, и чем указатель отличается от умного указателя.
Loyd
unique_ptr это указатель с деструктором.
Loyd
И используется он, когда ты не можешь сказать, когда нужно освободить память
Loyd
Дык, именно. Но зачем создавать unique_ptr в стеке?
Loyd
Так вот borrow checker позволяет тебе не использовать счётчики и unique пока в этом не появится реальная необходимость
Loyd
Где в крестах ты либо рискуешь (гугли dangling pointer), либо обезопасываешься этими unique/shared
Loyd
Причём тут куча вообще ><
Loyd
Смотри, есть у тебя int
Loyd
Ты хочешь с ним поработать
Loyd
Ты можешь его на стеке выделить и он станет невалидным при закрытии скопа
Loyd
unique_ptr же выделит его на куче
Loyd
А на стеке останется твой указатель + деструктор
Loyd
Воот. А через некоторое время другой разраб в конце функции решил заовнить его
Loyd
И приехал данглинг поинтер
Loyd
Нельзя.
Loyd
Ну или недосмотрел
Loyd
Чаще всего и то и то
Loyd
А общие договорённости это какие?
Loyd
Всегда использовать unique_ptr и терять в производительности?
Loyd
Ты реально не знаешь, что такое unique_ptr?
Loyd
Я не буду искать это бенчмарк, потому что так *никто не пишет*. Это практически как писать c GC
Loyd
Разумеется.
Loyd
Только вот баги не из-за грамотных рук.
Loyd
И когда у тебя падает браузер с сигфолтом.
Loyd
Вообще-то объяснил
Loyd
Loyd
Если компилятор соптимизировал и видит это, то да.
Loyd
Т.е. ты уверен, что с unique_ptr данные будут именно в поле класса, а не на кучи? =)
Loyd
Я готов допустить оптимизацию на стеке, если компилятор видит. Но оптимизацию в классе. Это ты загнул
Loyd
Ты ведь знаешь про кеш и почему скакать по ОЗУ медленно?
Loyd
Ладно, с тобой всё ясно.
Loyd
Выучишь матчасть, приходи. Или положи уже unique_ptr в класс и сделай sizeof. Сказочник.
Loyd
Я тебе уже сказал. То, что предлагаешь ты это практически GC. Так не делают. А как делают и вызывает данглинг поинтеры.
Loyd
Ну вот хз http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=rust&lang2=gpp
Loyd
А вот си против с++: http://benchmarksgame.alioth.debian.org/u64q/c.html
Yakov
холиварщики
Loyd
Ну, скорее всгео речь про идеоматичный си++. Который, очевидно, медленнее си.
Yakov
идите про плюсы в другое место
Yakov
может вам в личке попереписываться? :) пишут тут друг другу о плюсах, а мы сиди читай
Yakov
совесть иметь нужно
Loyd
Всё-всё =)