Наловчился ехать с работы домой так, чтобы полдороги сидеть, раскрыв лаптоп; это даёт хорошее представление о том, сколько можно успеть написать за 15 минут. Заметил, что игрушечного кода на хаскеле я успеваю за это время написать ощутимо больше (по функциональности), чем игрушечного кода на питоне.
И это при том, что #haskell я знаю пока так себе и периодически раздумываю, как и что и на что ругается компилятор. А с питоном я вожусь с 1998 года, знаю большую часть ходов и выходов и раздумывать над технической стороной не требуется. И не то чтобы #python — многословный, невыразительный язык; ни разу же. (#programming, #nargery) ‎- 9000
^ - дело только в экспрессивных возможностях хаскеля по отношению к решаемой задаче, или правду говорят "на нём удобнее думать"? ‎- aint so saint
И насколько потом код модиффицируем? ‎- Все собаки попадают в рай
Да, я пришёл к похожему выводу. Мой основной язык тоже Питон. Лёгкость рефакторинга и выразительность системы типов как то все ускоряют. Сначала данные, потом код. Порог входа только невъбенный, но потом накрывает, и все встаёт на свои места ‎- big data in petite analysts
Вообще мне кажется после питона это natural stepping stone, почти все остальное кажется блевотным ‎- big data in petite analysts
@aintsaint мне на нем действительно удобнее думать после некоторой перестройки мозга. ну то есть я вдруг понял что мне намного легче думать в терминах трансформаций данных чем в объектных паттернах и в императивных последовательностях шагов. Те куски которые императивные, они удобно упакованы в монадах. Но с другой стороны я не настоящий программист, возможно это мои особенности. ‎- big data in petite analysts
Заранее прописанные типы действительно помогают думать, как на этапе их прописывания и придумывания, так и при взаимодействии с получившимся кодом. Думается точнее → делается меньше ошибок (бессознательно, потому и безлично). Синтаксически дешёвые функции позволяют более мелко и более внятно порезать код (заодно правильно именуя промежуточные сущности). Ленивость в ряде случаев сильно экономит знаки, но и в питоне ленивость, когда надо, достижима без особых усилий, только длинее писать. При моей склонности писать функции не больше чем по 10, а лучше по 5 строк с модифицируемостью всё нормально в обоих случаях. Pattern matching при определении функций, наверное, экономит больше всего знаков и когнитивных усилий. Функторы / аппликативы / монады хорошо экономят усилия на низком уровне (скажем, уровне выражений, не сложных наборов функций), примерно как list comprehensions и generators в питоне, но они мощнее. На высоком уровне и на питоне можно написать сравнимо, но больше приходится делать руками, т.к. standard library в этом месте беднее. И, конечно, выявление ошибок в процессе компиляции, а не прогона тестов — бесценно и реально экономит время; вчера у меня половина времени ушла на выяснение, почему не проходит тривиальный тест, что выявило ошибку мышления сильно выше по течению. Её бы выявить раньше, но нечем. ‎- 9000
очень круто, я что-то подобное как эффект функциональных языков на нормального человека. ‎- aint so saint
Просто оставлю это здесь https://github.com/billpmurphy/hask ‎- Я много страдала
^ Просто праздник какой-то! :) ‎- 9000