С высоты-2

Jul 08, 2019 17:25


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

Ну и что я сделал. Я пошел учить Rust. Не, ну интересно же, как компьютеры сегодня ( Read more... )

Leave a comment

anonymous July 8 2019, 14:39:34 UTC
Переписать готовую логику с кложи или питона на раст конечно несложно. Ты это уже писал один раз, недавно, всё хорошо помнишь как работает. Прототипировать и растить программу на расте значительно сложнее, чем на кложепитонорубях.

Reply

tonsky July 8 2019, 14:40:51 UTC
почему? что мешает прототипировать на расте?

Reply

anonymous July 8 2019, 14:58:21 UTC
Типы и злобность компилятора. Тут думать о домене пытаешься, а раст такой - неее, так думать нельзя, думай только сяк.

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

Reply

tonsky July 8 2019, 15:22:29 UTC
я допускаю что будет некая разница, даже если сравнивать яблоки с яблоками: новый код на расте и новый код на кложе. Но я же не говорю что это бесплатно. Я говорю что результат того стоит

Reply

anonymous July 8 2019, 17:54:57 UTC
Кому стоит, кому нет

Reply

tonsky July 8 2019, 18:52:10 UTC
Если программировать для удовольствия программиста, то наверное нет. Если для пользователя, то да. Пойди объясни каждому человеку, зачем ему пять секунд каждый раз ждать, пока электрон браузер подымет и весь js код распарсит. Тем более что честный ответ - низачем, нет такой причины.

Reply

anonymous July 9 2019, 05:34:05 UTC
Если ты редактор пишешь, то конечно не надо на электроне это делать.

Reply

anonymous July 9 2019, 05:35:29 UTC
По крайней мере продакшен-вариант не стоит. Может, если ты хочешь проверить какие-то архитектурные идеи, то их можно и на более высокоуровневом языке пробовать, чем раст/плюсы

Reply

thedeemon July 9 2019, 09:16:41 UTC
Нунинаю, я в vscode не вижу каких-то тормозов, вполне годный редактор сейчас по моему опыту. Может, я сам тормоз, а вы все три миллисекунды от двух отличаете.

Reply

binf July 9 2019, 15:56:24 UTC
Когда заходит речь про практическое применение хаскеля, предвзятые собеседники любят тыкать спам фильтром фейсбука. Будто бы уже один этот кейс доказывает что хакель ого-го для типичных задач бизнеса. Вот тоже самое вскод в качестве эдакого флагмана электрона - миф и не более того. Майкрософт его заоптимизировала донельзя, натыкала native модулей, куда там обычному разработчику хоть близко что-то подобное воспроизвести. Что подтверждает практика: типичная электрон-аппа отнюдь не вскод, а слака или что похуже.

Reply

anonymous July 13 2019, 10:11:33 UTC
Так ведь пример электрона (и всего веб-говна вообще) как раз и показывает, что 1) не стоит и 2) пользователю норм. К сожалению (а может и к счастью).

Reply

anonim_legion July 13 2019, 21:24:03 UTC
Пользователю не норм, но пользователя вообще не спрашивают. А всё потому, что айти-конторы перестали жить с денег от пользователей, им теперь инвесторы важнее.

Reply

anonymous July 8 2019, 16:21:45 UTC
У меня был опыт - прототипировал на расте, для задачи по работе, а потом с нуля переписал на питоне (к сожалению во всей компании не было ни одного растовода, поэтому и пришлось на питоне делать).
По ощущениям - на расте прототипировать не сильно сложнее, чем на питоне. Но я C++ разраб, я уже свыкся с zero-cost abstractions и с чем их едят.
А с питоном же были свои проблемы, а) у команды всё равно появлялось немало вопросов по коду на питоне (например как работают параметры по умолчанию); б) отсутствие статической типизации - тяжело менять API одного модуля, чтобы не взрывались зависящие от него модули.

Reply

anonymous July 10 2019, 21:20:27 UTC
Typehint’в - must have

Reply

ext_3289791 July 8 2019, 16:57:30 UTC
>Типы и злобность компилятора. Тут думать о домене пытаешься, а раст такой - неее, так думать нельзя, думай только сяк.

Со временем вырабатывается интуиция, чего от тебя хочет компилятор Rust и как обращаться с владением типов.

Совсем голову напрягать приходится, когда хочется какой-то очень абстрактный код и оптимальный написать, но для прототипа можно обойтись кодом попроще (Arc/Box/Rc/.clone() вместо заимствования, копи-паста вместо заумных типов, и.т.д).

Ещё мне лично было иногда трудно стыковать разные части системы которые хотели по-разному владеть данными (в основном, заимствование & vs владение через Arc/Rc/Box). В Rust как то уж слишком сильный разлом между borrowed vs owned и система типов порой слабовата для удобной стыковки (нет GAT, нет first-class поддержки self-referential, и.т.д.).

Но это уже особенности энтерпрайза, где нужно склеивать крупные подсистемы (ну или нашего подхода к этому энтерпрайзу :) ).

Reply

anonymous July 8 2019, 17:58:39 UTC
Не сильно ли мешает множество каких-то разнообразных фич в языке? Допилят еще все GAT’ы, как потом в этом разбираться всем, почти плюсы получатся. Я на расте пару сотен строк кода написал только, довольно простых.

Действительно уж увидишь плюсы от гошного подхода с супертупым кодом и минимум фич в языке

Reply


Leave a comment

Up