Отчет и мысли о конференции Euruko 2013

03 июля 2013, обновлена 04 июля 2013

Сегодня я вернулся с Европейской конференции рубистов EuRuKo 2013. Это была первая международная конференция в моей жизни, и мне очень понравилось.

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

Так что если ты скучаешь на работе и тебе кажется, что ты в болоте и надо все бросить и уехать на Таити, съезди лучше на конференцию. Пользуясь случаем, благодарю Railsware за спонсирование моего участия, а также передаю привет хорошим людям @leopard_me, @chalexr, @paladiy, @TanyaLyashenko и Оле Петрик, которые тоже ездили, и @ptico, @beai и @kaetanaalba, которых там встретили.

Кейноут делал не кто иной, как сам Юкихиро Мацумото, и рассказывал он интересные вещи. Что для создания компьютерного языка - а компьютерным языком можно назвать и интерфейс библиотеки, и модные нынче Domain-specific languages - автор должен иметь четкие и категорические убеждения, которые будут формировать язык.

Я раньше считал, что языки проистекают из ограничений, в которых они созданы, но после этого доклада понял, что убеждения автора имеют первоочередную роль - например, Ruby не стал бы таким, какой он есть сейчас, если бы Мац планировал применять его для веб-проектов. Нет, он делал скриптовый язык своей мечты, и Ruby такой и получился. Кстати, Мац сообщил, что больше всего в разработе Ruby он сожалеет о заимствовании функционала из Perl.

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

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

Самой обсуждаемой темой на конференции была работа с памятью. Коичи Сасада и Крис Келли рассказывали о сборщике мусора. Диржан Буссинк рассказывал о подходах к снижению количества объектов в Рубиниусе. Тема для многих неинтересная, потому как практического вывода из неё нет, вот Ярослав вообще считает, что благодаря PaaS инженеры не обязаны и не должны заморачиваться над таким низким уровнем. А как по мне, то сборщики мусора - интересная область прикладного применения алгоритмов и компьютерной теории.

Другая тема - функциональное программирование. Пэт Шонесси рассказал про ленивые перечисления в Ruby 2, к которым руку приложил и наш Кеша Михайлов. Тема проскакивала и у других докладчиков. Лично для меня Ruby является объектно-ориентированным языком, в котором функционалка стоит на третьем месте.

Был невероятно меня порадовавший доклад от Бена Смита из Pivotal Labs о Domain-Driven Design. Я обожаю DDD как идею. Я когда-нибудь обязательно напишу об этом статью, потому что очень много людей не знают о DDD, да и я бы не знал, если бы не Андрей Щеглов. Вкратце идея доклада: пилить приложение на отдельные Rails engines, как модель от веб-части, так и модель на логические кусочки. Каждый Engine заворачивается в отдельный гем. Как пилить, объясняет DDD. В результате - красивая архитектура с тонкими интерфейсами. Я бы, наверное, так далеко не шел, и изолировал бы в модули.

Я уже пробовал реализовать DDD на Rails, ничего не вышло - теперь буду пробовать еще.

Константин Теннхард (с остроумным ником @t6d) поведал о существовании готовой библиотеки OpenNLP для обработки естественного языка. (Угадайте, какой язык она не поддерживает.) А я-то писал велосипеды, разбивая текст на предложения и слова. Впрочем, вроде бы обычные подходы NLP не работают, если текст не имеет четкой структуры. Константин тоже представил интересную библиотеку для структурирования конвейерной обработки данных.

Был доклад про то, как у людей 45000 тестов для одного веб-приложения (sic). Ничего нового про тесты не рассказал, и в частности, не рассказал, зачем им столько - зато заметил, что все равно их тесты не гарантируют отсутствие багов. Перефразируя закон Парето, 5000 тестов покрывают 80% функциональности, еще 40000 - еще 10%, и последние 10% приходится проверять вручную. Никакой тест пока не умеет сказать, что у тебя верстка поехала (хотя вертикальный ритм автотесты в силах проверить, хммм, идея!)

Была пара докладов о том, что не всегда открытое голосование за темы гарантирует интересный материал, и о том, что смешные картинки плюсуют харизму, но минусуют мудрость.

Euruko 2014 будет в Киеве. С одной стороны, это очень круто. Я думаю, у ребят все получится. С другой стороны, нельзя сказать, что грекам-организаторам эта конференция сильно помогла засветиться и пропиариться. Но, есть большая польза в том, что украинские рубисты смогут пообщаться со звездами, да и просто с коллегами из других стран, вживую.

Весь видеопоток с конференции можно посмотреть тут, фотографии от Тани Ляшенко тут, а мой лайвкаст в твиттер перечитать тут - в нем много интересных ссылок в тему.