metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-10-11 03:22 pm

Динамическая типизация, или статическая типизация для ленивых

Вчера [livejournal.com profile] ivan_gandhi сделал замечание что я, пользуясь динамически типизированной кложурью, при этом требую, чтобы в Java проверяли входные параметры на валидность. (Если что, проверка валидности в дотнете есть на каждом шагу, а объяснения вида "экономят циклы и не делаю проверки" в контексте жабы, тяжелого железа, JIT и прочего звучат крайне странно).
Собирался на эту тему устроить срач с утра, но [livejournal.com profile] thedeemon уже начал, так что я продолжу :)

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

Например, я хочу использовать кортеж с именованными полями (потому что позиционные кортежи нихера нечитабельны и их тип вида int*string*smallint*money*bool*Chervie ни о о чем не говорят). От входа в F# при этом нужно:
1) объявить этот чертов record где-то
2) сослаться на модуль с объявлением везде где он нужен
3) создавать экземпляры рекорда кривопачвярными конструкциями, причем оставить поля значениями по умолчанию нельзя.
4) паттерн матчинг с декомпозицией вроде не работает с рекордами.

Хаскель сразу закапываем - там на каждый случай имеется 3-4 расширения и 10 пакетов в hackage различной степени недоделанности, идиоматический подход - писать в point-free style, чтобы коллеги не разобрались, а работать в продакшене можно только с теми сторонними библиотеками, которые я могу сам починить.

При этом, у меня при работе с оперденями постоянно ситуации вида: есть запись с тремя полями, полученная из БД, мне нужно произвести обработку этой записи и добавить результат обработки в виде четвертого поля, получив новый тип записи.
Я НЕ хочу объявлять каждый раз такое руками и в Clojure это делается элементарно, добавлением нового ключа в map в функции-обработчике записей.

При этом РЕАЛЬНО динамическую типизацию я не использую. Она мне почти не нужна, потому что единственная ситуация, где вменяемый человек будет на одном цикле биндить к имени число, на втором строку, на третьем - список записей - это когда по условию задачи нужна, например, EAV-модель во все поля. И то - обычно EAV делается от безысходности, потому что пользователь не может нормально работать со схемой БД, а задача требует чего-нибудь вроде "добавить к части записей атрибут "фаза луны в которую производилась приемка товара"". В норме должны быть зависимые типы и миграции и пользователи бы пользовались той же системой типов что и разработчик.
Т.е. нормальный вывод типов - это когда программа берет типы из тут же описанного SQL-запроса, а рекорды расширяемые и объявлять их не нужно.

Второй use-case, где "вроде бы динамическая типизация" - это когда я делаю документы в виде кложурных структур данных, подгоняя комбинации списков-мапов-массивов-множеств под предметную область. В кложуре же это делается в лоб, а в хаскеле в один список не положишь три разных по структуре(типу) раздела документа. Но на самом деле, то что я делаю в кложури - это просто алгебраический тип данных "для бедных", без объявления заранее и без явно выделенных-именованных конструкторов данных. Если бы была возможность делать расширяемые и объявляемые по месту типы данных (чтобы каждый раз при разработке не переключаться между объявлением типа и конструированием данных по этому типу) - то было бы то же самое что в кложури - но статически типизированное.

PS: На ту же тему: http://justy-tylor.livejournal.com/190153.html

[identity profile] thesz.livejournal.com 2012-10-11 02:13 pm (UTC)(link)
Я затрудняюсь представить себе путь мысли и способы использования Хаскеля, чтобы получилась вот такая гротескная картина.

[identity profile] zamotivator.livejournal.com 2012-10-11 07:09 pm (UTC)(link)
по моим личным наблюдениям и ощущениям - адеватный взгляд.
Людям работать надо, а не на язык дрочить.

[identity profile] voidex.livejournal.com 2012-10-11 07:16 pm (UTC)(link)
Зачем вам работать?

[identity profile] zamotivator.livejournal.com 2012-10-11 07:17 pm (UTC)(link)
Потому что мне нравится работать.
Особенно над теми проектами, на которых я специализируюсь (разработка СУБД)

А что?

[identity profile] voidex.livejournal.com 2012-10-11 07:30 pm (UTC)(link)
Ну вот, кому-то нравится дрочить на языки, кому-то на СУБД.

[identity profile] zamotivator.livejournal.com 2012-10-11 08:58 pm (UTC)(link)
Мне нравится работать.
В первую очередь
Это не мешает мне выбирать интересную работу.

[identity profile] thesz.livejournal.com 2012-10-11 07:22 pm (UTC)(link)
"Если Евтушенко против..."

Ваше мнение только усиливает мои подозрения в наличии логических провалов в рассуждениях автора поста.

[identity profile] zamotivator.livejournal.com 2012-10-11 07:22 pm (UTC)(link)
Ну так найдите их, в чём проблема? :)

[identity profile] thesz.livejournal.com 2012-10-11 07:31 pm (UTC)(link)
В логических провалах, которые автор тщательно скрывает?

Вот возьмите основной параграф про Хаскель: "Хаскель сразу закапываем - там на каждый случай имеется 3-4 расширения и 10 пакетов в hackage различной степени недоделанности, идиоматический подход - писать в point-free style, чтобы коллеги не разобрались, а работать в продакшене можно только с теми сторонними библиотеками, которые я могу сам починить."

Явно же гипербола, преувеличение, призванное скрыть какие-то проблемы самого автора. Возможные логические противоречия лежат именно там.

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

[identity profile] zamotivator.livejournal.com 2012-10-11 07:32 pm (UTC)(link)
Примените последовательно к себе свои собственные правила - напишите пост "как правильно работать в haskell'е со структурами", и спросите у автора, какие именно пакеты недоделаны, а потом опровергните это утверждение про недоделанность.
Edited 2012-10-11 19:32 (UTC)

[identity profile] thesz.livejournal.com 2012-10-11 07:39 pm (UTC)(link)
Это не мои правила. Это придуманные вами правила, приписанные мне.

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

Ощущаемые мной проблемы автора пусть остаются его проблемами. Может, мне только кажется, что это проблемы. Может, так ему легче жить. Быть может, это конкурентное преимущество.

У меня есть забота протестировать, как Хаскель разбирает регекспы на скорости в 1,25ГБайт/сек. Укладываемся ли мы в указанный диапазон. Вот это на самом деле интересно.

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 20:58 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-11 21:08 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 21:13 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-11 21:37 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 21:39 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-11 21:49 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 21:52 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-11 22:16 (UTC) - Expand

(no subject)

[identity profile] dinexi.livejournal.com - 2012-10-11 23:25 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 23:26 (UTC) - Expand

(no subject)

[identity profile] dinexi.livejournal.com - 2012-10-11 23:28 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 23:29 (UTC) - Expand

(no subject)

[identity profile] dinexi.livejournal.com - 2012-10-11 23:35 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 23:36 (UTC) - Expand

(no subject)

[identity profile] dinexi.livejournal.com - 2012-10-11 23:40 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 23:41 (UTC) - Expand

(no subject)

[identity profile] dinexi.livejournal.com - 2012-10-11 23:43 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 23:44 (UTC) - Expand

(no subject)

[identity profile] dinexi.livejournal.com - 2012-10-11 23:46 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 23:49 (UTC) - Expand

(no subject)

[identity profile] dinexi.livejournal.com - 2012-10-11 23:51 (UTC) - Expand

[identity profile] metaclass.livejournal.com 2012-10-11 07:42 pm (UTC)(link)
Достаточно подключится к Firebird из хаскеля под виндой и выполнить строго-типизированный SQL запрос, затем завернуть это в RESTful веб-сервис и добавить нормальные логи и обработку ошибок.
На кложуре это можно сделать за пару дней, видя ее в первый раз.

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 19:44 (UTC) - Expand

(no subject)

[identity profile] voidex.livejournal.com - 2012-10-11 19:47 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 19:48 (UTC) - Expand

(no subject)

[identity profile] voidex.livejournal.com - 2012-10-11 19:50 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 19:53 (UTC) - Expand

(no subject)

[identity profile] voidex.livejournal.com - 2012-10-11 20:42 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 20:44 (UTC) - Expand

(no subject)

[identity profile] voidex.livejournal.com - 2012-10-12 01:07 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-12 01:10 (UTC) - Expand

(no subject)

[identity profile] voidex.livejournal.com - 2012-10-12 01:43 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-12 05:27 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-14 11:06 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-12 06:38 (UTC) - Expand

(no subject)

[identity profile] voidex.livejournal.com - 2012-10-12 08:08 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-12 08:11 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-11 19:54 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-11 21:35 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-12 05:03 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-12 11:32 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-12 11:42 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-12 11:47 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-12 11:56 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-11 19:51 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 19:54 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-11 19:58 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 19:58 (UTC) - Expand

(no subject)

[identity profile] migmit.livejournal.com - 2012-10-15 07:26 (UTC) - Expand

(no subject)

[identity profile] voidex.livejournal.com - 2012-10-12 01:18 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-12 05:25 (UTC) - Expand

(no subject)

[identity profile] voidex.livejournal.com - 2012-10-12 06:39 (UTC) - Expand

(no subject)

(Anonymous) - 2012-10-11 20:40 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-12 04:55 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 20:45 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 20:46 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 20:48 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 20:57 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 20:59 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 21:00 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 21:03 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 21:04 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 21:06 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 21:13 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 21:18 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 21:21 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 21:23 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 21:27 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 22:25 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 22:29 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 22:31 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 22:34 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 22:36 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 22:40 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 22:45 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 22:50 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 22:56 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 23:08 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 23:11 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 23:12 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 23:13 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-12 05:16 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-11 22:52 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 22:53 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-11 22:55 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 23:01 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-11 23:10 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 23:17 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-11 23:20 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 23:24 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-11 23:50 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 23:55 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-12 00:03 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-12 00:08 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-12 00:17 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-12 00:19 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-12 00:22 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-12 00:23 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-12 00:29 (UTC) - Expand

(no subject)

[identity profile] berezovsky.livejournal.com - 2012-10-12 00:29 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-12 00:29 (UTC) - Expand

(no subject)

[identity profile] berezovsky.livejournal.com - 2012-10-12 00:39 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-12 00:40 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-12 00:39 (UTC) - Expand

(no subject)

[identity profile] berezovsky.livejournal.com - 2012-10-12 00:40 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-12 00:47 (UTC) - Expand

(no subject)

[identity profile] voidex.livejournal.com - 2012-10-12 09:21 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-12 05:23 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-12 11:41 (UTC) - Expand

(no subject)

(Anonymous) - 2012-10-13 15:19 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-15 01:07 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-15 01:10 (UTC) - Expand

(no subject)

(Anonymous) - 2012-10-15 14:07 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-15 14:47 (UTC) - Expand

(no subject)

(Anonymous) - 2012-10-15 20:13 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-15 21:06 (UTC) - Expand

(no subject)

(Anonymous) - 2012-10-15 22:04 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-15 23:19 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-15 23:20 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-11 23:54 (UTC) - Expand

(no subject)

[identity profile] migmit.livejournal.com - 2012-10-15 07:30 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-12 05:12 (UTC) - Expand

(no subject)

[identity profile] nivanych.livejournal.com - 2012-10-12 17:38 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-12 19:41 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-12 19:56 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-12 07:15 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-12 07:22 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-12 07:24 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-12 07:28 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-12 04:59 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-11 21:31 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 21:34 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-11 22:04 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 22:09 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-11 22:21 (UTC) - Expand

(no subject)

[identity profile] nivanych.livejournal.com - 2012-10-12 17:42 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-12 19:32 (UTC) - Expand

(no subject)

[identity profile] nivanych.livejournal.com - 2012-10-13 03:26 (UTC) - Expand

(no subject)

[identity profile] nealar.livejournal.com - 2012-10-16 09:21 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 22:22 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 22:33 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 22:40 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 22:44 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 22:48 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 22:52 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 23:00 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 23:12 (UTC) - Expand

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-11 23:16 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 23:18 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-12 05:20 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-12 05:06 (UTC) - Expand

(no subject)

[identity profile] nivanych.livejournal.com - 2012-10-12 17:46 (UTC) - Expand

(no subject)

[identity profile] miserakl.livejournal.com - 2012-10-13 12:33 (UTC) - Expand

(no subject)

[identity profile] nealar.livejournal.com - 2012-10-12 10:58 (UTC) - Expand

(no subject)

[identity profile] voidex.livejournal.com - 2012-10-12 01:20 (UTC) - Expand

(no subject)

[identity profile] berezovsky.livejournal.com - 2012-10-12 01:30 (UTC) - Expand

(no subject)

[identity profile] voidex.livejournal.com - 2012-10-12 01:56 (UTC) - Expand

(no subject)

[identity profile] kiryl.livejournal.com - 2012-10-11 21:00 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-11 21:01 (UTC) - Expand

(no subject)

[identity profile] migmit.livejournal.com - 2012-10-15 07:35 (UTC) - Expand

(no subject)

[identity profile] max630.livejournal.com - 2012-10-12 03:01 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2012-10-12 06:39 (UTC) - Expand

(no subject)

[identity profile] levgem.livejournal.com - 2012-10-12 18:29 (UTC) - Expand

(no subject)

(Anonymous) - 2012-10-11 20:37 (UTC) - Expand

[identity profile] vinslivins.livejournal.com 2012-10-14 06:58 am (UTC)(link)
пример: 4 библиотеки сессионных типов. только одна компилируется.
документация там в научных статьях, формата "хрен поймёшь"

[identity profile] thesz.livejournal.com 2012-10-14 10:39 am (UTC)(link)
Сессионные типы - это очень близко к переднему краю работы с типами. Так что вполне может быть, что компилируется только одна. Сам с таким сталкивался в моём HHDL.

(no subject)

[identity profile] migmit.livejournal.com - 2012-10-15 07:37 (UTC) - Expand

[identity profile] bydl0coder.livejournal.com 2012-10-12 10:53 am (UTC)(link)
Да начиная с hello world. Первая и единственная попытка написать на Хаскеле что-то полезное закончилась стековерфлоу и переписыванием на руби.
У Хаскела очень высокий порог вхождения, который теоркат-гики не особо собираются снижать. Вероятность встретить статью о реализации какого-нибудь квазиморфизма гиперфункторов гораздо выше вероятность встретить статью про, не знаю там, чат-сервер на Comet.

[identity profile] thesz.livejournal.com 2012-10-12 11:36 am (UTC)(link)
Слушайте, ну довольно уж гипербол. С гиперболами вообще нельзя общаться. "Hello, world" не может вызвать переполнение стека.

Касательно чат-сервера - почитайте CUFP. Опять же, ФЯ достаточно разнообразны, чтобы иметь кучу применений.

[identity profile] bydl0coder.livejournal.com 2012-10-12 11:54 am (UTC)(link)
Ок, это был не хелловорлд, но первая потенциально полезная программа на Хаскеле - считала хэш по очень простому алгоритму. Вот Скала концептуально, хм, не очень ("все флаги в гости к нам"), но там сел и поехал.

> Касательно чат-сервера - почитайте CUFP
Да я понимаю, что все есть, краем глаза видел. Просто сообщество, особенно русскоязычное, больше интересуется теоркатом, чем банальными, но полезными вещами. Ну, русские айти-блоггеры вообще народ специфический (сравнить stackoverflow и govnokod.ru)

>чтобы иметь кучу применений.
На мой взгляд, Хаскел подходит для написания коробочных продуктов - ну там баз данных всяких, брокеров очередей и т.п. - всякие статические гарантии полезны, а проблема с квалификацией программистов не так остро стоит. Есть что-нибудь такое?

[identity profile] zw0rk.blogspot.nl (from livejournal.com) 2012-10-12 01:40 pm (UTC)(link)
> На мой взгляд, Хаскел подходит для написания коробочных продуктов - ну там баз данных всяких, брокеров очередей и т.п. - всякие статические гарантии полезны, а проблема с квалификацией программистов не так остро стоит. Есть что-нибудь такое?

Не сказать, что СУБД, но data storage с "гарантиями" http://happstack.com/docs/crashcourse/AcidState.html

[identity profile] bydl0coder.livejournal.com 2012-10-12 01:50 pm (UTC)(link)
Это не коробочный продукт, биндингов для доступа из других языков я не нашел. Вот RabbitMQ какой-нибудь -- коробочный.

(no subject)

[identity profile] zw0rk.blogspot.nl - 2012-10-12 13:53 (UTC) - Expand

(no subject)

[identity profile] bydl0coder.livejournal.com - 2012-10-12 13:56 (UTC) - Expand

(no subject)

[identity profile] iamjaph.livejournal.com - 2012-10-18 06:58 (UTC) - Expand

[identity profile] levgem.livejournal.com 2012-10-12 06:37 pm (UTC)(link)
Не хочу огорчать, но мой опыт эрливидео четко говорит: опенсорсные коробочные продукты на хаскеле найдут своих пользователей. Обоих.

[identity profile] thesz.livejournal.com 2012-10-12 07:39 pm (UTC)(link)
Хаскель используют для внутрикорпоративных задач, очень его любят банки. Ибо сердито и весьма безопасно.

Базы данных... Пока не видел.

Есть игрушка: http://joyridelabs.de/game/code/

Пока всё. ;)

[identity profile] bydl0coder.livejournal.com 2012-10-12 07:41 pm (UTC)(link)
А почему? Вот реально, никак не ожидал, что apt-get install something_written_in_haskell принесет оконный менеджер, а не базу данных.

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-12 19:51 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-10-12 19:57 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-12 20:19 (UTC) - Expand

(no subject)

[identity profile] bydl0coder.livejournal.com - 2012-10-12 22:38 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-12 22:48 (UTC) - Expand

(no subject)

[identity profile] bydl0coder.livejournal.com - 2012-10-12 23:16 (UTC) - Expand

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-13 00:26 (UTC) - Expand

(no subject)

[identity profile] bydl0coder.livejournal.com - 2012-10-13 01:33 (UTC) - Expand

[identity profile] bydl0coder.livejournal.com 2012-10-12 07:50 pm (UTC)(link)
Да я ж не спрашиваю, где мне искать работу, если вдруг научусь на хаскеле писать. Мне про коробки интересно - почему крестики, а не хаскель?

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-12 19:53 (UTC) - Expand

[identity profile] inv2004.livejournal.com 2012-10-12 08:22 pm (UTC)(link)
Скачал, запустил, тормозит жутко, пришлось убить процесс, чтобы закрыть.

[identity profile] dmytrish.livejournal.com 2012-10-18 08:28 am (UTC)(link)
Это вы про РоЧе, или есть и другие примеры применения Хаскеля в банковской сфере?

(no subject)

[identity profile] thesz.livejournal.com - 2012-10-18 11:04 (UTC) - Expand