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] 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] binf.livejournal.com 2014-11-24 05:52 pm (UTC)(link)
любопытно было бы взглянуть на именно C# реализацию. Я не знаком c tcl и не знаю насколько годные структуры данных он позволяет создавать, но в C# данные откровенно слабы и я не представляю что там можно сматчить без подхода на основе паттерна Visitor. Надеюсь не Visitor вы предлагаете