Rodegast
Вот недавно видел доклад с критикой rust-а.
Ну критика не критика, я смотрю на сам язык обычно. За тот же Kotlin все что-то там говорят, восхваляют его, а мне он воообще не нравится. Так что я и Rust бы не стал изучать, не произведи он на меня впечатление.
Не знаю, насколько ты изучал его (ознакамливался с ним), но там есть такая особенность, которой нет в других языках. В чём прикол: вот все ставшие известными заморочки в языках, которые стали известны в течении десятков лет использования этих языков, от них от всех там пытаются избавиться, и им это удаётся, потому что способы избавления они выдумывают свои.
Например, вот сборщик мусора, который в Java или в C# занимает время рантайма, а в C и в C++ просто отсутствует и из-за этого приводит к утечкам памяти и потерям других ресурсов, они решили как бы сделать, взяв все плюсы, и как бы не сделать, убрав все минусы. Получилась новая концепция: сборщик мусора есть, но он внутри компилятора и поэтому его нет. То есть это что-то новое, какой-то третий путь, как третий глаз.
И поэтому он системный (в отличие от Go и Kotlin), но при этом в нём сборка мусора есть, как в удобных Java там и прочих. То есть он удобный, но при этом подходит для системного программирования, где всё впритык должно быть по памяти и по времени.
Также там есть ссылки, но при этом нет проблем со ссылками, как во всяких языках со ссылками типа Java и C++. Ну там эти висячие ссылки или ссылки на нули - это целая проблема всех языков со ссылками, и надо уметь это всё видеть и не допускать, целый набор навыков надо иметь, чтобы красиво писать и потом не дебажить это всё. А тут ты просто эти проблемные ссылки не создашь, потому что их обдумали, заморочились этим и запретили просто к существованию. То есть ссылки есть, но только беспроблемные.
Поэтому он вот такой необычный. Он отличается от Go, Swift и так далее. У него свои концепции, а не типа “просто ещё один язык”. Так что из-за этого его и подхватили, он современный, продуманный ещё. Например, там есть проверка границ массива, не вылез ли ты за границы, но она не идёт в бинарник и поэтому в бинарнике ничего не проверяется и время на это не тратится. А в других языках, если она есть, то она в бинарник идёт, а если её нет, то там оуверфлоу бывает частенько и за границы массива что-то пишется или что-то читается оттуда. При этом он современный, в нём все новые фичи есть, инкапсуляция, полиморфизм, то есть он отличается от C, потому что в C постоянно надо что-то выдумывать, чтобы современно всё сделать.
Изучать его тяжеловато. Он какой-то мудрёный из-за больших количеств синтаксического сахара, который там постоянно добавляют с каждыми версиями языка. Я уже полкнижки прочитал, а написать на нём ничего не могу до сих пор. Ещё много чего надо изучить, чтобы просто консольные проги писать. Там разобрать XML - целая проблема, разобрать JSON - целая проблема. И так во всём. Постоянно надо сторонние модули скачивать, а они ещё все по-разному устроены.