Конференция DotNext дошла до уровня, когда среди российских .NET-программистов она уже не нуждается в представлении: появившись в Петербурге почти два года назад, она взялась покорять столицу и собрала множество участников. Но теперь, когда о прошедшей недавно в Москве DotNext 2015 Moscow не требуется объяснять «что это такое», возникает новый вопрос: чем она отличалась от прошлогодней?
Ответ на этот вопрос — в подробном рассказе о прошедшей конференции под катом.
С местом проведения ничего не изменилось: всё происходило в зарекомендовавших себя залах «Radisson Славянской». Среди компаний, стенды которых расположились в холле, появилась Лаборатория Касперского. Она же была изобретательнее всех в привлечении внимания: на стенде Касперского давали опробовать игру для шлема Samsung Gear VR, с выхода которого не успело пройти и месяца, и нехватки желающих опробовать новинку не было.
Впрочем, поскольку на эту конференцию приходят по делу, другие стенды тоже не простаивали. Скажем, у DevExpress всё всерьёз — виртуальной реальностью не заманивали, а название компании ничего не говорит людям со стороны, но для посетителей DotNext её продукты важны, поэтому они подходили активно.
Ну а на стенде Futurice можно было пообщаться по поводу возможного трудоустройства в Хельсинки, Берлине, Мюнхене, Лондоне и Стокгольме — офисы компании расположены в разных городах Европы. Михаил Самарин, бизнес-директор Futurice, систематически выступающий на DotNext, не скрывает, что конференция привлекает его возможностью поиска талантливых кадров для компании — об этом он говорил не только у стенда, но и со сцены.
А стенд JetBrains, всегда привлекающий внимание разработчиков, в этот раз ещё и неожиданно выглядел: ровно в день конференции у компании произошёл ребрендинг, так что на стенде вместо давно привычного логотипа был новый.
Как и в прошлом году, keynote был англоязычным, и его снова делал известнейший в .NET-мире Дино Эспозито — разговор в этот раз пошёл о Domain-Driven Design. Неизменной осталась его выразительная манера: «О DDD заговорили благодаря книге Эрика Эванса, вышедшей в 2004-м, больше десяти лет назад. Вы понимаете, что означает такое в мире программирования? Это книга ЮРСКОГО ПЕРИОДА». Образ дополняла новогодняя шапочка.
В речи Эспозито встречались и отсылка к «Скотному двору» Джорджа Оруэлла, и рассказ о том, как после лас-вегасских конференций ему приходилось «доказывать жене, что он приехал туда по работе», и сожаление о том, что нельзя говорить заказчику «платите мне больше за то, что мой код элегантный» — но при этом всём он не забывал о главной теме. Не было его выступление и слепой похвалой подходу Domain-Driven Design: в речи прямо сообщалось, что панацеей от всех проблем этот подход не станет.
После keynote все рассредоточились по разным залам. Пока тот же Михаил Самарин объяснял, что означает появление Universal Windows Platform, Дмитрий Нестерук из JetBrains рассказывал об основах создания ботов, автоматизирующих практически любые ручные операции.
Может показаться, что появившаяся недавно UWP требует представления, а в случае с ботами ничего не меняется, но Дмитрий привёл пример свежей ситуации, сделавшей их актуальнее: взлёт мессенджеров вроде Slack и Telegram привёл к расцвету ботов, умеющих приносить пользу в режиме диалога. И хотя боты могут казаться интуитивно понятной темой (с действиями спам-ботов сталкивался любой), тем, кто их не писал, выступление могло сообщить много нового: например, сама по себе неочевидна идея гибридного подхода, при котором бот выполняет самостоятельно части задачи, но на определённом этапе передаёт бразды правления живому пользователю (хотя хочется полной автоматизации, при её невозможности частичная будет лучше никакой).
Следующий временной слот стал особенным: пока Дино Эспозито рассуждал о Domain Model, в другом зале Саша Гольдштейн (Sela Group), известный в .NET-мире по книге «Pro .NET Performance», говорил о векторизации — так что сразу два одновременно идущих доклада были на английском, чего раньше на DotNext не случалось. Впрочем, это не означает, что жаждущим русской речи в это время было нечего слушать: например, Никита Наместников из DevExpress рассказывал о Xamarin.Forms, позволяющей при мобильной разработке легко портировать интерфейс на все три основных платформы (iOS, Android, Windows). Поскольку с появления этой технологии прошло лишь полтора года, на прошлом московском DotNext ещё никто попросту не смог бы рассказывать о нём на основании продолжительного собственного опыта, а здесь Никита подводил итоги года активной работы — при этом честно говоря о тех моментах, в которых сервис вызвал неудобства.
Например, если в iOS различаются однострочное и многострочное поля ввода текста, то в Android это единая сущность, и в итоге у Xamarin.Forms с его стремлением к универсальности попросту нет доступа к однострочному в iOS. Есть и не настолько явные, но тоже значимые неудобства: по словам Никиты, разработчики Xamarin.Forms любят помещать существенные изменения в минорные обновления и даже не сообщать внятно о них. Честный рассказ и о плюсах, и о минусах — то, что могло помочь присутствующим понять, насколько сервис подходит конкретно их проекту.
После обеда доклад в главном зале стал настоящим шоу: докладчиков было двое, и на сцене развернулось мощное противостояние. Роман Белов (JetBrains) сразу честно признался, что «перешёл на тёмную сторону Силы»: .NET знаком ему не понаслышке, но сейчас он предпочитает платформу Java (страшно, наверное, говорить такое в лицо сотням дотнетчиков) и участвует в разработке языка Kotlin. Дмитрий Иванов, напротив, находился на «светлой стороне».
Вдвоём они построили весь доклад на сравнениях двух миров — причём подошли настолько дотошно, что и все слайды были поделены пополам на «тёмную» и «светлую» половины, и даже их одежда соответствовала этому. Как обычно бывает в таких программистских холиварах, какого-то однозначного доминирования одной из сторон над другой не было — зато в процессе их противостояния зрители могли узнать для себя что-то об обеих. Были и моменты, когда зал дружно смеялся: «а этот оператор у нас называют “мамой клянусь!”»
В следующем блоке появился уже третий за день англоязычный докладчик: Хади Харири из JetBrains рассказывал про HTTP/2. Если не интересоваться вопросом, может показаться «так ли важна новая версия протокола, когда интернет и без этого всё быстрее», но в докладе быстро пояснялось: вопрос не в пропускной способности (throughput), вопрос в задержке (latency). Можно быстро скачивать гигантские файлы, но для пачки мелких файлов (с коими мы имеем дело сейчас при работе с HTTP) все не так. Если началу скачивания каждого мелкого файла предшествует задержка, то она будет давать постоянно о себе знать. HTTP/2 призван и решить эту проблему, и упростить жизнь разработчикам, которые в рамках HTTP 1.1 прибегают к ухищрениям. Однако свои хитрости и сложности есть и в случае с новой версией протокола — и о них речь также зашла. В конце Хади порекомендовал всем, кому хочется разобраться в теме глубже, книгу Ильи Григорика «High-Performance Browser Networking».
Затем во второй раз за день выступал Саша Гольдштейн — в этот раз он говорил об автоматизации обработки ошибок. Как он заметил, разумеется, можно вручную разбирать сотни крэш-дампов, но это требует много рабочего времени и при этом означает большое количество механической «computer-like» работы — так что есть смысл поручить эту работу компьютеру. Доклад был посвящён тому, как именно это делать.
В предпоследнем слоте было сразу два доклада, примечательных не только темами, но и докладчиками. «Функциональное программирование на F# в обработке больших данных и машинном обучении» актуально хотя бы из-за того, как активно машинное обучение сейчас заявляет о себе, а рассказывал о нём Дмитрий Сошников из Microsoft — так что без компании, с которой моментально ассоциируется само название .NET, на конференции не обошлось.
А в главном зале в то же время рассказывал о применении WinDbg при работе с .NET Михаил Щербаков (Cezurity). Он отлично известен петербургскому .NET-сообществу, потому что его spbdotnet.org и превращает множество программистов в сообщество, где люди знают друг друга и встречаются для обмена опытом. Но живущим в других городах его проект тоже может быть полезен — благодаря онлайн-трансляциям. Узнать Михаила было несложно — его футболка говорила сама за себя.
Наконец, закрывал конференцию keynote от Хади Харири о «silver bullet syndrome» — склонности провозглашать панацеей какую-либо технологию или подход, будь то хоть Microservices, хоть тот же Domain-Driven Design (Дино, кстати, слушал с интересом). Не стесняясь в выражениях, Хади вспоминал, как про одно за другим говорили «вот это наконец-то всё исправит», после чего возникала прорва новых сложностей. А также проехался по тому, как разработчики говорят что-то вроде «Netflix начал это использовать? Мы тогда тоже будем», не особо задумываясь о том, что у Netflix и их проекта совершенно разная специфика.
По реакции зрителей было ясно, что и им приходилось сталкиваться с чрезмерной впечатлительностью IT-мира, которому так нравятся инновации и так хочется «решить проблему раз и навсегда», что на всё подряд возлагают неоправданные ожидания и начинают хайп на пустом месте, а количество вариантов стремится к бесконечности. Слайды Хади пестрели ироничными цитатами по этому поводу — вроде твита «Игра на выпивание для веб-разработчиков: придумайте слово, погуглите “слово.js”, если обнаружится библиотека с таким названием — выпейте».
В то же время, как давало понять выступление, сказать «не буду пробовать ничего нового» тоже не вариант — то, что люди ждут от новинок слишком многого, не отменяет того, что прогресс при этом происходит. Остаётся подходить к происходящему взвешенно и стараться оценивать реальные преимущества, а не громкие слова.
Что в итоге? DotNext предоставил и то, что было в прошлый раз (куча хардкора, много JetBrains, хедлайнер в лице Дино Эспозито), так и кое-что ещё: много выступлений на английском языке (в их числе оба самых масштабных: открывающее и закрывающее), три зала вместо четырех прошлогодних, больше докладов от коммьюнити Можно подвести итог — конференция развивается, а вместе с ней развивается и все российское .NET-сообщество.
Перефразируя классика, если зарубежных звёзд приглашают — значит, это кому-то нужно. Спрос на англоязычные выступления показывает, что и уровень владения темой среди российских дотнетчиков, и интерес к этой теме (на чужом языке люди обычно знакомятся с тем, что им по-настоящему интересно), и нежелание замыкаться в междусобойчиках: людям хочется слышать лучшие доклады из возможных, а остальное частности.
Это ли не повод порадоваться?
Автор: JUG.ru Group