Владимир Зарыпов (krre31) wrote,
Владимир Зарыпов
krre31

Category:

Океан. Rust

В разработке проекта случился неожиданный поворот. В прошлой статье я торжественно пообещал, что бэкенд будет писаться на языке Go. И действительно, первую неделю я так и делал, то есть беззаботно писал сервер на Go и горя не знал. Однако, по мере гугления инфы на тему, какие существуют зарекомендовавшие себя практики грамотной разработки бэкенда на Go, я то и дело сталкивался с тем, что этот язык подозрительно часто сравнивают с Rust. То одни переписали свой сервер с Go на Rust, то другие, и теперь не могут нарадоваться. Это что ещё за нездоровая тенденция?

Я тоже тыкал палочкой этот Rust несколько лет назад, он мне даже понравился, но я так и не придумал, где его можно применить. В то время он и сам ещё не нашёл своей ниши, был в каком-то смысле изгоем. Куда бы он ни сунулся, везде всё занято, и отовсюду его гнали. Область системного программировании прочно занята языком C, в геймдеве - C++, в бэкенде и так слишком много всяких языков - с десяток, если не больше, и добавлению ещё одного там не сильно были рады. Так и юзали этот Rust сама Mozilla, которая его разработала, и несколько контор различной степени серьёзности в качестве эксперимента. Я в те годы бэкендом ещё не увлекался, поэтому пытался применить Rust в геймдеве, однако, во-первых, обнаружил, что геймоделы в целом весьма нелестно отзываются от Rust, а, во-вторых, после того, как мне за два дня так и не удалось откомпилировать программу, использующую многопоточность, пришлось поневоле вернуться на C++.

И вот, значит, Go, любимец публики, простой, как две копейки, и быстрый, как понос. С чего бы это вдруг его стали сравнивать с Rust? А дело в том, что у них много общего. Оба статически типизированы и компилируют программу в машинный код. Оба не используют исключения, а возвращают из функций коды ошибок. Оба вместо наследования используют утиную типизацию. У обоих имеется похожий набор тулзов, типа автоматического форматирования кода, запуска тестов и бенчмарков. Даже команда для внезапного прерывания потока выполнения одинаково называется - panic. Однако есть и ряд отличий.

Read more...Collapse )
Tags: океан
Subscribe

Posts from This Journal “океан” Tag

  • Океан. Камбэк

    Переделал сайт, теперь для анонимов он будет в режиме чтения. Регистрация у нас по сути и так анонимная, так что не сильно большая потеря.…

  • Океан. Блэкаут

    Выключил сервер. Устал читать ругань и ненависть, которая льётся на сайте бесконечным потоком. Уже давно не обсуждают манделы и редко добавляют…

  • Океан. Манделы пользователя

    Облегчим задачу спецслужбам. Предположим, спецслужбы захотели проверить все манделы конкретного пользователя. Сделать это теперь как нельзя просто.…

  • Error

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

Posts from This Journal “океан” Tag

  • Океан. Камбэк

    Переделал сайт, теперь для анонимов он будет в режиме чтения. Регистрация у нас по сути и так анонимная, так что не сильно большая потеря.…

  • Океан. Блэкаут

    Выключил сервер. Устал читать ругань и ненависть, которая льётся на сайте бесконечным потоком. Уже давно не обсуждают манделы и редко добавляют…

  • Океан. Манделы пользователя

    Облегчим задачу спецслужбам. Предположим, спецслужбы захотели проверить все манделы конкретного пользователя. Сделать это теперь как нельзя просто.…