Информация об изменениях

Сообщение Re[3]: Rust взлетает...? от 28.11.2018 11:11

Изменено 29.11.2018 2:04 Zhendos

Re[3]: Rust взлетает...?
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, Zhendos, Вы писали:


Z>>У меня лично как замена C++ для "логики" в новом проекте неплохо "зашел".


KP>Очень любопытно! Что за сфера проекта? Перед выбором Rust на C++17 смотрели?


Сфера скажем так близка к "safety-critical system", но ей не является
То есть например предсказуемость времени выполнения желательна, но не обязательна,
поэтому использование например GC в принципе возможно, но лучше без него,
соответствие coding style для "safety-critical system" желательно, но не обязательно и т.д.

И после ~10 лет использования C++ даже идеи посмотреть на C++XYZ не возникло.
То, чем понравился Rust конечно можно достичь в C++, если нафиг сломать обратную совместимость,
и заставить на новом диалекте переписать кучу уже существующих библиотек,
что конечно невозможно в рамках любого ближайшего будущего стандарта.

Если скажем взять для примера какое-нибудь описание обязательны практик для
"C++ for safety-critical system", то можно прям идти по списку и отмечать:
"это в Rust из коробки", "это в Rust из коробки", например

— использовать элементарные типы только с указанным размером,
в Rust стандартные типы только такие u8,u16, f32, f64, за исключением [ui]size
— никаких "integer promotion" и неявных преобразований, в Rust это ошибка компиляции
— очень ограничено использование препроцессора из-за возможных неочевидных эффектов,
в Rust макросы не могут неявно поменять что-либо в точке использования

и т.д. и т.п.,

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

Еще наверное что-то забыл
Re[3]: Rust взлетает...?
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, Zhendos, Вы писали:


Z>>У меня лично как замена C++ для "логики" в новом проекте неплохо "зашел".


KP>Очень любопытно! Что за сфера проекта?


Сфера скажем так близка к "safety-critical system", но ей не является
То есть например предсказуемость времени выполнения желательна, но не обязательна,
поэтому использование например GC в принципе возможно, но лучше без него,
соответствие coding style для "safety-critical system" желательно, но не обязательно и т.д.

KP> Перед выбором Rust на C++17 смотрели?


После ~10 лет использования C++ даже идеи посмотреть на C++XYZ не возникло.
То, чем понравился Rust конечно можно достичь в C++, если нафиг сломать обратную совместимость,
и заставить на новом диалекте переписать кучу уже существующих библиотек,
что конечно невозможно в рамках любого ближайшего будущего стандарта.

Если скажем взять для примера какое-нибудь описание обязательных практик для
"C++ for safety-critical system", то можно прям идти по списку и отмечать:
"это в Rust из коробки", "это в Rust из коробки", например

— использовать элементарные типы только с указанным размером,
в Rust стандартные типы только такие u8,u16, f32, f64, за исключением [ui]size
— никаких "integer promotion" и неявных преобразований, в Rust это ошибка компиляции
— очень ограничено использование препроцессора из-за возможных неочевидных эффектов,
в Rust макросы не могут неявно поменять что-либо в точке использования

и т.д. и т.п.,

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

Еще наверное что-то забыл