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] veter-r-r.livejournal.com 2014-11-22 10:20 pm (UTC)(link)
Ребе, менеджеру или тем более клиенту пофиг на систему типов, ей-богу.
Меньше ошибок это ОК, только это крайне сложно подтверждать, ибо вряд ли есть достоверная статистика набранная на сравнимых проектах.

Где с типами херово, отлично работает любой скриптовый язык (кто сказал похапе?). Я вот стопиццот проектов видел, где в каждой условной ячейке может быть что угодно, причем оно еще и обвязывается системами событий и... работает. Понятно, что в код смотреть страшно. Но менеджеры туда не смотрят.

Эрланг ОК, но например, был у меня проект, в котором отлично внедрили RabbitMQ заточив под кластера, восстановление при ошибках, распределенную очередь и т.д. при этом не написав ни строчки на собственно эрланге. Просто взяли готовый продукт, который уже использует заточенность эрланга, а предметная часть решалась уже на серверах по старинке.

Я не к тому что функциональные языки это плохо и не нужно, я к тому, что практически не существует задач, которые можно решить только с их помощью. Есть задачи, которые можно решить проще, есть задачи, которые имеют более красивое (с точки зрения разработчика) решение. Но в общем-то 99% практических задач уже имеют разработанное на традиционных языках решение. Проверенное временем, задокументированное, встроенное в процессы и т.д. И чтобы его выбросить и взять на замену функциональщину, довод должнен быть очень и очень веским.

[identity profile] metaclass.livejournal.com 2014-11-23 08:57 am (UTC)(link)
Если бы дело ограничивалось качествами языка - имело бы смысл брать скалу или F# (или эрланг для специфических ниш).
Менеджерам и клиентам на технологии не похуй - хорошие выбирают то, что будет более эффективно (в т.ч. и пхп, если на рынке этих пхпистов по рублю пучок, а задача несложная), типичные - "то что всегда использовали".