metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2014-11-22 09:12 pm

fby

Посетил таки мероприятие элитных функциональщиков http://fby.by/

Достаточно неплохо, правда, под конец я утомился и доклад [livejournal.com profile] xeno_by про Dotty, независимую от компилятора модель языка, метапрограммирование и сохранение AST/метаданных вместе с бинарниками либ слушал в сумеречном состоянии сознания.

Еще не успел послушать целиком [livejournal.com profile] levgem, т.к. был на другом потоке, слушал про F#. Вообще, его доклад полезен тем, что это про законченный большой продающийся продукт, в то время, как другие рассказывали больше про общие фичи языка или про некоторые частные идеи.

Было, в целом, достаточно много скалы и F#, наконец-то я посмотрел на новые F# с провайдерами типов (я до сих пор по причине использования 2010 студии сижу на 2.0 версии).

[livejournal.com profile] tonsky рассказывал про критерии полезности языков программирования в целом. Упомянул недостаток clojure - слабую масштабируемость разработки, все-таки это язык для мелких команд вплоть до одного человека.

Еще меня очень пугает популярность шизофренистических тест-фреймворков для скалы и F#, где тест-кейсы пишутся в виде псевдо-английских фраз.

В целом, что немного напрягает - сильный разнобой в функциональных языках и нет явно видимого фаворита - во всех языках реализуются/портируются друг от друга похожие фичи, поддержка инструментов, насколько я понял, на данный момент лучше всего в F# - там на конференции прямо в vs всякие приколы типа "запустим тайп-провайдер и в репле получаем его структуру" демонстрировали, метапрограммирование живое в скале с кложей, асинхронность хорошо в хаскеле с эрлангами

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

PS: Кстати, главное что мне понравилось на конференции: сэндвичи с мясом и травой, в чем-то вроде лавашей.
Я первый раз присутствую на мероприятии, где дают нормальную еду для мозга, т.е. мясо, трава и чай/кофе, а не только сладости и печенье. Впрочем, чай я с собой в термосе притащил, т.к. предпочитаю пить достаточно крепкий зеленый с добавкой эхинацеи :)

[identity profile] cross-join.livejournal.com 2014-11-23 01:28 pm (UTC)(link)
GPSS оперирует предопределенными типами объектов, соотвественно, на более низком уровне абстракций на более высоком уровне специализации, чем симула.
Разница примерно как между VBA и VB.

[identity profile] binf.livejournal.com 2014-11-23 01:33 pm (UTC)(link)
Это всё правда

[identity profile] love5an.livejournal.com 2014-11-23 01:38 pm (UTC)(link)
острая нехватка времени

[identity profile] evil-invader.livejournal.com 2014-11-23 01:52 pm (UTC)(link)
а Gradle не пытались тыкать? Там богомерзкий xml заменили на нормальный DSL со скриптовым Groovy. Все хорошее от Maven оставили, плюс добавили гибкости.

[identity profile] binf.livejournal.com 2014-11-23 02:03 pm (UTC)(link)
Ок, так и запишем, шо ФП-велосипед на C# быстрее изобрести чем пользоваться готовым на F#

[identity profile] metaclass.livejournal.com 2014-11-23 02:07 pm (UTC)(link)
Я не пробовал, гляну при случае.

[identity profile] n16bs.livejournal.com 2014-11-23 04:56 pm (UTC)(link)
>Короче для начала нужно бы отказаться от распространённой идеи что eDSL для преобразования viewmodel во view и обратно может и должен быть ущербным. И принять идею что это должен быть полноценный язык, закрывающий 90% задач.

И получим react, не?

[identity profile] messirvoland.livejournal.com 2014-11-23 05:54 pm (UTC)(link)
Это как-то помешало С++ стать популярным? :)

[identity profile] jakobz.livejournal.com 2014-11-23 06:23 pm (UTC)(link)
Не обязательно именно реакт, но ехать нужно определенно в ту сторону.

[identity profile] ynot.livejournal.com 2014-11-23 07:31 pm (UTC)(link)
с функциональных заоблачных олимпов до сих пор транслировались идеи, что F# - это такой очередной Биллгейтсовский VBA для умственно отсталых.

мы в этом посте наблюдаем ритуальное самоубийство путем разгрызения коллегами, или действительно "рэп больше не кал"?

(епт, капча "Outlook good". Это знакъ)

[identity profile] metaclass.livejournal.com 2014-11-23 07:32 pm (UTC)(link)
Ничего не знаю про VBA, я с 2010 года на F# пишу, кое-каких фич не хватает, но зато интеграция с C# прямая.

[identity profile] thesz.livejournal.com 2014-11-23 07:37 pm (UTC)(link)
Подтвержу. Это именно так.

[identity profile] ynot.livejournal.com 2014-11-23 07:43 pm (UTC)(link)
каждый может ебануться как ему благоугодно, это не вопрос, и прямую интеграцию с чем угодно я всячески одобряю.

но мне интересны настроения в обществе - вы сказали, что докладов по F# было много и интересных, но мало ли какие злодеи-диверсанты их привезли - а как на это реагирует собствено функциональный бомонд элитных функциональщиков во время кофе-брейков с мясом?

[identity profile] metaclass.livejournal.com 2014-11-23 07:58 pm (UTC)(link)
Не, на обсуждение F# с бомондом у меня моральных сил уже не хватило, я сбежал домой :)

Мое мнение такое, что интеграция F# в студию, стояющую на десктопе у каждого второго индуса из бодишопа, является преимуществом, которое перевешивает недостатки.
Надо бы вспомнить аргументы [livejournal.com profile] thesz против него.

[identity profile] zealer.livejournal.com 2014-11-24 12:49 am (UTC)(link)
Могу сказать причину почему "тест-кейсы пишутся в виде псевдо-английских фраз".
Есть менеджеры, которые не идеально понимают рабочую область и хоть бы треть знали что сделано уже, но при этом выдают задания.
Есть программисты, которые не будут писать сложных тестов, потому что они сами не понимают как всё работает.
Есть один CTO, который чтоб заставить людей писать тесты ввёл метрику Code Coverage.
Это поделие в трехсот проектах на .Net (из них 150 в одном солюшене) и с сотней программистов катится в ад.

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

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

[identity profile] binf.livejournal.com 2014-11-24 03:43 am (UTC)(link)
Попробуйте ещё раз, а то ваше оригинальное мнение похоже на глупость. Начните с примера

[identity profile] thesz.livejournal.com 2014-11-24 04:24 am (UTC)(link)
Я думаю, вы думаете, я не распознал сарказм. Я распознал.

Пример очень простой - прекратил ли F# требовать ...and... для рекурсивных определений? Если нет, то мне больше нечего сказать.

[identity profile] binf.livejournal.com 2014-11-24 05:39 am (UTC)(link)
"фи, в языке нет фичи Х" - это ни разу не пример. Пример - это алгоритм, который на C# проще реализуется, чем в F#.

[identity profile] metaclass.livejournal.com 2014-11-24 06:12 am (UTC)(link)
Лучше не алгоритм, а законченный проект :)
Правда, с таким критерием с функциональщиной будет тяжко, потому что успех проекта от языка зависит сильно косвенно - "взяли нормальный язык, на проект сбежалась толпа PhD с 10 лет опыта промышленной разработки и запилили его за месяц".

[identity profile] binf.livejournal.com 2014-11-24 06:33 am (UTC)(link)
Да ну, какой там проект, хотябы кусок алгоритма. Ну и вряд ли щас PhD при наличии выбора будет делать в C# что-то большее, чем хост-проект в решениии, смысла нет. Как я вижу, в С# есть две важных фичи, и обе к языку не относятся :

- интегрированность с "главными" фреймворками

- razor

[identity profile] thesz.livejournal.com 2014-11-24 10:44 am (UTC)(link)
Любой алгоритм, требующий рекурсивных данных и/или рекурсивного обхода, реализуется в F# труднее.

Например, я более-менее справился с написанием patricia tree с пропусками на C#. На F# я вообще за это не возьмусь, несмотря на то, что мой алгоритм был полностью функциональным - ни одной модификации данных на месте, всегда создание. У меня там парочка-троечка вспомогательных функций была, которая была бы реализована в F# через let посередине основного алгоритма и вызвала бы у компилятора сообщения о несущественной ошибке.

Сравнение с образцом чуть сложнее в C#. Но не существенно - 2+N строки на сравнение вместо одной.

[identity profile] binf.livejournal.com 2014-11-24 11:55 am (UTC)(link)
У меня там парочка-троечка вспомогательных функций была, которая была бы реализована в F# через let посередине основного алгоритма и вызвала бы у компилятора сообщения о несущественной ошибке

Спасибо, что поделились опытом, но я даже близко не представляю о чем у вас тут речь

Сравнение с образцом чуть сложнее в C#

Паттернматчинг в ЯП без конс-списков и алгебраических типов - это даже не смешно.

[identity profile] thesz.livejournal.com 2014-11-24 12:05 pm (UTC)(link)
"Паттернматчинг в ЯП без..."

http://wiki.tcl.tk/9547

У меня нет с этим проблем в заметном количестве языков. C# не исключение.

Я думаю, различие во взглядах объясняется различием в объёме опыта. В переводе на русский язык: мои носки лучше стоят потому, что я старше.

[identity profile] thesz.livejournal.com 2014-11-24 12:07 pm (UTC)(link)
У F#, когда я последний раз на него смотрел, первая вещь отсутствовала. Плохо он интегрировал и интегрировался.

Смотрел я на него четыре года тому назад. Может, что и поменялось.

[identity profile] binf.livejournal.com 2014-11-24 05:29 pm (UTC)(link)
прошу учесть, что выше я говорил за C#. Ну за четыре года конечно многое изменилось в лучшую сторону в плане интегрированности F#, но он всё ещё на третьем месте. Например, я могу сделать asp net приложение чисто на F#, и клиентскую часть в том числе, но без razor. Но я всё же делаю с хост-проектом на C#, так проще. ReSharper к сожалению тоже мимо, зато появились годные рефакторинги от сообщества

Page 3 of 4