суббота, 15 мая 2021 г.

[prog.flame] Стабильному Rust-у исполнилось 6 лет

Шесть лет назад состоялся релиз "стабильной" версии Rust 1.0. Так что именно с 15-го мая 2015 года можно смело отсчитывать возраст языка программирования Rust.

Давеча в FB я уже высказался на эту тему. А данный пост можно рассматривать как расширенную и дополненную версию FB-шной заметки.

Революции не случилось

Главное, что хочется сказать в очередную годовщину выхода Rust-а в свет, -- это то, что Rust пока что не изменил ландшафт нашей софтостроительной индустрии.

Да, где-то Rust начал применяться. Но масштабы этого применения, насколько я могу судить, довольно скромные. Если бы каждое упоминание использования Rust-а в продакшене не сопровождалось настолько бурным PR-ом (коего я не могу припомнить со времен, когда Sun активно пиарила свою Java, а Microsoft затем свой .NET), то могло бы сложиться впечатление, что Rust используется ну очень уж редко.

Что довольно удивительно с учетом хайпа, который сопровождает Rust все это время. Причем хайп-то начался еще за год-полтора-два до выхода стабильной версии 1.0.

Сколько там лет подряд на Stackoverflow Rust признают самым любимым и желанным языком? Три или четыре? А каково реальное влияние Rust-а на индустрию?

Тем, кто считает, что я навожу напраслину на Rust, советую просто сравнить значимость Rust-а для индустрии разработки сейчас, в 2021-ом году со значимостью C++ в 1991-ом, Perl в 1993-ем, VisualBasic в 1996-ом, Java в 2001-ом, JavaScript в 2004-ом, C# в 2006-ом, Go в 2018-ом (да даже в 2015-ом). Как бы высокопарно это не звучало, но все вышеперечисленные языки спустя 5-6 лет после выхода своей первой стабильной версии просто напросто перевернули представления о том, как разрабатывать софт в определенных прикладных нишах. Ни много, ни мало.

Что Rust продемонстрировал на 146%?

Rust стал отличной демонстрацией того, насколько важно сейчас, в XXI-ом веке, изначально закладываться на инфраструктуру для языка и его пользователей. Ведь то, чем Java, C#, Python, Ruby и JavaScript обзаводились в течении нескольких лет, в Rust-е сделали с самого начала. Речь про Cargo, если что.

Эта самая дружественная пользователю инфраструктура "искаропки" для Rust-а, на мой взгляд, чуть ли не самое главное преимущество Rust-а перед C++. Особенно для молодежи, которая программирования на нативных языках еще не нюхала, но хочет куда-то уйти со своих тормознутых JavaScript/Python/Ruby.

Насколько вообще Rust нужен в современном мире?

Но, вернусь к главному: наши представления о том, как именно нужно разрабатывать софт в какой-то из прикладных ниш, Rust пока что не поменял.

Чему, полагаю, есть вполне себе объективная причина: сам по себе Rust, как безопасный язык для относительно низкоуровневого программирования, мало кому сейчас нужен. Ведь, с одной стороны, есть безопасные языки с GC, которые для прикладного программирования, имхо, подходят куда как лучше.

С другой стороны в нишах, где требуется шустрый нативный код, давным давно живут чистый C и C++. И хотя оба эти языка сложно назвать хорошими и удобными инструментами (особенно чистый C), но они там живут уже давно. И это мешает проникновению туда Rust-а. Если кто-то думает, что хардкорные системщики и железячники, для которых чистая Сишечка -- это их все, с радостными воплями и вприпрыжку побегут переходить на Rust, то я бы хотел, чтобы вы поделились со мной своим оптимизмом.

Так что, по большому счету, Rust в современном мире нужен мало где. А там, где он нужен, его использование будет далеко не бесплатным. Хотя бы за счет того, что порог входа в язык достаточно высокий. Что, по моему мнению, и объясняет то, почему Rust в 2021-ом не является таким же мейнстримом, как Java в 2001-ом или Go в 2018-ом.

Более того, часть успешных внедрений Rust-а -- это переписывание Ruby-истами или Python-истами какого-нибудь тормознутого говна на динамике на нативный статически-типизированный язык, за компиляцию которого в нативный код отвечает не хз кто, а LLVM. И этого бы переписывания именно на Rust не было бы, если бы был вменяемый язык общего назначения с GC, который бы компилировался в нативный код. Что-то вроде Native C# или Native Kotlin.

Пока что в этой нише можно вспомнить разве что убогонький Go и так и не взлетевший, но уже чрезмерно переусложненный D. Ну а те же Eiffel с Ada можно даже и не вспоминать. Они еще менее пригодны для мейнстрима. А Swift от Apple вне экосистемы Apple, наверное, и не встречается в дикой природе. Да и к скорости Swift, насколько я понимаю, есть вопросы...

Так что тот факт, что Java привязана к JVM, а C# к .NET с MSIL, как раз и расширяет нишу потенциального использования Rust-а. Ну не C++ же брать вчерашним PHP-шникам, Ruby-истам и JS-ерам :)

А вот как долго будет работать этот фактор -- это вопрос.

Мое отношение к Rust-у на данный момент

У меня лично по отношению к Rust-у смешанные ощущения.

С одной стороны, жаль, что не решился вложиться в Rust в 2016-ом или в 2017-ом. Возможно, портируй мы SObjectizer на Rust или сделай мы RESTinio для Rust-а, то полезный выхлоп для нас был бы больше, т.к. в те времена экосистема для Rust-а была чистой поляной. Но история не знает сослагательного наклонения, не вложился тогда, бесполезно сожалеть теперь.

С другой стороны, сам язык для меня все еще выглядит как read-only. Не Perl, конечно, но и образцом читабельности код на Rust-е мной не воспринимается. C++, конечно же, ничуть не лучше (а может все-таки и получше местами), но быть на одном уровне с C++ по читабельности кода -- это отнюдь не великое достижение.

Так что писать что-то на Rust-е для себя как-то не хочется. За чужие деньги, наверное, можно было бы попробовать. Но, кажется, на Rust-е сейчас кроме криптобирж и блокчейна ничего особенно и не пишут. Ну или Python-исты с Ruby-истами какие-то мелочи для ускорения своих тормознутых поделий на Rust переписывают.

Гораздо интереснее рассматривать Rust как своего рода технологически-культурный феномен: в дикой природе Rust встречается редко, для мейнстримовых задач, которые успешно решаются на Java/C#/JavaScript/Python/Ruby/Go, он в принципе-то и не нужен, хардкорные системные программисты относятся к Rust-е с настороженностью... Но хайп вокруг Rust-а все еще сохраняется.

Спустя шесть лет.

Вот это как раз и восхищает. И очень интересно посмотреть куда же все это в итоге приведет.

Ведь не может же хайп держаться вечно. Так что весы должны сильно качнуться в какую-то сторону. Либо Rust станет самым настоящим мейнстримом. Либо же уйдет в какую-то узкую нишу и станет специализированным инструментом для особых задач. Либо еще что-то.

Будем посмотреть еще через шесть лет. Если доживем.

Комментариев нет: