пятница, 12 июля 2019 г.

[prog.flame] Пятничное дополнение ко вчерашнему посту. Снова про Rust

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

А что будет, когда на Rust-е начнут программировать разработчики уровня сильно ниже среднего?

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

Между тем история показала, что для языка, претендующего на широкое использование, толерантность к "дятлам от программирования" крайне важна.

Так, на примере C++ видно, что есть языки, которые не прощают тупость разработчика.

Что-то похоже, полагаю, можно сказать и про Scala. Там, правда, последствия не такие катастрофические, как в C++, но несопровождабельный код, который проще переписать, чем понять, на Scala пишется легко.

Тогда как языки Java и Go зарекомендовали себя просто отлично с этой стороны. Высказывание "на Java можно посадить толпу индусов" -- это уже давно не фигура речи, а многократно подтвержденный успешный менеджерский опыт. Причем "индус" здесь не национальность, а уровень квалификации.

Так вот, мне не понятно, что будет происходить с разработкой на C++, когда туда придут персонажи, вроде RussianFellow с RSDN-а. Чтобы было понятно, о чем речь, вот замечательный образчик. И если кто-то думает, что подобные персонажи -- это редкость, то смею вас разуверить. Не редкость.

В свое время, когда C++ был настоящим мейнстримом, таковых было множество. Со временем, к счастью, изрядная их часть перешла в Java и C#. Но часть, к сожалению, еще осталась. И, если Rust продолжит набирать популярность, они неизбежно туда подтянутся.

Имхо, вариант Haskell-я, когда посредственности в этот язык просто не идут, здесь не прокатит. Т.к. Haskell в силу разных причин никогда и не мог претендовать на широкое использование. В отличии от Rust-а.

Так что будет интересно посмотреть на то, что произойдет. Выпрямит ли Rust-овский компилятор растущие из жопы руки? Или этот самый компилятор наеб*т посредством расставления unsafe в коде, ибо дедлайны, нужно фичи в прод выкатывать, а не ублажать borrow checker.

3 комментария:

Анонимный комментирует...

> Или этот самый компилятор наеб*т посредством расставления unsafe в коде, ибо дедлайны, нужно фичи в прод выкатывать, а не ублажать borrow checker.

This.

В языке, где закрутили гайки до состояния: "без unsafe не написать двусвязный список," - другого варианта нет.

Nikita комментирует...

Так ведь unsafe — это не какой-то табуированный подход, который разрешено применять только в самых крайних случаях. Скорее, говнокод получится, если фанатично избегать использования unsafe.
Да и что говорить, говнокодить будут везде и всегда. Не говнокодят на тех языках, которыми никто не пользуется. И чем выразительнее язык, тем более адовый говнокод на нём можно создать. В итоге, чтобы мир не утонул в говне, популярность языка должна быть обратно пропорциональна его выразительности, и похоже, что есть механизм саморегуляции, который уже давно такой гомеостаз поддерживает. Scala тоже была на хайпе, но рынок определил ей место, так же будет и с Rust.

ssko комментирует...

Про связный список и unsafe - это иллюстрация того, как много неявного мы предполагаем, когда создаем этот самый список на C/C++))))
А пример с РСДН помог мне восстановится после дня бодания с raw nand... Спасибо!