пятница, 20 июля 2018 г.

[prog.flame] И еще раз про Rust. Как я к Rust-у отношусь на самом деле

Судя по статистике посещений, недавние посты про Rust (№1, №2 и №3) продолжают привлекать к себе внимание. И, к сожалению, у некоторых альтернативно одаренных личностей складывается впечатление, что я пытаюсь гнобить Rust. Поэтому нужно расставить все точки над ё.

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

Уверен, что Rust пришел всерьез и надолго. И что у Rust-а вполне себе нормальное будущее. Только с поправкой на то, что нишу, в которой уместно применять нативные языки без GC, активно съедают и будут съедать безопасные языки с GC. Как языки с VM (в том числе и динамически типизированные), так и без оной (особенно в свете растущей популярности Go и работ над Java Native, Kotlin Native и т.д.). Так что я ожидаю, что Rust займет достойное место в своей нише. Но вот насколько широкой эта ниша окажется к тому времени -- это большой вопрос.


Теперь нужно затронуть важный вопрос: если я считаю, что у Rust-а светлое будущее, то почему сам Rust до сих пор не использую?

Тут все достаточно просто.

Во-первых, я в программировании уже так давно, да и сам уже не настолько молод, чтобы заниматься какими-то pet-project-ами в свободное от работы время. Мне уже программировать не так интересно, как 25 лет назад. Да и этого самого свободного от работы времени не так много (те, кто занимаются своим бизнесом поймут меня лучше), а когда оно появляется, то у меня есть на что его потратить.

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

Поэтому мы не верим, что в настоящее время и в ближайшее обозримое будущее (т.е. в пределах 1.5-2 лет) Rust будет способен хоть как-то прокормить нашу компанию. Поэтому в Rust мы не вкладываемся, просто не имеем на это ресурсов (коих не так много, как в какой-нибудь Mozilla или Dropbox-е).

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

Так что, резюмируя: мы не используем Rust не потому, что не любим Rust, а потому, что в текущих реалиях зарабатывать заказной разработкой на C++ можно, в отличии от.


По поводу "набросов" и "критики" Rust-а.

В любом языке программировании, на котором мне приходилось делать что-то посложнее HelloWorld-а, обнаруживались вещи, которые мне не нравились. Будь то Pascal, C, C++, VisualBasic, Java, Ruby, D, Eiffel или что-то еще.

Подчеркну: в любом языке обнаруживалось что-то, что мне не нравилось.

Это не значит, что языком нельзя пользоваться. Не значит, что язык ущербен и его нужно закопать.

Это значит лишь то, что я нахожу субъективные "недостатки" везде. И Rust здесь не исключение. В частности, мне не нравится синтаксис Rust-а. И меня смущают темпы выпуска новых версий языка. О чем я и говорю, т.к. считаю, что имею полное право высказывать свое субъективное мнение.

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


Ну и пользуясь случаем еще раз подчеркну: если у кого-то есть проблемы с C++ кодом или же есть потребность в разработке на C++, то наша компания может вам помочь. Наверное, мы сможем вам помочь даже если вам нужна разработка на Rust ;)

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