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] zamotivator.livejournal.com 2012-10-11 09:04 pm (UTC)(link)
Про полурабочее - это к автору оригинального поста.

А вот "не понимаю IO и $" - это то, что лично мне помешало оценить haskell более предметно.
Впрочем, судя по постам про Хаскелль что пробегают мимо в жуйке, там одних libcurl штук 15 разных, разной степени deprecated и с разными багами, написанные в разных стилях

[identity profile] zw0rk.blogspot.nl (from livejournal.com) 2012-10-11 09:06 pm (UTC)(link)
> А вот "не понимаю IO и $" - это то, что лично мне помешало оценить haskell более предметно.

Ну эдак мы возвращаемся к тому недавнему треду на жуйке про ivan-ghandi и аппликативные функторы и монады. То, что кому-то помешало оценить, не говорит, что кому-то другому тоже помешает оценить. Я тут некоторый максимализм вижу.

[identity profile] zamotivator.livejournal.com 2012-10-11 09:13 pm (UTC)(link)
Я сужу по предложениям мне работы и тому, насколько моему мнению доверяют другие люди, и как часто у меня спрашивают советов по дизайну системы или просят критики proof of concept.
Денег дают раза в два-три больше, чем С. З. в своей вакансии Haskell в Москве предлагал, проекты - 90% унылы, остальные 10% бывают вполне так себе интересными.
Советуются с интересными проблемами, опять же.

haskell и эти все эндофункторы выглядят эмблемами некоторого клуба людей, которых я могу описать примерно так:
* про командную работу думают не часто, либо нашли/создали на работе отдел единомышленников
* про риски работодателя и проекта не задумываются
* вариант "выбрать язык под задачу" им часто даже в голову не приходит
* уязвлённоё удивление и обидчивое непонимание, когда им рассказывают, почему их любимый язык такой хреновый (или что эндофункторы в их проекте не нужны).

С моей точки зрения, если они успешно решают задачи на работе - то это благодаря тому, что они умные, а не блогадаря тому, что Haskell. А если бы больше думали про то, что нужно проекту, а не то, чего хочется лично им, были бы ещё умней и успешней, и денег получали бы соразмерно больше.

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

В этом смысле мне товарищи напоминают FreeBSD админов. Те часто идут на зарплату в полтора раза ниже рынка, и половину рабочего времени сидят и пилят свою FreeBSD, патчи отправляют, portage упаковывают и так далее.

[identity profile] zw0rk.blogspot.nl (from livejournal.com) 2012-10-11 09:18 pm (UTC)(link)
> Я не говорю, что деньги критерий,
> В этом смысле мне товарищи напоминают FreeBSD админов. Те часто идут на зарплату в полтора раза ниже рынка, и половину рабочего времени сидят и пилят свою FreeBSD

Кому-то нравится это делать. Все всегда ищут баланс между "интересно" и "сколько денег". Разные люди находят этот баланс в разных точках. Причем здесь хаскель и ваши психологические комплексы -- совершенно неясно.

[identity profile] zamotivator.livejournal.com 2012-10-11 09:21 pm (UTC)(link)
"Интересно мне" не должно быть в ущерб проекту.
Я не иду в веб-разработку не потому, что там нет интересных задач, а потом, что задачи интересные мне в веб-проектах нахер не нужны обычно. А если я заскучаю и начну их тащить - это будет прямой ущерб проекту и, пожалуй, даже саботаж.

Мне вот scala интересна. Сижу и прохожу coursera, книжки читаю, pet-project пилю.
Но на работу я scala не потащу. Потому что она там нахер не нужна.

И что-то мне подсказывает, что в 90% случаев притащенные эндофункторы и haskell не так уж и нужны были, и малой кровью можно было обойтись без них.
В итоге есть у нас эндофункторы и haskell в отдельных проектах - огромной гемморой для владельца кодовой базы в поддержке в будущем.

[identity profile] zw0rk.blogspot.nl (from livejournal.com) 2012-10-11 09:23 pm (UTC)(link)
Какой ущерб наносят "проекту" FreeBSD админы, которые приходят на вакансию админа FreeBSD?

Про эндофункторы уже было в жуйке, нет смысла по новой заводить шарманку.

[identity profile] zamotivator.livejournal.com 2012-10-11 09:27 pm (UTC)(link)
Вакансию FreeBSD админов создают другие FreeBSD админы. Шетухин не так давно это доказал, смигрировав весь Рамблер на ubuntu.

Ущерб работе в том, что половину рабочего времени админ решает не задачи работодателя (чтобы почта и прочее работало) а проблемы FreeBSD проекта.
При работе с linux такого сорта задач ощутимо меньше.

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

Это косяк менеджмента, но что это меняет?

[identity profile] zw0rk.blogspot.nl (from livejournal.com) 2012-10-11 10:25 pm (UTC)(link)
> Это косяк менеджмента, но что это меняет?

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

(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

[identity profile] metaclass.livejournal.com 2012-10-12 04:59 am (UTC)(link)
Обычно есть вакансия "системный администратор и чтобы все работало". FreeBSD там возникает только тогда, когда предыдущий персонаж притащил фряху из каких-то соображений и работодателю дальше некуда деваться.

[identity profile] thesz.livejournal.com 2012-10-11 09:31 pm (UTC)(link)
https://www.google.ru/search?q=hackage+curl&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox

Первая ссылка: http://hackage.haskell.org/package/curl

У меня получается ровно одна библиотека работы с libcurl.

Вас не затруднит перечислить посты в жуйке, где рассказывается про 15 разных версий libcurl? Чтобы мы могли совместно проверить мою версию про то, что вы живёте в интересном мире с 15 разными curl на hackage и где C++ нет альтернативы. Есть у меня подозрение, что вы не затрудняете себя проверкой выдвинутых гипотез, и я думаю что у многих сложилось такое впечатление. Это характерно для очень умных людей с IQ более 149.

[identity profile] zamotivator.livejournal.com 2012-10-11 09:34 pm (UTC)(link)
Я не говорил, что 15 версий биндингов libcurl.
Я говорил что 15 вариантов libcurl - библиотек для скачивания файлов по http.

Насчёт постов про проблемы c http библиотеками под haskell - идите, читайте мою ленту, ищите.
Если бы вы попросили меня вежливо - я бы сам нашёл и показал, но хамам я помогать не собираюсь.

И да, именно этого не хватает в вашем первом и последующем комментарии.
1) Фразы "Давайте поговорим, как так получается. Меня удивляет..."
2) Просьбы пояснить непонятные вам моменты.

Впрочем, хамство с вашей стороны при критике Haskell я вижу не в первый раз. Видимо, избыточная физическая сила притупляет чувство реальности и даёт права в хамской манере общаться с окружающими.

Но не со мной. Удачи.

[identity profile] thesz.livejournal.com 2012-10-11 10:04 pm (UTC)(link)
>Я говорил что 15 вариантов libcurl - библиотек для скачивания файлов по http.

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

(мои коллеги заводили старый libc на новом линуксе; вот уж страху натерпелись!)

И я всё же попросил бы вас перечитать эти посты и поспрашивать о проблемах. Очень часто это проблемы решаются простой командой cabal update.

Сам я в восторге от cabal. Многие считают его одной из положительнейших сторон Хаскеля, как платформы.

Насчёт хамства... Да ещё и при критике Хаскеля...

Моё наблюдение насчёт интересности вашего мира подтверждается наблюдениями других людей. Это вам говорили неоднократно, я не первый. Это раз. Если бы мне задали такой забавный вопрос, я бы смог перечислить все необходимые посты. Просто я зануден и у меня хорошая ассоциативная память. В конце концов, это просто бы доказало всем и сразу, что вы однозначно правы. Это два.

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

Да и никакой критики Хаскеля тут так и не прозвучало. "Червие и ад" и прочие гиперболы критикой не считаются. Как и ваши фантастические "15 версий".

[identity profile] zamotivator.livejournal.com 2012-10-11 10:09 pm (UTC)(link)
Я сомневаюсь, что вы лично эту критику услышите. Для начала надо взять на полтона тише, и не вставать в позу "а ты мне докажи что фигня".
Впрочем, в вашем мире вполне может быть, что всё хорошо. В моём мире с haskell всё плохо.
Будем надеяться, когда-нибудь эти миры пересекутся.

[identity profile] thesz.livejournal.com 2012-10-11 10:21 pm (UTC)(link)
Вы попробуйте. Пожалуйста. Я вам спасибо скажу.

[identity profile] nivanych.livejournal.com 2012-10-12 05:42 pm (UTC)(link)
> заводили старый libc на новом линуксе

Ещё пару лет назад заводил, чтоб одна замечательная программка заработала, которая под старый RedHat была рассчитана. Таки да — натерпелся.
Но я тут не показатель. Вполне может быть, что я совершенно не умею это готовить. Однако, учиться этому что-то не хочется.

[identity profile] thesz.livejournal.com 2012-10-12 07:32 pm (UTC)(link)
Именно. И когда cabal говорит "у тебя версии не сходятся, работать не будет" это лучше, чем собрать нерабочее.

[identity profile] nivanych.livejournal.com 2012-10-13 03:26 am (UTC)(link)
Как правило, это так.
Но не всегда ;-)

[identity profile] nealar.livejournal.com 2012-10-16 09:21 am (UTC)(link)
Все мнения, которые я встречал - именно такие. Так что, показатель.

[identity profile] zw0rk.blogspot.nl (from livejournal.com) 2012-10-11 10:22 pm (UTC)(link)
> Я говорил что 15 вариантов libcurl - библиотек для скачивания файлов по http.

А что, в плюсах, питоне или, прости господи, лиспе таких библиотек ровно одна?

[identity profile] zamotivator.livejournal.com 2012-10-11 10:33 pm (UTC)(link)
в плюсах и Си - как правило, libcurl.
Питоне - urllib
Насчёт лиспа не знаю.
И называются они предсказуемо - в их имени есть слов "url".
А вот http://hackage.haskell.org/packages/archive/http-enumerator/0.1.0/doc/html/Network-HTTP-Enumerator.html , вы уж простите, вообще непонятно что.
С другой стороны, может он и мощнее, мне сложно сравнивать.
И насколько я понял из дискуссий, он deprecated. Вместо него советуют либо httpconduct, либо ещё какие-то, не помню какие.

Сравните из интереса:
https://www.google.com/search?q=haskell+download+file+http&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:unofficial&client=firefox-a&channel=fflb#hl=en&client=firefox-a&hs=QZS&rls=org.mozilla:en-US%3Aunofficial&channel=fflb&sclient=psy-ab&q=python+download+file+http&oq=python+download+file+http&gs_l=serp.3..0i20j0i30l2j0i8i30.27394.28159.0.28334.6.6.0.0.0.1.138.651.3j3.6.0.les%3B..0.0...1c.1.j-CR_fXNZ5Q&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&fp=c8e7929c0333c67&bpcl=35243188&biw=1088&bih=622

В первых же ссылках - urilib

https://www.google.com/search?q=haskell+download+file+http&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:unofficial&client=firefox-a&channel=fflb#hl=en&client=firefox-a&hs=Nv7&rls=org.mozilla:en-US%3Aunofficial&channel=fflb&sclient=psy-ab&q=download+file+http+using+C&oq=download+file+http+using+C&gs_l=serp.3..0i10i30j0i30j0i8i30l2.7681.10236.5.10383.10.8.0.0.0.0.452.1215.4j3j4-1.8.0.les%3B..0.0...1c.1.8YZOn2a0Pks&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.&fp=c8e7929c0333c67&bpcl=35243188&biw=1088&bih=622

тут я запрос немного поменял, потому что C - слишком популярный keyword

Теперь смотрим haskell:
https://www.google.com/search?q=haskell+download+file+http&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:unofficial&client=firefox-a&channel=fflb
https://www.google.com/search?q=download+http+file+using+haskell&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:unofficial&client=firefox-a&channel=fflb

Вываливается куча ссылок на абсолютно разные решения.

[identity profile] zw0rk.blogspot.nl (from livejournal.com) 2012-10-11 10:40 pm (UTC)(link)
> в плюсах и Си - как правило, libcurl.

http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libfetch/
libghttp
libwww -- http://www.w3.org/Library/
neon -- http://www.webdav.org/neon/
тысячи их (http://curl.haxx.se/libcurl/competitors.html)

> Питоне - urllib

requests -- http://pypi.python.org/pypi/requests
httplib -- http://code.google.com/p/httplib2/

и т.п.

[identity profile] zamotivator.livejournal.com 2012-10-11 10:44 pm (UTC)(link)
Мы меня простите, что ссылка на freebsd сайт - это не смешно.
Вот первая ссылка выдачи:
http://stackoverflow.com/questions/1636333/download-file-using-libcurl-in-c-c

Всё понятно, что, откуда, зачем и почему

Первая ссылка для haskell:
http://hackage.haskell.org/package/download

Выглядит похожим на правду. Но что меня удивило (!) никто из haskell'истов про неё даже не упомянул.
Этот берёт Enumerator, этот httpconduct. Почему? Enumerator deprecated, а httpconduct работает.
Дальше ещё обсуждение подобных либ.

Я поудивлялся,и пошёл дальше писать на своём богомерзком C++ и boost, которые работают, и который по одной штуке, а не 15 разных версий.

(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

[identity profile] metaclass.livejournal.com 2012-10-12 05:06 am (UTC)(link)
Блядь, не напоминайте мне про переход с enumerator на conduit
Я специально взял этот енумератор для своего проекта, чтобы сделать как положено, разделив источники данных, парсеры и потребители результата, при этом не закопавшись в IO

Через месяц оказалось что разработчик Yesod решил что надо все переделать заново :)

[identity profile] nivanych.livejournal.com 2012-10-12 05:46 pm (UTC)(link)
Всё херня. Будущее этих хреней, это Pipe! ;-)
Правда, почти уверен, что йесод на них ещё долго не перелезет.
А вот happstack8 будет уже на них.
Они хорошие. И проще (имхо).

(no subject)

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

[identity profile] nealar.livejournal.com 2012-10-12 10:58 am (UTC)(link)
Ребе М, когда он гонит, делает это тонко и с чувством. По-крайней мере, чётко знает, где он правду сказал, а где приврал срачеразведения ради для оживления дискуссии. А ты гонишь грубо и цинично, банальные ложные факты. А как докопаются, будешь утверждать, что их правда 15 версий.
Network.Curl есть и работает, и даже уже ставится одной командой не только под этим вашим линуксом.