Посетил таки мероприятие элитных функциональщиков http://fby.by/
Достаточно неплохо, правда, под конец я утомился и доклад
xeno_by про Dotty, независимую от компилятора модель языка, метапрограммирование и сохранение AST/метаданных вместе с бинарниками либ слушал в сумеречном состоянии сознания.
Еще не успел послушать целиком
levgem, т.к. был на другом потоке, слушал про F#. Вообще, его доклад полезен тем, что это про законченный большой продающийся продукт, в то время, как другие рассказывали больше про общие фичи языка или про некоторые частные идеи.
Было, в целом, достаточно много скалы и F#, наконец-то я посмотрел на новые F# с провайдерами типов (я до сих пор по причине использования 2010 студии сижу на 2.0 версии).
tonsky рассказывал про критерии полезности языков программирования в целом. Упомянул недостаток clojure - слабую масштабируемость разработки, все-таки это язык для мелких команд вплоть до одного человека.
Еще меня очень пугает популярность шизофренистических тест-фреймворков для скалы и F#, где тест-кейсы пишутся в виде псевдо-английских фраз.
В целом, что немного напрягает - сильный разнобой в функциональных языках и нет явно видимого фаворита - во всех языках реализуются/портируются друг от друга похожие фичи, поддержка инструментов, насколько я понял, на данный момент лучше всего в F# - там на конференции прямо в vs всякие приколы типа "запустим тайп-провайдер и в репле получаем его структуру" демонстрировали, метапрограммирование живое в скале с кложей, асинхронность хорошо в хаскеле с эрлангами
По моему, не хватает доклада на тему "как показать преимущества от функциональщины менеджерам-заказчикам-коллегам" или что-нибудь на тему "как выжить программистам в условиях, когда важны продажи, а не технологии".
PS: Кстати, главное что мне понравилось на конференции: сэндвичи с мясом и травой, в чем-то вроде лавашей.
Я первый раз присутствую на мероприятии, где дают нормальную еду для мозга, т.е. мясо, трава и чай/кофе, а не только сладости и печенье. Впрочем, чай я с собой в термосе притащил, т.к. предпочитаю пить достаточно крепкий зеленый с добавкой эхинацеи :)
Достаточно неплохо, правда, под конец я утомился и доклад
Еще не успел послушать целиком
Было, в целом, достаточно много скалы и F#, наконец-то я посмотрел на новые F# с провайдерами типов (я до сих пор по причине использования 2010 студии сижу на 2.0 версии).
Еще меня очень пугает популярность шизофренистических тест-фреймворков для скалы и F#, где тест-кейсы пишутся в виде псевдо-английских фраз.
В целом, что немного напрягает - сильный разнобой в функциональных языках и нет явно видимого фаворита - во всех языках реализуются/портируются друг от друга похожие фичи, поддержка инструментов, насколько я понял, на данный момент лучше всего в F# - там на конференции прямо в vs всякие приколы типа "запустим тайп-провайдер и в репле получаем его структуру" демонстрировали, метапрограммирование живое в скале с кложей, асинхронность хорошо в хаскеле с эрлангами
По моему, не хватает доклада на тему "как показать преимущества от функциональщины менеджерам-заказчикам-коллегам" или что-нибудь на тему "как выжить программистам в условиях, когда важны продажи, а не технологии".
PS: Кстати, главное что мне понравилось на конференции: сэндвичи с мясом и травой, в чем-то вроде лавашей.
Я первый раз присутствую на мероприятии, где дают нормальную еду для мозга, т.е. мясо, трава и чай/кофе, а не только сладости и печенье. Впрочем, чай я с собой в термосе притащил, т.к. предпочитаю пить достаточно крепкий зеленый с добавкой эхинацеи :)
no subject
Date: 2014-11-22 07:25 pm (UTC)А можно раскрыть тему для не видевших clojure в продакшне?
no subject
Date: 2014-11-22 07:35 pm (UTC)1) Проверка типов в рантайме. Я неоднократно обращался к integer как массиву или мапу, тупо поставив лишнюю пару скобок, с дикими стектрейсами. Я это вижу глазами и чиню, обучить других тому, что я чую спинным мозгом - невозможно. Я пытался обучить людей ставить логи во все углы для отладки - всем до сраки, "неудобно".
2) Мощность языка. Я за день могу наворотить в проекте такого, что коллеги будут неделю разбираться. В других языках получается изолировать мое творчество в ядре системы и выдать коллегам относительно внятный API+интеллисенс в студиях. В кложуре - извините, хуйс, надо писать документацию и примеры, причем лучше до того как писать код. А мне за удобство для коллег не доплачивают, мне бы свою работу успеть сделать.
Т.е. в кложури нет моральных ограничений или best practices которые позволили бы одновременно работать эффективно мне и при этом не делать код непонятным другим.
no subject
Date: 2014-11-23 12:48 pm (UTC)2) Часткова згодны, але за код зусім без дакумэнтацыі і прыкладаў, незалежна ад мовы, зноў такі, трэба біць нагамі. Ужо прабачце, рэбэ. )
Што да clojure, я на яе паглядваю як на мову для аднаго праекта. Мне цікава, якія рэбэ можа назваць годныя альтэрнатывы clojure/clojurescript для ўэба?
(no subject)
From:no subject
Date: 2014-11-22 08:13 pm (UTC)хм, а в нефункциональных разве есть?
no subject
Date: 2014-11-22 08:15 pm (UTC)no subject
Date: 2014-11-22 08:32 pm (UTC)Ничего. Скоро выберут самый-самый плохой и сделают главным.
"как выжить программистам в условиях, когда важны продажи, а не технологии".
:-D
no subject
Date: 2014-11-22 08:37 pm (UTC)Надо просить
В смысле, ударится в продажи с концами, чтобы технологические прорывы вопреки делались.
Впрочем, если микрософт продвинет дотнет на линуксы, фаворитами будет C# и F# и это очень неплохой варинат.
no subject
Date: 2014-11-22 08:46 pm (UTC)no subject
Date: 2014-11-23 12:46 pm (UTC)И это будет F# -- хуже не придумаешь...
no subject
Date: 2014-11-22 09:07 pm (UTC)Заодно выяснятся классы задач, где имеет смысл подумать о декларативных языках.
В принципе, с этого вообще надо начинать.
GUI или имитационное моделирование на функциональщине - это какой-то нонсенс.
no subject
Date: 2014-11-22 09:15 pm (UTC)Насчет имитационного ничего не могу сказать, не знаю, чо там такого особенного.
no subject
Date: 2014-11-22 09:20 pm (UTC)В имитационном моделировании объекты живут своей жизнью и обмениваются сообщениями. Симула-67 - ООП в полный рост, хотя уже был Лисп.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-11-23 09:24 am (UTC)xaml + WPF круче, проще и мощнее всего, что есть под JVM неважно для какого ЯП. Я щас вообще не приемлю другого подхода к гуям, кроме декларативного xaml или html5/css3
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-11-22 09:32 pm (UTC)А те, кто осилил кложурь, давно забыли что существует какое-то там дельфи.
Редкие исключения типа автора этого жж не выступают на публике в принципе ))
no subject
Date: 2014-11-22 10:15 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-11-23 01:07 am (UTC)ООП-подход к UI - не скейлится (как и всё ООП). Сложность растёт экспоненциально от количества полей и кнопок на форме, и количества cross-cutting фич типа валидации, undo, optimistic concurrency, и подобного.
Частично проблемы пока решаются метапрограммированием (который в ФП обычно лучше), датабиндингом (который кастрированные линзы/FRP), и всякими MVVM (которые про то что стейт UI надо держать отдельно и желательно immutable).
Короче из UI осталось выкинуть оставшуюся половину императивщины и ООП, и будет все хорошо.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-11-22 09:30 pm (UTC)no subject
Date: 2014-11-22 09:41 pm (UTC)У кложи - удобность для задач, где с типами херово, например белорусской налоговой и статистической отчетности, которую придумывают люди, плохо ударенные на голову Excel. Там в каждой ячейке документа может быть строка, число, фаза луны, функция, рассчитывающая пол будущего ребенка бухгалтера или заклинание вызова ктулху. Кроме того, там есть нормальный репл и интеграция с жабьими либами.
У эрланга - заточенность под кластера, битоебские протоколы и восстановление при ошибках.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-11-22 09:36 pm (UTC)Как мне не нравиться Scala, но она. MS стек без серьезных причин никто брать не будет. У Erlang своя ниша и ему там хорошо. Haskell для общего развития и в продакшен тянуть - безумие. Остается JVM. Clojure слишком динамическая и там скобочки. Вот методом исключения остается Scala. Тем более хайп вокруг нее сформировал не плохое комьюнити, есть уже много интересных фреймворков, типа того же play, akka.
no subject
Date: 2014-11-22 09:44 pm (UTC)Кроме того, sbt не работает, maven - содомия, idea плагины не работают, eclipse - грех.
Язык, в котором надо несколько дней заниматься настройкой инструментов, негуманен. Хотя для любителей БДСМ, которыми переполнено IT наверно нормально :)
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2014-11-23 09:14 am (UTC)так в F# те же парадигмы и опции - Microsoft.FSharp.Control.MailboxProcessor с агентами.
no subject
Date: 2014-11-23 01:02 pm (UTC)Интересно, как коррелируют интернет, участники живых конференций и активные проекты.
no subject
Date: 2014-11-23 07:31 pm (UTC)мы в этом посте наблюдаем ритуальное самоубийство путем разгрызения коллегами, или действительно
"рэп больше не кал"?(епт, капча "Outlook good". Это знакъ)
no subject
Date: 2014-11-23 07:32 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2014-11-24 12:49 am (UTC)Есть менеджеры, которые не идеально понимают рабочую область и хоть бы треть знали что сделано уже, но при этом выдают задания.
Есть программисты, которые не будут писать сложных тестов, потому что они сами не понимают как всё работает.
Есть один CTO, который чтоб заставить людей писать тесты ввёл метрику Code Coverage.
Это поделие в трехсот проектах на .Net (из них 150 в одном солюшене) и с сотней программистов катится в ад.
Есть регулирующий орган который спрашивает - а понимаете ли вы как всё работает, а понимают ли разработчики правильно менеджеров. Все кивают головой.
И тут регулятор задаёт такой детский вопрос, а как вы докажете.
Вот тут-то и появляются тесты написанные человеческим языком, в которых смогут разобраться менеджеры. И теоретически менеджеры верхних порядков должны проверять описание в этих тестах перед каждым релизом.