Re[8]: Rust vs C++ 17
От: ELazin http://rsdn.ru/forum/prj/6225353.1
Автор: ELazin
Дата: 26.10.15
Дата: 10.01.16 15:03
Оценка: +1 -1 :)
В>В любом языке можно написать библиотеки, более-менее гарантирующие безопасную работу с памятью, но никто не может заставить программистов использовать их и только их, в этом вся проблема. Заслуга Rust'а в том, что он первый из неакадемических языков, кто попытался разделить ответственности: программист пишет алгоритм, компилятор проверяет, что код работает корректно в обозначенных областях. Это минимизация вклада человеческого фактора в корректность кода и за этим будущее, так как тенденция показывает, что код все более и более усложняется со временем.

Ну вот опять забыли java/C# и кучу других языков с GC. До Rust-а конечно же об этих проблемах никто не думал и не решал их, ага. Самый проверенный временем подход к решению проблемы memory safety это языки с GC (memory safety through garbage collection). При этом компилятор Java, например, умеет вставлять код, который проверяет выход за границы массивов, но оптимизатор hotspot умеет этот код убирать, если он избыточен. И при этом, в отличии от Rust, в Java в принципе невозможно испортить память или уронить приложение по segfault (если нет нативного кода). При этом там стандартная библиотека не напичкана unsafe блоками, в отличии от. И все это очень здорово минимизирует возможный негативный вклад человеческого фактора. Опять же туллинг, книжки, программисты настоящие есть. Вы уж определитесь, если нужно писать низкоуровневый быстрый код, для всяких узких задач, то тут Rust-у явно не место. Он слишком высокоуровневый, как тут уже писали, на нем даже нельзя OOM обработать. А там где раст будет хорошо работать, java и C# будут работать еще лучше. Даже Go будет работать лучше, потому что там нет лишней когнитивной нагрузки, связанной с lifetimes, при этом ногу себе отстрелить сложно.

В>Современный C++ слишком монструозен и сложен, что сильно удорожает как подготовку нормальных специалистов, так и сам процесс написания.

Практика показывает, что дорого и сложно — пытаться писать идеальные системы, которые by design не могут содержать ошибок (как тут кое-кто хотел типами инварианты доказывать). Реальный код слишком быстро меняется а бюджет времени на разработку не так велик.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.