История изменений
Исправление www_linux_org_ru, (текущая версия) :
вот такой нюанс: на с++ можно писать так чтоб сегфолтов не было. умные указатели, блаблабла. можно weakptrы и sharedptrы «как в glib» запилить, тоже мегавещь.
в расте есть reference counting, так что все эти тормоза (которые ты называешь мегавещи) из с++ тоже доступны
но так бывает неудобно. поэтому оно и падает.
вот это уже ближе, но недостаточно конкретно, и я попробую внести ясность (хотя это скорее тема для обсуждения, чем ясность)
когда мы делаем какую-то абстракцию, нам приходится делать ее текущей — точнее, иметь черный ход «для обслуживающего персонала»
в ооп это все формализовано: для обычных людей публичные методы, «для обслуживающего персонала» приватные и в результате абстракции можно сказать не текут (однако иногда ооп не дает должного контроля, и они все же текут)
но вот в расте я ничего подобного не наблюдаю (может из-за своего незнания) — т.е. кто и когда имеет право поставить unsafe компилятору совершенно пофиг, и бить по рукам на тему «попытка вызова приватного метода unsafe» он не будет
свое_растовское_ооп там есть, но оно афайк вопрос с unsafe никак не регулирует
Исходная версия www_linux_org_ru, :
вот такой нюанс: на с++ можно писать так чтоб сегфолтов не было. умные указатели, блаблабла. можно weakptrы и sharedptrы «как в glib» запилить, тоже мегавещь.
в расте есть reference counting, так что все эти тормоза (которые ты называешь мегавещи) из с++ тоже доступны
но так бывает неудобно. поэтому оно и падает.
вот это уже ближе, но недостаточно конкретно, и я попробую внести ясность
когда мы делаем какую-то абстракцию, нам приходится делать ее текущей — точнее, иметь черный ход «для обслуживающего персонала»
в ооп это все формализовано: для обычных людей публичные методы, «для обслуживающего персонала» приватные и в результате абстракции можно сказать не текут (однако иногда ооп не дает должного контроля, и они все же текут)
но вот в расте я ничего подобного не наблюдаю (может из-за своего незнания) — т.е. кто и когда имеет право поставить unsafe компилятору совершенно пофиг, и бить по рукам на тему «попытка вызова приватного метода unsafe» он не будет
свое_растовское_ооп там есть, но оно афайк вопрос с unsafe никак не регулирует