Pull to refresh
1
0
Александр Крикун @cobsea

C++-разработчик

Send message

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

Хороший слог, статья приятно читается. Автор, пиши еще.
Насчет автодокументации пакетов. Недавно писал пет-проджект на Rust с текстовым интерфейсом, пользовался крейтом tui. Апи на самом деле прост, но документации не написано практически никакой, лишь пара примеров на главной странице доков. Однако при ошибках линтер сразу бьет по рукам: строжайшая система типов не дает послать неправильный аргумент куда попало или оставить Result нераскрытым.
Так вот когда я этот код писал, понял, что не представляю, что бы делал в такой ситуации, например, на пайтоне или JS. Мало писал на динамических языках. Если там есть линтер, то он смотрит внутрь функций? Не знаю. Но Раст действительно радует в те моменты, когда не пропускает ошибки дальше компиляции.
И не радует, когда понимаешь, что тебе нужна shared-логика и появляется выбор: переписать все так, что архитектура таки ляжет на модель владения или начать наворачивать Rc и RefCell.
По-моему, можно «убить» C++ просто начиная новые проекты на Rust, а старые библиотеки оборачивая в безопасный код. Ну и переписывая в них самые проблемные места, возможно

Интересная подборка. Хотелось бы видеть подобные статьи на Хабре на действительно неочевидные темы

Information

Rating
Does not participate
Registered
Activity