metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2016-02-21 03:42 pm

Статья про хаскель в проде, где все правильно написано

http://www.stephendiehl.com/posts/production.html

Про типичную опердень и как она умучает рантайм хаскеля:

A common performance problem is that of many small updates updates to records with large numbers of fields. Records of hundreds of fields are somewhat pathological but in practice they show up in a lot of business logic that needs to interact with large database rows. Too much of this can very noticeable impact on GC pressure by doing allocations on each update.

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

И про метапрограммирование: Avoid TemplateHaskell. Half the appeal of Haskell is that its high-level design allows you to avoid huge amounts of useless boilerplate code that you have to write in other languages. If you need compile-time code generation, you’re basically saying that either your language or your application design has failed you.

Как без метапрограммирования нормально делать опердени, где 99% кода - это бойлерплейт по перекладыванию между полями разных объектов и БД - хрен его знает.
Всякие ORM с рефлекшенами и кодогенерацией в рантайме - это то же самое, только медленно и уныло.

[identity profile] love5an.livejournal.com 2016-02-23 06:34 am (UTC)(link)
Во! Покажите мне хотя бы по одному стоящему решению следующих очень практических проблем на хаскеле:
1) Загрузка/Сохранение картинок разных форматов, и их обработка(ресайзы итоде)
2) Загрузка экселек, как старого формата, так и openxml, и не только данных, а и информации по стилям ячеек.
3) Выгрузка в PDF/Эксель(в том числе всяких отчОтов, см пункт 4)
3) DSL для работы с БД, с кучей рекордов с кучей полей. Чтоб было близко к sql но в то же время в терминах языка(типа C# LINQ to Entities, etc). Генерация модели из DSL.
4) Нормальный пиздатый MVC-веб-фреймворк, с поддержкой автоматической сериализации с JSON и прочие говна, с поддержкой аутентификации по кукисам/OAuth/whatever
5) Пиздатый UI фреймворк для десктопа с декларативным описанием UI, стилей и прочей еботни
6) Работа с email и sms
7) Очереди сообщений, подключение к AMQP
8) Модульность, конфигурируемая из конфигов и в рантайме, IoC
9) Виндовые приблуды типа named пайпов

Нету! Нихуя нету. И не будет! Потому что ебучие хаскелисты все шизики и задрачивают монадные хелловорлды или в лучшем случае GLR-парсеры.

[identity profile] anonim-legion.livejournal.com 2016-02-23 06:55 am (UTC)(link)
Вот вас пробило-то.

[identity profile] vinslivins.livejournal.com 2016-02-23 08:10 am (UTC)(link)
http://pandoc.org



(не то что б это что-то доказывает)

[identity profile] dmzlj.livejournal.com 2016-02-26 06:44 pm (UTC)(link)
А чо, на скобках есть?