Ещё одно разочарование.

Jan 21, 2016 16:51

Для Хаскеля нет простых веб-фреймворков.

Вообще нет, совсем, никаких.

Это связано с тем, что все (ВСЕ!) веб-фреймворки используют WAI. WAI, Web Application Interface, представляет из себя библиотеку в 18 (примерно) каталогов, каждый из которых содержит по несколько исходных файлов ( Read more... )

web design, не нравится, Хаскель

Leave a comment

highway99 January 21 2016, 15:33:19 UTC
Ну вот нахера пытаться писать вебморды на Хаскеле? Когда-то бэкенды писали на С++ через CGI, но это не значит, что надо продолжать убиваться ап стену. Чем JS устраивает? Ну, или, там, Руби, Скала, Го, наконец. Да мало ли.

Reply

thesz January 21 2016, 15:37:45 UTC
Вы читали ли про преимущества Хаскеля в программировании?

Reply

highway99 January 21 2016, 16:06:04 UTC
Года четыре (или больше) назад я весьма заинтересовался Хаскелем, перерешав кучу Эйлеровых задачек. Написал пару эвристических парсеров, типа как вытаскивать человеческий смысл из доменных имен, чтобы из newyorkforkids.com стабильно получался New York For Kids, а не New York Fork IDs. Да, я понимаю академический интерес использования чистых функций и практическую ценность _некоторых_ решений. Но совершенно не понимаю ценность Хаскеля в вебе. Так что если поделитесь ссылкой на "преимущества Хаскеля в программировании веб-бэкендов", буду весьма признателен.

Reply

thesz January 21 2016, 16:10:42 UTC
Типы.

Reply

18cc January 21 2016, 16:11:45 UTC
А как же "для каждой задачи есть свой инструмент"?

Reply

thesz January 21 2016, 16:19:48 UTC
"Его имя Роберт ПолсонHaskell!"

Что вы собираетесь предложить в качестве инструмента для программирования веб-серверов?

Reply

highway99 January 21 2016, 16:22:14 UTC
ну Node, же. Если стандартного Express'а не хватает, там есть еще некоторое количество интересных штук.

Reply

thesz January 21 2016, 16:33:54 UTC
Я не знаю, что такое "стандартный Express".

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

Reply

highway99 January 21 2016, 16:50:53 UTC
Express - это Web Application Framework для ноды. Ну, куча middlewares, так что готовый бэкэнд с дб, орм, json, сессиями, всякой прочей хренью - можно накодить за пол-часа. Ну, для продакшна, может, за пару дней.

Ну, JS как язык с 1996 года не очень-то изменился, да. Но весьма серьезно изменилась парадигма его использования. Теперь никто не пишет `for (i=1; i<=10; i++) ...`. Пишут или `for (i=10; i--;) ...` или `Array.apply('whatever', Array(size)).map(function(e, i){ ...`. Функциональщины теперь в JS полно. Промисы, опять же.

Безопасно менять логику позволяют тесты (отдельный разговор про то, что их надо грамотно писать).
Типы есть (TypeScript, интерпретируется в JS), но это оверкилл. Но все равно, тру-JS программеры прекрасно обходятся без типов.

Happstack Philosophy почитаю попозже.

Reply

thesz January 21 2016, 16:58:35 UTC
Тесты.

В SQLite 1100+ строк тестов на одну строку исходного кода. Было на момент написания вот этого текста: http://lcamtuf.blogspot.ru/2015/04/finding-bugs-in-sqlite-easy-way.html

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

Reply

highway99 January 21 2016, 17:18:00 UTC
Вооооот. Как я писал выше про тесты, ключевая фраза - "надо грамотно писать". Мелкий тупой начальник + куча исполнительных (и безразличных) индусских программеров = 100500 бессмысленных юнит-тестов (это я не про SQLite, я про мою контору ( ... )

Reply

thesz January 21 2016, 17:36:29 UTC
Вы разговариваете не со мной, а с кем-то в своей голове. И даже не про типы и Хаскель, а про какие-то вещи, которые вас чрезвычайно волнуют и совершенно неприменимы к моей ситуации.

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

Вот: http://thesz.livejournal.com/719123.html

Я не могу не применять свой опыт программирования (весьма широкий, надо отметить). Он мне говорит, что Хаскель я могу применить очень продуктивно, с малым количеством ошибок и хорошим результатом. А вот языки типа JS - увы, нет. 300 строк верхний предел.

Reply

mudasobwa January 21 2016, 19:50:11 UTC

Поправьте меня, если я ошибаюсь, но в исходной записи превалировало нытье про то, что на хаскеле хрен чего запрограммируешь вообще (в вебе), тут уж не до эффективности.
Ну и да тесты можно самому себе наперед писать, чтобы потом не уйти торной тропой в избыточный функционал.
Недавно в твиттере проскочило: Weeks of coding might save you hours of design.

Reply

thesz January 22 2016, 10:55:07 UTC
Меня уже поправили - есть простой фреймворк, happstack.

У нас программа делится на две части - неизвестная и известная. Я считал, что веб-программирование мне известно и понятно (я, бляха муха, свой первый веб-сервер в 1996 году написал, на Си), однако первое впечатление показало, что вместо привычных мне концепций мне надо изучать сложный WAI. Это означает, что тонкой прослойки между неизвестной (пока) логикой программы и пользователем не получится. То есть, я получил сложность на ровном месте.

Упоминание happstack убрало эту сложность.

Далее, в программе в обязательном порядке есть кусок кода, который никто никогда до этого не писал - собственно, за это, обычно, и платят, и чем он больше, тем больше платят. Это та сложность, к которой я привык и что я ожидал. Поскольку его никто никогда не писал, вы с ним один на один. Чтобы не потерять даром время надо допустить в его реализации как можно меньше ошибок. Здесь типы самое то.

Reply

mudasobwa January 22 2016, 12:39:02 UTC
> чем он больше, тем больше платят
Ну это спорный тезис :)

> надо допустить в его реализации как можно меньше ошибок. Здесь типы самое то.
Ну а я скажу: «Здесь типы нафиг не вперлись, здесь тесты самое оно». И кто из нас прав, проверить невозможно. Можно только статистику по успешному мировому продакшену посчитать, в которой хаскеля, скорее всего, не будет вовсе.

Reply


Leave a comment

Up