metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-09-14 08:17 am

Хаскельное

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[identity profile] vit-r.livejournal.com 2013-09-14 02:49 pm (UTC)(link)
Тааааак.

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

[identity profile] dr-cha0s.livejournal.com 2013-09-14 02:56 pm (UTC)(link)
Догадывается. А почему вы спрашиваете?

[identity profile] vit-r.livejournal.com 2013-09-14 02:59 pm (UTC)(link)
Ответ на последний вопрос - да! Применяют. Потому что много таких мест, где, если не будут применять, им не дадут бумажку, без которой они заказ в принципе не получат.

Насчёт же первого вопроса - их дофига. Сейчас вот вижу, как люди из Simulink код генерируют. Видел разные адаптации структурных методов. Видел самодельные. Хороший стандарт о том, как можно и нельзя делать софт - это толстый том с многими сотнями правил и разъяснений. Плюс есть тулы, которые позволяют проконтролировать всё, вплоть до значений регистров на целевой платформе.
Edited 2013-09-14 15:02 (UTC)

[identity profile] vit-r.livejournal.com 2013-09-14 03:01 pm (UTC)(link)
Потому что предыдущий ответ вызвал у меня... хм... некоторое удивление. Так что до получения ясного и чёткого ответа я от дальнейшего обсуждения воздержусь.

[identity profile] dr-cha0s.livejournal.com 2013-09-14 03:08 pm (UTC)(link)
Я чувствую себя на экзамене. Профессор, заявил что никто не згнает как рисовать диаграммы для хаскела
и как-то болезненно отнёсся к ссылке на автоматические инструменты для генерации диаграмм.
Мне искренне непонятно на что я должен Вам отвечать, чотко и ясно и главное почему?

[identity profile] vit-r.livejournal.com 2013-09-14 03:14 pm (UTC)(link)
К тому же никто не знает, как для него рисовать диаграммы.

и ниже
Графическое представление должно отвечать на вопрос "зачем?", а не на вопрос "как?"

Я не представляю, как можно программировать на Хаскеле, пропуская мимо такие детали

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

[identity profile] metaclass.livejournal.com 2013-09-14 03:54 pm (UTC)(link)
А, это значит только с деньгами из тумбочки и бесконечными проектами работает.
У обычных софтовых контор ни времени ни бюджета не будет на то, чтобы епамские индусы этим стандартам следовали да тулы изучали.

Page 1 of 6