Как стать автором
Обновить
30
0
Станислав Ткач @DarkEld3r

Rust developer

Отправить сообщение

GUI в расте нормально (в продакшене) не щупал, поэтому спорить не буду. Хотя мне кажется, что GUI в целом чаще в виде фреймворков реализован. Ну а касательно тоника - коммуникация через каналы кажется вполне себе прямым способом, а не костылём.

разработаны в формате фреймворков

Мне кажется, что выборка специфическая. Я не придираюсь, скорее любопытно. Можно список, скажем, из десяти таких библиотек? По моему, это справедливо для веб-фреймворков, но зачем иметь несколько в одной кодовой базе? Ещё можно про асинхронные рантаймы и то практически все используют токио и не парятся.

Так я же не спорю с претензиями к языку. Автор оригинальной статьи поделился ценным опытом, можно быть в чём-то не согласным, но мнение в любом случае полезно. Но после вот этой цитаты:

Ну человек прав в том, что все rust комьюнити этого не понимает.
То есть они пытаются писать движки вместо игр

Мне показалось, что мы обсуждаем конкретно то, что движки делают "не так как надо". Вот и высказался, что пока этим занимаются несколько энтузиастов в свободное время, то такие претензии не совсем по адресу.

Не понимают целей и задач разрабатываемого ПО.

Подозреваю, что большинству из тех, кто пилит движки (тот же беви) интересно как раз пилить движок. Учитывая, что это всё делается на добровольных началах, то странно предъявлять претензии к тому как люди тратят своё свободное время.

Да, было бы неплохо, если появился бы конкурент коммерческим движкам на расте, но я не уверен, что есть смысл это требовать от кучки энтузиастов.

Вместо следования semver (что вообще-то является обязательным для проектов cargo, т.к. именно так cargo обрабатывает поле version), автор наперекор всем делает ломающие изменения в патчах

А разве это именно ломающее изменение? Вроде, же просто расширение апи? Ну то есть формально да, это нарушение семвер, но не кажется прям большой проблемой. Ну и если бы у серде стали мажорную версию инкрементировать, то больно стало бы всем.

Ну а так-то чувак тащит на себе кучу крейтов. Ожидаемо на всё времени не хватает, но да, меня тоже расстраивает, что "делиться ответственностью" он не спешит.

Предположу, что человека смущает слишком яркая "титульная" картинка проекта.

Yвеличение времени компиляции и IDE с макросами не очень хорошо работают. Хотя в данном случае мне кажется, что от этого никуда не деться.

Дык, в С++ множество WTF моментов вызваны как раз синтаксисом, который вынужден быть таким из-за совместимости. А это в расте можно понемногу изменять.

У нас rougelike? Там надо по стопиццот раз ударить по шарику слизи, чтобы нанести ему урон.

Разве это правда? По моему, данный жанр определяется походовостью, процедурной генерацией уровней и окончательной смертью.

Но тогда игра превращается в rougelike набор квестов, в которых надо фармить миллион кабанов.

По моему, rougelike тут используется как синоним убогой игры. Миллионы кабанов - это скорее про ммо.

Это не в защиту смуты, просто не понятно чем совсем жанр провинился, который тут и рядом не стоял.

вот эта смесь такого подхода к именованию

А что не так с именованием?

и думаешь, ну нормально же все на typescript пишу. Непреходящее ощущение от Rust, что это как C++ std 2.0

Раст всё-таки достаточно низкоуровневый, переходить на него с языков со сборкой мусора есть смысл только если есть понимание зачем.

Нытьё про хайп тоже. Такая реакция понятна когда расто-фанатики приходят с агитацией в тему про С++. Но тут-то это причём? Новость вполне интересная: показывает и интерес от гугла и любопытно будет посмотреть на результаты.

И тем не менее такой стиль часто встречается. Мне лично с mod.rs тоже больше нравится.

Если человек лепит проверки наугад, то шанс, что он забудет что-то "критически важное" наоборот повышается. Ну и плюс мусорный код затрудняет чтение.

Мне хаскель тоже нравится, но как сюда добавить лайфтамы?.. Более того, есть подозрение, что те люди, которые на синтаксис раста жалуются, от хаскеля ещё больше взвоют. В конце-концов большинство языков С-подобные, а плюсовиков и треугольными скобками не напугаешь. Основная претензия к кавычкам лайфтаймов.

В том числе. Наверное, зависит от того как смотреть: для "полноценно компилируемых" языков JIT действительно не нужен. Но вроде как ни джава ни C# не считаются интерпретируемыми?..

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

Как будто что-то плохое. Да и бывают языки сильно разные и дающие новые абстракции и "технологии". Одно дело изучать Swift/Kotlin/C# один за другим (и то каждый язык даёт доступ к куче библиотек соответствующей платформы) и совсем другое пощупать хаскель или лисп. Да банально С++ после С уже много нового даст. Опять же, если всю жизнь писать на языках с GC, то язык с "ручным" управлением памятью заставит думать иначе.

вот при чем тут жабаскрипт и rust?

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

JIT. Это прерогатива интерпретируемых языков.

Разве?

Но вот например авторы salsa решили для своих отменяемых запросов применять подход, сильно напоминающий использование исключений

Любопытный пример, на досуге изучу подробнее. Но пока остаюсь при своём мнении, что это всё же редкость.

И это уж не говоря о ситуациях, когда ошибки и не стараются прокидывать наверх вовсе, а просто пишут unwrap().

В определённых случаях это вполне уместно.

Это пока вам не нужно преобразовать один "не ваш" тип, входящий в состав Result в другой "не ваш" тип для его дальнейшего проброса наверх.

Если преобразовывать надо в чужой тип, значит на это полагается какой-то внешний код. То есть, преобразование и с исключениями нужно будет. И в этом случае бойлерлейта будет даже больше:

foo().map_err(|e| AnotherError(...))?;
try {
    foo();
} catch(SomeException e) {
    throw AnotherException(...);
}

Хех, ну судя по рейтингу статьи и каментам, читатель не впечатлился :) Так что так себе пример.

Только сейчас заметил, что дал ссылку на статью в комментариях к которой мы и находимся. ? Переходил к обсуждению из почты, так что не обратил на это внимание. Но вообще подобное нытья я тоже видел неоднократно.

Вам ссылку на ваш комментарий еще раз прислать?

И где там такое? Ещё раз: я про техническую возможность. Да, она есть. Точно так же как технически можно сделать С++ либу с ошибками через подобие errno/GetLastError. И не удивлюсь если даже такие примеры можно найти, но утверждать, что это распространённая практика, которую кое-как сдерживают рекомендации будет весьма странно.

Или вы придрались к слову "повсеместно"?

Нет, я придрался к "такая практика распространена достаточно широко". И то не придрался, а поинтересовался есть ли повод для таких утверждений или это просто гадания основанные на формулировке из документации.

"Повсеместно" народ пишет бойлерплейты по прокидыванию наверх Result'ов

Что ж, я рад, что в этом мы согласны. Ну с поправкой, что все эти ужасные бойлерплейты как правило состоят аж целого вопросительного знака. Ок, нескольких вопросительных знаков по стеку вызовов.

Казалось бы, что плохого в том, чтобы иметь выбор?

Разве это не очевидно? Фрагментация инфраструктуры и неудобства при интеграции библиотек, авторы которых сделали выбор противоположный нашему. Если что, я не собираюсь спорить, что как возможность выбирать в целом, так и исключения в частности имеют свои достоинства.

А потом дженерики добавили в язык, и довольных этим в конечном счете оказалось больше, чем недовольных.

Опять же, любопытно есть ли статистика? И можно ли в принципе её объективно собрать... Так-то мне периодически попадались статьи и жалобы, вот например из недавнего на хабре. Да и что могут сделать недовольные? Максимум не использовать дженерики в своём коде, не форкнуть же язык в самом деле.

1
23 ...

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность