Комментарии 18
А Rust? О нем и сейчас больше говорят, чем реально используют.
Я не понимаю, это намеренная дезинформация или просто невежество?
Судя по кол-ву вакансий на СНГ рынке на сегодняшний день - автор прав.
Допустим вы правы. Какие крупные проекты в России существуют на Rust?
Насколько крупные вам надо? Что значит "в России", если компания состоит из русскоговорящих, имеет офис в России, но зарегистрирована за рубежом, она считается "в России"?
Скорее невежество. Но это не точно.
Выбрали бы ли вы Rust вместо С++ сейчас?
Присоединяюсь к вопросу. У вас видят возможности для реального практического применения rust?
В ближайшей перспективе - нет. С++ оброс наследием (userver, кодогенерация, распределённая сборка и тестирование, уникальные библиотеки, экспертиза и так далее), которое дорого повторять и, без явной пользы, перевешивающей трудозатраты на поддержку нового языка, вкладываться в это нет смысла.
А если бы не наследие, а новый проект с нуля?
Я немного ковырял раст, и у него есть свои плюсы по сравнению с C++. И даже библиотеки всякие найти можно. Но, как бы сказать, его уровень поддержки ООП "ограничивает полёт мысли" (в основном из-за требования единственности мутабельной ссылки - сложный граф объектов, обменивающихся сообщениями и меняющих свои данные, сделать трудно), а иногда приходится такие описания типов наворачивать, что в С++ и не снилось.
Вот интересно, эти "особенности" раста неприятны всем, или это я слишком привык к Java-style ООП? И более интересно, имеет ли смысл сейчас предпочитать rust c++ в новых проектах?
1\ когда я вижу огромное количество const и auto мне становится грустно.
2\ 30 млн водителей такси:? в РФ 78 млн работающих Или у вас обработка в одном ЦОДе для всей Планеты?
3\ Читая статью, не покидало ощущение, что переход на с++, был в общем то связан с переходом на Яндекс-карты. И всё большую завязку на нем.
Код сильно упрощён чтобы влезать на слайд. Убраны проверки, валидаторы. "auto" здесь отлично помогает. Я, лично, долго не применял его, но устав писать вечные "std::unordered_map<std::string, std::string>::const_iterator" и псевдонимы для них, понемногу втянулся. С "const" у меня отдельная, давняя любовь: я видел реальную пользу от него на brenchmark (возможно уже не актуально с современными компиляторами) и он помогает лучше структурировать интерфейсы и их использование.
30 миллионов рассмотренных в секунду не уникальных исполнителей (не только водителей такси, но и курьеров, водителей грузовиков и других), что для 20Krps даёт в среднем 1000 рассмотренных исполнителей на запрос. Одномоментно уникальных исполнителей в системе сотни тысяч. Технически готовы к миллиону. К слову, сейчас Яндекс.Такси работает в 18 странах. Вся планета, будем надеяться, будет чуть позднее.
Мы всегда использовали Яндекс.Карты и были сильно завязаны на них. Даже во время Python 2. И у нас только четыре сервиса с карточным графом из нескольких сотен сервисов. То есть это не было определяющим фактором.
На данный момент C++ до сих пор держится в топе востребованных языков, и, здесь нет ничего удивительного, на нем написаны чуть ли не все эти интернеты, поэтому я полностью на стороне автора.
А что у вас за движок для корутин? Он совместим со стандартом C++20?
Если кратко, то в основе лежит boost::coroutine, которая не совместима с корутинами из С++20.
Если подробнее, то есть отличный доклад по этой теме: https://www.youtube.com/watch?v=9fBriAl7PZI&t=329s
Зачем С++ в Такси? Доклад Яндекса