В июне, когда конференция DotNext проходила в Петербурге, .NET-мир переживал сложный момент: Microsoft внезапно меняла многое в .NET Core уже на стадии release candidate. Теперь, когда прошла московская версия конференции, можно сравнить их и понять: как прошедшие полгода сказались на ситуации? А какие доклады московской были посвящены не последним потрясениям, а «вечным проблемам»? На Хабре уже появился отзыв глазами зрителя, а теперь мы публикуем свой текст.
В топ-5 докладов предыдущего DotNext попало выступление Дино Эспозито как раз о пришествии (ASP).NET Core. Там он громко и саркастично рассуждал о том, как в погоне за революционными изменениями в Microsoft позабыли о «that crazy little thing called legacy code». Теперь же в открывающем кейноуте Дино снова говорил о той же теме, но его тон был спокойнее, а на слайдах было больше диаграмм: с релиза 1.0 уже прошло несколько месяцев, и пришло время серьёзнее разобраться, что будет значить миграция на Core. Впрочем, полностью избежать ёрничанья он не мог: «Конечно, я люблю system.web — я заработал на дом тем, что писал о нём! Так что это старый друг, но теперь он покидает нас».
Дальше тему .NET Core (а также .NET Standard) подхватывал Алекс Тиссен (Xpirit). Он сделал оговорку «Core успевает измениться за то время, что на него смотришь» — но это не остановило его от подробного рассказа о многом, что можно увидеть сейчас, начиная с ухода от project.json и заканчивая тем, чего ждать от .NET Standard 2.0.
Поначалу на конференции можно было запутаться в именах спикеров: в этот раз, помимо давно любимых зрителями DotNext Дино Эспозито и Саши Гольдштейна, присутствовала ещё и Дина Гольдштейн (Aternity). Она рассказывала об Event Tracing for Windows, начав с того, в чём сложности с традиционными профайлерами: «Они требуют перекомпиляции или перезапуска — попробуй-ка просто так перезапустить софт в аэропорту! А ещё там возникают сложности и с оверхедом, и с лицензированием». В целом доклад понравился зрителям, но сразу несколько указали в отзывах, что кое-чего им не хватило: хотелось увидеть не только скриншоты и код, но и живое демо.
Дмитрий Сошников (Microsoft) уже мельком затрагивал тему Microsoft Cognitive Services в своём кейноуте на петербургском DotNext, а теперь посвятил весь свой доклад ей и Microsoft Bot Framework. Хотя сейчас компания известна не AI-технологиями, она делает на них большую ставку. Так что даже тем, у кого сейчас работа с этим не связана, полезно следить за тем, какие «когнитивные API» она предоставляет. Конечно, при желании следить за этой темой можно и по официальным новостям — но многие зрители в своих отзывах отметили яркую подачу Дмитрия, и вот этого в новостях не найдёшь.
По недавнему интервью Андрея DreamWalker Акиньшина (JetBrains) легко заметить, насколько он воодушевлён проектом Rider, над которым работает. И на открытии конференции он тоже говорил об этом: «я утром просыпаюсь, сразу открываю Rider и начинаю что-то делать». Но его доклад был посвящён совсем другому: после того, как петербургское выступление о тонкостях арифметических операций было очень тепло принято, в Москве он развил тему.
Имеют ли все эти тонкости практическое значение в жизни разработчика, или это нюансы, о которых интересно знать, но которые толком никогда не сказываются? Андрей начал доклад с нескольких примеров того, как они сказывались очень значительно. Вероятно, самый впечатляющий пример — история о том, как в 1991-м «маленькая и ни на что не влияющая» погрешность в софте зенитно-ракетного комплекса за 100 часов работы накопилась до ошибки в треть секунды, а в итоге погибли 28 солдат.
У Марко Чеккони (Stack Overflow) было два доклада за день. И если с темой первого «Stack Overflow — It's all about performance!» всё понятно (о ней он нам также рассказывал до конференции), то вот «Performance tuning Stack Overflow tags» могла удивить: а что, теги на сайте — это настолько значимая и самодостаточная тема с точки зрения перфоманса, что ей надо посвящать отдельный доклад? Но Чеккони быстро дал понять, что тут хватает своих подводных камней: «Например, в нашем поиске тег можно задать не только как windows, но и как windows*, чтобы вместе с ним нашлись все вроде windows-10. И у нас такая аудитория, что этой возможностью действительно часто пользуются!» Интересно, заранее и не догадаешься, что «техническая продвинутость» аудитории сайта может сказываться на работе с его перфомансом.
Саша Гольдштейн (Sela Group) тоже выступил дважды — с «WinDbg Superpowers for .NET Developers» и «Squeezing the Hardware to Make Performance Juice». Как известно, «software is hard, but hardware is harder», поэтому умение Саши объяснять всё простыми словами во втором случае особенно пригодилось.
У разработчиков может возникать ощущение «если я не ракеты запускаю, то зачем мне вообще забивать себе голову железными вопросами», и в докладе была очень наглядная иллюстрация того, зачем: вопрос со Stack Overflow «Why is it faster to process a sorted array than an unsorted array?». Из-за того, как работает branch prediction (о котором автор вопроса не знал), разница во времени обработки у него составила шесть раз, и когда различия оказываются такими, явно полезно понимать, как всё работает. От этого примера Саша перешёл к более сложным темам вроде SIMD, сохранив при этом доступность изложения.
Наконец, Джесси Либерти (Liberty Associates), также выступивший дважды, в заключительном кейноуте говорил о нововведениях C# 7. В основном речь была прямолинейно-информативной, но порой Либерти уходил в сторону («как вы произносите tuple — “тапл” или “тупл”?»), а порой позволял себе вольности («out variables — они… тут можно говорить “сосут”?»). Среди того, о чём он рассказывал, был pattern matching («у switch-выражений в качестве case может выступать паттерн!»), и тут любопытно сравнить мир C# с развивающейся параллельно Java. Там недавно тоже заговорили о возможном добавлении pattern matching — но пока что с оговоркой «это вилами по воде писано».
А теперь, когда с конференции прошло достаточно времени, можно вычислить топ-5 докладов по присланным зрителями оценкам. И он получился таким:
- Sasha Goldstein (Sela Group) — WinDbg Superpowers for .NET Developers
- Андрей Акиньшин (JetBrains) — Продолжаем говорить про арифметику
- Sasha Goldstein (Sela Group) — Squeezing the Hardware to Make Performance Juice
- Роман Неволин (EPAM) — F# во славу Data Science
- Дмитрий Сошников (Microsoft) — Интеллектуальные чатботы и когнитивные сервисы
Его любопытно сравнить с предыдущим петербургским топом. Во-первых, из четверых попавших в список спикеров трое были лидерами и на прошлом DotNext. А во-вторых, Саша Гольдштейн снова занял одновременно первое и третье места!
Похоже, после всех перипетий с релизом Core теперь .NET-миру хочется стабильности.
Автор: JUG.ru Group