.NEXT 2015 Piter: возможно ли потеснить Москву?
.NET-конференция .NEXT, в декабре покорявшая Москву, теперь снова прошла в родном для нее Петербурге. Напрашивается вопрос: возможно ли после столичного размаха сделать питерский вариант не уступающим, или в Северной столице неизбежно труба будет пониже, а дым — пожиже? Под катом — подробный рассказ, позволяющий сделать выводы.
С одним фактом было бы глупо спорить: петербургским IT-конференциям сложно тягаться с московскими по числу участников. Дело не только в том, что столица больше, но и в том, что в нее куда охотнее приезжают на крупные мероприятия разработчики из других городов. И петербургский .NEXT по этому параметру предсказуемо уступал московскому. Но при выборе «какую из двух конференций посетить» главными критериями обычно оказываются другие: количество и качество докладов, состав спикеров, уровень организации. И вот здесь кроется главная интрига: можно ли в Петербурге при меньшем количестве участников поддерживать такой же уровень?
Московский .NEXT, позиционирующийся как «хардкор без маркетинговой чепухи», смог одновременно с информацией по делу быть еще и увлекательным. У петербургского это сочетание началось еще до открытия: среди полученного участниками на входе набора была памятка по тому, какими должны и не должны быть вопросы докладчикам. Пункты вроде «если ты уже знаешь ответ на свой вопрос, то ты не задаешь вопрос, а пиаришься» вызывали улыбки —, но смешили они как раз тем, что указывали на вполне реальные и знакомые всем болевые точки, помогая их избежать.
Как и в случае с московской конференцией, первым докладчиком стал Дино Эспозито. Выбор, в общем-то, напрашивающийся: помимо своего международного авторитета в .NET-мире, он известен как человек, способный превратить доклад в яркое шоу, так что отлично подходит для keynote (где важнее не максимальное количество технических деталей, а доступность и яркость). Однако показательно, что оба города получили одного и того же звездного хедлайнера: будь петербургская версия местечковой, она обошлась бы без птицы такого полета.
И Дино не подвел: кто еще, разговаривая о применении технологий, будет приводить на слайдах фразы своей бабушки? («Когда я подростком переживал, что не понравлюсь девушке, бабушка говорила: «Сначала дождись, пока проблема возникнет, а потом уже ее решай». Это оказывается верно и в разработке»). Он едко проходился по тому, как разработчики-гики гоняются за «ночными сборками», полагая, что это делает их круче, и слепо используют самые нашумевшие технологии вместо подбора тех, которые лучше всего работают в их контексте.
Следом за ним вышел Дмитрий Иванов (JetBrains) с докладом «Сказки о преждевременной оптимизации» (иллюстрировал его кадр «Вовки в тридевятом царстве» — забавно, что тот же мультфильм в своей презентации на недавней JPoint использовал Алексей Шипилев). Начав с классической цитаты Дональда Кнута «Преждевременная оптимизация — корень всех зол», он затем противопоставил ей собственную «Преждевременная пессимизация — корень всех зол». Иванов не то что бы пытался опровергнуть Кнута — скорее, он его дополнял. По его заявлению, разработчик в своем развитии проходит три стадии: сначала не профилирует, потому что еще не осознал важность этого, затем профилирует и оптимизирует код благодаря этому, а после этого с какого-то момента может обходиться уже без профилирования. Иванов признался, что поначалу считал самой крупной вторую группу, но затем опыт показал, что получается пирамида: больше всего еще даже не начинавших профилировать, а уже не нуждающихся в этом совсем мало.
Затем на главной сцене Андрей Акиньшин (Энтерра) перевел тему к микрооптимизации, вспомнив при этом ту же самую фразу Кнута. Его презентация использовала интересный подход, который может пригодиться самым разным техническим докладчикам: все числа были даны не в абсолютных значениях, а в условных «попугаях». Как пояснил Акиньшин, точные значения не сообщают дополнительной полезной информации и только отвлекают, поскольку слишком привязаны к конкретной ситуации. А так, если где-то оказывается один попугай против полутора, становится сразу ясно соотношение — и не оно ли играет при оптимизации главную роль?
Тем временем во втором зале говорили о тех громадных переменах, которые сейчас происходят с Windows — неудивительно, учитывая, что они напрямую сказываются на .NET-мире. Ромуальд Здебский из Microsoft объяснял новую стратегию Microsoft, направленную на объединение всех версий Windows (под управлением единой Windows 10 будут работать самые разные устройства от «интернета вещей» до очков HoloLens). Для разработчиков важно, что Windows 10 станет не просто новой, но еще и последней мажорной версией Windows: дальше система просто будет сама обновляться. Для конкретного приложения можно будет указать диапазон версий, на котором оно поддерживается.
Вслед за ним тему развил Михаил Самарин (Futurice). Доклад он начал со слов «предупреждаю, что что-нибудь может не заработать», потому что и Windows, и Visual Studio, и PowerPoint на его ноутбуке были в пререлизных версиях — и это само по себе уже показывает изменение политики Microsoft (раньше компания не предоставляла настолько охотно доступ к своим продуктам до официального релиза). Поскольку новая Windows будет способна запускать одни приложения на экранах совершенно разных размеров, вопрос подстраивающегося под экран интерфейса стоит остро — и Самарин продемонстрировал, как это будет работать (примерно как адаптивный дизайн у сайтов). Он заметил, что даже тем, кто считает себя исключительно мобильным разработчикам, не стоит ограничиваться интерфейсом для пятидюймового экрана: режим Continuum в Windows 10 предполагает, что изображение с телефона могут выводить хоть на компьютер, хоть на телевизор.
Позже Эспозито занял главную сцену еще раз, уже с куда более техническим докладом «Common Scalability Practices that Just Work». Впрочем, без прибауток он не обходился и здесь: «Масштабируемость как подростковый секс: все об этом говорят, никто этого не умеет, все думают, что остальные это делают, и поэтому все утверждают, что сами это делают».
Затем Кирилл Скрыган сравнивал ReSharper с Roslyn. Можно было бы упрекнуть его в пристрастности — Кирилл работает в JetBrains, то есть, по сути, сравнивал свой продукт с чужим — однако он сам и начал выступление с честного признания, что в данном вопросе у него есть личный интерес. И пристрастность могла бы стать проблемой, если бы он просто расписывал о том, как прекрасен ReSharper — однако выступление было куда более взвешенным. И при этом красочным: в качестве иллюстрации использовалась битва длиннокотов Катнарок, что помогало оживить публику, подуставшую к концу дня.
Что в итоге? Петербургская и московская конференции в чем-то оказались похожи (например, каждая проходила одновременно в трех залах), а в чем-то различались — и при этом нельзя сказать, что одна была лучше другой; меньший размер Петербурга не помешал ему держать марку. В вечном споре двух городов и в этом случае, как во многих других, не нашлось явного победителя. Но эта партия еще не окончена, и за Москвой следующий ход: в декабре .NEXT снова состоится там. Сейчас уже идет сбор заявок от желающих выступить там — так что у вас есть возможность лично повлиять на то, какой окажется конференция.