swizard (swizard) wrote,
swizard
swizard

Category:

У нас есть Rust, поэтому C++ больше не нужен.

Просто чудесный пост у thesz, наглядно демонстрирующий мой лозунг из сабжа.

Давайте пройдёмся по пунктам:

> Большое неудобство, однако, составляет отсутствие подсказок компилятора в сообщении об ошибке

Rust прекрасно всё подсказывает, вплоть до того, что явно указывает как именно тебе надо исправить код, чтобы всё заработало.

> но сама необходимость думать о том, как правильно создавать объект, отнимает достаточно сил

А в Rust отсутствует возможность "неправильно" создать объект.

> должен ли я бросать исключение

В Rust нет исключений, а есть только один "идеоматический" (как это по-русски — общепринятый?) способ сигнализировать об ошибке: вернуть Result.

> могу ли я оставить объект не полностью или не корректно созданным

В Rust невозможно (без использования unsafe) не полностью инициализировать объект.

Ну и так далее.

На самом деле, в Rust очень многое сделано сразу правильно, по сравнению с C++. Ведь его же создавали люди, которые много программировали на C++ :) В Rust мы не встретим таких понятий, как "правило пяти", "swap", "pimpl", etc, потому что язык уже сделан как нужно.

Кроме того, в Rust используется только один общепринятый стиль написания кода (вспоминаем все эти венгерские нотации, все эти противоречащие друг другу c++ guidelines от гугл, тоёты, микрософта и тд), существует один всемогущий cargo c сайтом crates.io (вспоминаем цмейк, автомейк, сконс и тд), а также rustdoc, rustup, rustfmt, и тд и тп.

Повторюсь (уже в третий раз в этом блоге): нет никаких причин в настоящее время программировать что-то новое на C++, потому что есть Rust. Могут быть причины, чтобы выбрать вместо Rust, там, какой-нибудь Haskell, Scala, Erlang, да даже Common Lisp. Но не может быть никаких причин, чтобы вместо Rust выбрать C++.

Tags: c++, code, programming, rust
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 141 comments