metaclass: (Default)
[personal profile] metaclass
http://vit-r.livejournal.com/679524.html?thread=3691364#t3691364
решили на прошлой работе трое таки попробовать Хаскель, для неспешной задачи. генерация DDL, DML c скриптами SQL. Бились, бились, - но сделали, и был восторг! Потом, затянула обычная работа, через месяцок нужно было добавить кое-чего... и никто из троих не смог понять как оно работает, и как же добавить.

Звучит похоже на правду. Хотя у меня и F# и Clojure в подобных задачах живут и развиваются без проблем.

Date: 2013-09-14 05:55 am (UTC)
From: [identity profile] trueblacker.livejournal.com
использование хаскеля сродни отказу от хранения исходников - все равно их никто не сможет дорабатывать.

(это резюме поста, а не личная позиция, если что)

Date: 2013-09-14 06:06 am (UTC)
From: [identity profile] metaclass.livejournal.com
Да смогут, никуда не денутся.
Если во всяких С, фокспро, абапах и 1с дорабатывают - то хаскель намного логичнее всего этого.

Date: 2013-09-14 07:01 am (UTC)
From: [identity profile] vit-r.livejournal.com
Люди в С и фокспро привыкли писать комментарии. А Хаскель - это язык, "описывающий задачу", так что подобными мелочами никто не заморачивается. К тому же никто не знает, как для него рисовать диаграммы.

Date: 2013-09-14 07:52 am (UTC)
From: [identity profile] volodymir-k.livejournal.com
насчёт рисования диаграмм в си, да хоть и фортрана -- как-то надо было мне быстро нарисовать типа блоксхемы

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


рисовать вызов замыкания с функциями в контексте ещё интереснее

Date: 2013-09-14 07:56 am (UTC)
From: [identity profile] vit-r.livejournal.com
Графическое представление должно отвечать на вопрос "зачем?", а не на вопрос "как?"

Как что рисовать в отдельном конкретном случае, зависит от задачи.

Date: 2013-09-14 08:49 am (UTC)
From: [identity profile] dr-cha0s.livejournal.com
А есть какие-то доказательства отсутсвия комментариев в хаскельном коде?
Такие диаграммы не подойдут? http://stackoverflow.com/questions/7427094/generate-diagrams-for-haskell-code

Date: 2013-09-14 02:40 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Пардон, где там диаграммы? И как это вообще соотносится с первоначальной посылкой?

Если я показываю какую-то диаграмму, то человек или видит картинку или выходит на неё по ссылке.

Добрые функциональные люди всегда уверены, что у меня дофига времени, разбираться, что они имели ввиду.

Date: 2013-09-14 02:48 pm (UTC)
From: [identity profile] dr-cha0s.livejournal.com
Там средства для их создания, вторая ссылка в гугле. Не интересно? Ну так зачем спрашивать?
А с чего уважаемый дон решил, что я обязан ему разжёвывать информацию и преподностить на блюдечке с голубой каёмочкой?
Кстати, кто такие функциональные люди? :)

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 02:49 pm (UTC) - Expand

(no subject)

From: [identity profile] dr-cha0s.livejournal.com - Date: 2013-09-14 02:56 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 03:01 pm (UTC) - Expand

(no subject)

From: [identity profile] dr-cha0s.livejournal.com - Date: 2013-09-14 03:08 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 03:14 pm (UTC) - Expand

(no subject)

From: [identity profile] dr-cha0s.livejournal.com - Date: 2013-09-14 04:05 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-09-14 03:57 pm (UTC) - Expand

(no subject)

From: [identity profile] dr-cha0s.livejournal.com - Date: 2013-09-14 04:07 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-09-14 04:18 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 06:06 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-09-14 06:14 pm (UTC) - Expand

(no subject)

From: [identity profile] dr-cha0s.livejournal.com - Date: 2013-09-14 06:20 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 06:50 pm (UTC) - Expand

Date: 2013-09-14 09:20 am (UTC)
From: [identity profile] thesz.livejournal.com
У меня к каждой функции высшего уровня по несколько строк комментариев. В каждом файле есть шапка с названием, назначением (одна и более строк) и копирайтом. Это нормальная практика, я ее ввел для себя после разбирательств с gcc.

Плохой код можно найти везде. Вы сравниваете код, который вы контролируете (с комментариями) и чей-то ещё. Контролируйте код на Хаскеле, все будет хорошо.

Date: 2013-09-14 02:31 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Я сравниваю код, который я вижу в разных проектах и от разных людей. Это раз.

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

Date: 2013-09-14 02:37 pm (UTC)
From: [identity profile] metaclass.livejournal.com
А что за методики? И применяет ли их кто-нибудь на практике?

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 02:59 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-09-14 03:54 pm (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2013-09-14 05:17 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 06:09 pm (UTC) - Expand

(no subject)

From: [identity profile] berezovsky.livejournal.com - Date: 2013-09-14 06:18 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 06:51 pm (UTC) - Expand

Date: 2013-09-14 04:58 pm (UTC)
From: [identity profile] thesz.livejournal.com
Методики уменьшения дефектов (любого рода) не имеют отношения к языку программирования.

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 06:01 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2013-09-14 06:40 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 06:49 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2013-09-14 07:10 pm (UTC) - Expand

(no subject)

From: [identity profile] antilamer.livejournal.com - Date: 2013-09-14 07:39 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 07:57 pm (UTC) - Expand

(no subject)

From: [identity profile] antilamer.livejournal.com - Date: 2013-09-14 08:25 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 08:28 pm (UTC) - Expand

(no subject)

From: [identity profile] antilamer.livejournal.com - Date: 2013-09-14 08:34 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 08:37 pm (UTC) - Expand

(no subject)

From: [identity profile] antilamer.livejournal.com - Date: 2013-09-14 08:46 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 09:02 pm (UTC) - Expand

(no subject)

From: [identity profile] antilamer.livejournal.com - Date: 2013-09-14 09:10 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 09:38 pm (UTC) - Expand

(no subject)

From: [identity profile] geniepro.livejournal.com - Date: 2013-09-16 10:19 am (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 11:06 am (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 11:08 am (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2013-09-16 03:56 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-09-16 04:10 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2013-09-16 04:25 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 09:20 pm (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2013-09-16 06:07 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 09:31 pm (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2013-09-15 04:42 am (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2013-09-16 03:58 pm (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2013-09-16 06:04 pm (UTC) - Expand

(no subject)

From: [identity profile] geniepro.livejournal.com - Date: 2013-09-16 07:24 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2013-09-16 09:20 pm (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2013-09-16 09:43 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2013-09-17 04:24 am (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2013-09-17 01:21 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2013-09-17 01:47 pm (UTC) - Expand

(no subject)

From: [identity profile] geniepro.livejournal.com - Date: 2013-09-16 07:28 pm (UTC) - Expand

Date: 2013-09-14 02:14 pm (UTC)
From: [identity profile] nivanych.livejournal.com
Тов. Семён Пейтон-Дженс говорил как-то, что типы, это и есть UML для хаскеля! ;-)
Доля правды в этом есть.

Date: 2013-09-14 02:34 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Про UML есть много чего нелестного в моём журнале. Так что в этом смысле я полностью согласен.
Edited Date: 2013-09-14 02:34 pm (UTC)

Date: 2013-09-14 03:50 pm (UTC)
From: [identity profile] nivanych.livejournal.com
Не, это уже будет переиначиванием смысла.
В том контексте, это было что-то типа, что у "нас есть гораздо лучше, чем ваш этот UML".
Впрочем, такое сравнение напрямую некорректно, конечно.

Date: 2013-09-14 07:44 pm (UTC)
From: [identity profile] antilamer.livejournal.com
Про то, что "никто" не заморачивается комментариями: это интересное заявление; какую методологию Вы бы предложили, чтобы это проверить?

Date: 2013-09-14 08:02 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Когда я увижу отраслевой или хотя бы внутрифирменный стандарт кодирования на Хаскеле и там будут описаны правила комментирования. (Причём, эти правила будут разумны.) Вот тогда я возьму "никто" назад.

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

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

Date: 2013-09-14 08:35 pm (UTC)
From: [identity profile] antilamer.livejournal.com
> Когда я увижу отраслевой или хотя бы внутрифирменный стандарт
Странный критерий. Вот если [livejournal.com profile] thesz внедрит у себя в фирме такой стандарт, то возьмёте "никто" назад? :)

А почему не "когда я увижу проект на хаскелле с разумным количеством комментариев" ("разумным" = "не хуже, чем в среднем по индустрии в других языках")? Например, GHC или XMonad отлично прокомментированы.

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 08:36 pm (UTC) - Expand

(no subject)

From: [identity profile] antilamer.livejournal.com - Date: 2013-09-14 08:48 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 09:01 pm (UTC) - Expand

(no subject)

From: [identity profile] antilamer.livejournal.com - Date: 2013-09-14 09:10 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-14 09:40 pm (UTC) - Expand

(no subject)

From: [identity profile] geniepro.livejournal.com - Date: 2013-09-16 10:26 am (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 11:11 am (UTC) - Expand

Date: 2013-09-15 02:05 pm (UTC)
From: [identity profile] anonim-legion.livejournal.com
>всё проходящее мимо меня, требует вникания в хитросплетения исходного кода,

Так это в любой незамысловатой конторе так. Любое ООО "Опа говносайт" так пишет. Начинаешь им писать развернутые комментарии - оне еще и фыркать начинают "зачем так много".

Что же касается именно thesz - это человек-москвич, с московской квартирой, который достиг дзена и самодостаточности. Участвовать в кодерских крысиных гонках и писать "чтоб вчера работало" ему нет нужды. Именно поэтому кстати функциональщики и не понимают нужд простых IT-рабов, они немножко по другому живут.

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

(no subject)

From: [identity profile] berezovsky.livejournal.com - Date: 2013-09-15 02:17 pm (UTC) - Expand

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2013-09-15 02:25 pm (UTC) - Expand

(no subject)

From: [identity profile] berezovsky.livejournal.com - Date: 2013-09-15 02:28 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-09-15 02:36 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2013-09-15 03:13 pm (UTC) - Expand

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2013-09-15 03:19 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2013-09-15 04:32 pm (UTC) - Expand

(no subject)

From: [identity profile] gineer.livejournal.com - Date: 2013-10-20 08:23 am (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-15 03:13 pm (UTC) - Expand

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2013-09-15 03:26 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-09-15 03:36 pm (UTC) - Expand

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2013-09-15 03:39 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-09-15 03:57 pm (UTC) - Expand

(no subject)

From: [identity profile] berezovsky.livejournal.com - Date: 2013-09-15 04:07 pm (UTC) - Expand

(no subject)

From: [identity profile] fraks-nsk.livejournal.com - Date: 2013-09-16 01:06 am (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-15 04:12 pm (UTC) - Expand

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2013-09-15 04:19 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-09-15 04:23 pm (UTC) - Expand

(no subject)

From: [identity profile] anonim-legion.livejournal.com - Date: 2013-09-15 04:35 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-15 04:29 pm (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2013-09-15 02:45 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-15 03:02 pm (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2013-09-15 03:32 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-15 07:04 pm (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2013-09-15 08:23 pm (UTC) - Expand

(no subject)

From: [identity profile] berezovsky.livejournal.com - Date: 2013-09-15 08:27 pm (UTC) - Expand

(no subject)

From: [identity profile] rdia.livejournal.com - Date: 2013-09-15 08:36 pm (UTC) - Expand

(no subject)

From: [identity profile] berezovsky.livejournal.com - Date: 2013-09-15 08:45 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-15 08:42 pm (UTC) - Expand

(no subject)

From: [identity profile] kurilka.livejournal.com - Date: 2013-09-15 08:46 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-15 08:59 pm (UTC) - Expand

(no subject)

From: [identity profile] geniepro.livejournal.com - Date: 2013-09-16 10:23 am (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 11:05 am (UTC) - Expand

(no subject)

From: [identity profile] geniepro.livejournal.com - Date: 2013-09-16 07:13 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-16 09:35 pm (UTC) - Expand

(no subject)

From: [identity profile] geniepro.livejournal.com - Date: 2013-09-17 04:25 am (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-17 05:32 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2013-09-17 10:12 am (UTC) - Expand

(no subject)

From: [identity profile] kurilka.livejournal.com - Date: 2013-09-17 10:30 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2013-09-17 12:35 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-17 08:46 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2013-09-17 09:18 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-17 09:26 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2013-09-17 09:34 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-18 06:07 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2013-09-18 11:31 am (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-09-18 08:30 pm (UTC) - Expand

Date: 2013-09-14 09:16 am (UTC)
From: [identity profile] jakobz.livejournal.com
Ну хз. Любой код можно написать так, что потом не проссышь. Понятно что на языке, на котором в первый раз пишешь, и пять лет не разбирался в чужом говнокоде на нем же, сделать себе write-only шансы больше.

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

Кстати я на работе весь этот "одноразовый" dev-ops код поэтому пишу на C#, т.е. на том же, на чем весь остальной проект. Нахер все эти скрипты.

Date: 2013-09-14 09:25 am (UTC)
From: [identity profile] metaclass.livejournal.com
Скрипты на неадекватных языках задалбывают, да.
Уж лучше DSL какой-нибудь наколбасить на обычном языке.

Date: 2013-09-14 09:42 am (UTC)
From: [identity profile] jakobz.livejournal.com
Полноценный DSL - это зачастую уже перебор.

В любом языке с литералами для объектов/хешей и массивов можно же eDSL-ки еще делать. В C# еще expression trees есть, с ними вообще можно все круто слепить. Ну и когда у тебя eDSL, у тебя еще получается препроцессор бесплатный на том же языке.

Date: 2013-09-14 09:53 am (UTC)
From: [identity profile] metaclass.livejournal.com
Да, я eDSL в виду имел.

Date: 2013-09-17 12:42 pm (UTC)
From: [identity profile] thesz.livejournal.com
Expression trees весьма ограниченный инструмент, хотя и полезность его нельзя отрицать. На одних expression trees я довольно быстро сваял подобие LINQ для некоей гиперграфовой БД (с преобразованием запросов а-ля LINQ в текст запросов к сей БД).

Если бы была возможность преобразовывать тела функций с циклами for и тому подобного, это был бы номер. Тогда можно было бы делать совершенно удивительные вещи, типа кода с циклами, компилирующегося в код над OpenCL. Или делать триггеры для тех же БД.

Date: 2013-09-17 12:53 pm (UTC)
From: [identity profile] jakobz.livejournal.com
>возможность преобразовывать тела функций с циклами for и тому подобного
В F# есть такое: http://msdn.microsoft.com/en-us/library/dd233182.aspx

В C# есть надежда на "Roslyn" - они собираются выкатить API к компилятору, с возможностью использовать его куски, или втыкаться в середину: http://msdn.microsoft.com/en-us/vstudio/roslyn.aspx

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 30th, 2025 01:40 pm
Powered by Dreamwidth Studios