Приглашаем на конференцию DotNext
3 июня в Санкт-Петербурге состоится пятая по счету конференция DotNext для разработчиков на платформе .NET. О будущем платформы .NET рассказывают Ромуальд Здебский, руководитель направления Microsoft по играм в Центральной и Восточной Европе, который сделает на DotNext доклад на тему «Разработка игр на платформе Microsoft — технологический обзор», и технологический евангелист Microsoft Дмитрий Сошников, который выступит на DotNext с докладом «Сколько жизней у .NET: размышляем о судьбах любимой платформы, гибели Silverlight и тому подобном».
Какими изначально были цели создания платформы .NET? Достигнуты ли они?
Дмитрий Сошников: Появление .NET — это реакция на повышение сложности программных систем. Когда стало слишком трудно создавать серьезные приложения на C++, особенно с учетом существования различных вычислительных платформ, появилась цель радикально упростить процесс создания программного обеспечения, в том числе многоплатформенного. И в конце концов исследователи научились изолировать аппаратные сложности (а заодно и ряд трудоемких моментов, таких, как распределение памяти, многопоточность и т.д.) на уровне абстрактной виртуальной машины, а прикладному программисту давать возможность создавать код для этой машины. Так появились Java и .NET. Но основной целью языка Java была возможность запускать один и тот же байт-код на всех устройствах, в то время как платформа .NET гордилась многообразием поддерживаемых языков программирования.
Надо сказать, что основные цели по сути были достигнуты уже по факту создания платформы. Теперь же мы продвинулись гораздо дальше. На основе .NET можно писать приложения под все основные мобильные платформы и под микроконтроллеры. В арсенале .NET-программиста — целый спектр языков от C# и F# до Python и Objective C. Код на базе .NET используется как на устройствах, так и в облаке. Мечта программиста сбылаcь — зная всего лишь один стек технологий, он может быть продуктивным, разрабатывая практически любой программный код.
Расскажите коротко о современных технологиях разработки игр для платформы Microsoft, таких как Windows и Xbox. В чем их преимущества перед альтернативными платформами?
Ромуальд Здебский: Наверное, самое интересное сейчас преимущество для разработчиков на .NET заключается в том, что на всех устройствах, на всех форм-факторах теперь актуальна операционная система Windows 10 — с единым ядром, единым магазином приложений и, что особенно важно для разработчиков, единым API, который позволяет, разработав игру и создав единый установочный пакет, дать возможность пользователям играть в эту игру на любых устройствах с любыми форм-факторами, на смартфонах, ноутбуках, десктопах, Xbox One, HoloLens. Разработчики всегда мечтали о том, чтобы меньше заниматься низкоуровневыми техническими вещами, связанными с портированием или с возможностью запуска приложений на различных форм-факторах, и больше сосредоточиться на том, что интересно — на создании логики приложения, инновационных алгоритмов, повышении производительности, оптимизацией и т.д. И как раз Windows 10, Universal Windows Platform, позволяет это реализовывать.
Чем эти платформы интересны для разработчиков на платформе .NET?
Ромуальд Здебский: Этот вопрос содержит в себе и ответ — с учетом ответа на первый вопрос. Теперь можно создавать приложения не для какой-то малонаселенной пользователями реальности, а для очень большой экосистемы Windows. На Windows 10 функционирует уже более 300 млн устройств. Рост инсталляционной базы Windows 10 уже почти в 1,5 раза опережает рост в свое время очень популярной Windows 7. Более миллиарда ПК на планете сейчас могут быть бесплатно обновлены до Windows 10. Мы ожидаем, что в течение следующих двух-трех лет инсталляционная база Windows 10 достигнет более чем миллиарда устройств — и доступ к этой огромной аудитории дает разработчикам .NET.
Чем вызвана критика .NET со стороны сообщества разработчиков? Какова позиция Microsoft по этим вопросам?
Дмитрий Сошников: Microsoft — большая компания, и ее любят ругать. Очень популярно было, например, критиковать «закрытость» .NET, то, что называется «vendor lock». Однако теперь ситуация в корне изменилась, поскольку будущее .NET определяет уже не Microsoft, а организация .NET Foundation. Исходный код нового поколения .NET открыт и разрабатывается коллективными усилиями по модели открытого кода.
Еще одна популярная «претензия» — это частые перемены. Сначала была классическая платформа .NET, потом Silverlight, потом Universal Windows Platform — и каждый раз приходилось переучиваться. С этим отчасти придется согласиться —, но это верно не только в отношении .NET. На самом деле любой разработчик должен быть готов всю жизнь изучать что-то новое и жить в условиях неопределенности! Более того, к этому должен быть готов вообще любой серьезный профессионал в любой предметной области.
Ромуальд Здебский: Когда появилась платформа .NET, она охватывала в первую очередь самые популярные на тот момент форм-факторы — настольный Windows-клиент и Windows Server. Тогда это был один из самых популярных форм-факторов в мире. Но с ростом популярности веба росла популярность различных интерактивных веб-плагинов, таких как Adobe Flash и т.д. Поэтому мы разработали «легкую» браузерную «адд-ин» платформу Silverlight, чтобы разработчики могли создавать богатые, интерактивные веб-приложения на базе .NET. Сегодня популярность браузерных дополнений падает, индустрия движется к HTML 5, чтобы браузеры работали с предсказуемой производительностью без нативных «адд-инов» для базового рендеринга.
И, наконец, индустрия двинулась в сторону мобильных приложений. Для первых версия Windows Phone была использована платформа Silverlight — «легкий» браузерный «адд-ин». А теперь появилась Windows 10, Universal Windows Platform — это .NET c возможностью создавать на C# и приложения, и игры. Компания Xamarin влилась в Microsoft, и мы сделали ее инструментарий бесплатным — это прекрасная возможность для .NET-разработчиков использовать свои навыки для создания кросс-платформенных приложений, работающих и на iOS, и на Android. Очень популярна среда разработки игр Unity, в которой можно использовать также C#.
Кстати, то же самое происходит на серверной стороне — .NET Core позволяет .NET-разработчикам создавать, например, ASP.NET-приложения для Mac OS и Linux.
Silverlight изначально считалась весьма перспективной технологией, однако ее развитие прекращено. Можно ли коротко поделиться историей вопроса, появится ли альтернатива этой технологии?
Дмитрий Сошников: Silverlight — это по сути дела первая попытка сделать на базе принципов .NET альтернативный «легкий» фреймворк, способный работать в браузере на разных платформах. Благодаря своей «легковесности» он применялся для приложений Windows Phone 7.
Но сейчас сама идея использования плагинов сходит на нет, а поколение Windows Phone 7 вытеснено более современными устройствами, поэтому и актуальность Silverlight падает. Вместо него появляются новые реинкарнации платформы .NET, в т.ч. .NET Native и .NET Core, основанные на одних и тех же базовых принципах и базовых API.
Вы считаете, что тот факт, что в стратегии платформы часто происходят перемены, не является проблемой .NET?
Ромуальд Здебский: Зачем мы что-то меняем? Ради того, чтобы и платформа, и разработчики оставались актуальными на современном рынке. Мы хотим быть конкурентоспособной платформой, мы хотим развиваться. Все изменения, которые мы вносим, так или иначе связаны именно с этим. Все это делается в рамках общей стратегии открытости делается для того, чтобы и сама компания Microsoft, и разработчики на платформе Microsoft оставались конкурентоспособными.
Дмитрий Сошников: Между прочим, основные принципы и базовые API платформы .NET остаются неизменными уже более 10 лет, так что .NET может считаться одной из самых стабильных технологий, особенно по сравнению с разнообразными новомодными фреймворками, которые успевают всего за год стать популярными и умереть.
Каковы перспективы мобильных игр на Windows Phone?
Ромуальд Здебский: Здесь надо говорить шире, нельзя замыкаться только на Windows Phone. .NET позволяет создавать универсальные игры, которые запускаются на смартфонах, на планшетах, на персональных компьютерах и на игровых приставках. Только так вы охватите своими играми всю потенциальную аудиторию. Если концентрироваться только на смартфонах, то больше половины аудитории останется «за бортом». Сейчас уже неправильно создавать отдельные версии игр под разные форм-факторы. Надо создавать единую игру, предусматривая корректное, разумное масштабирование. Выходить сейчас с игрой, которая не рассчитана на все форм-факторы — не самый эффективный подход.
Новейшие средства разработки позволят переупаковывать игры для персональных компьютеров в пакеты для загрузки в магазин приложений Windows и распространению через него. Я подробнее остановлюсь на этом в своем докладе на DOTNEXT.
В целом — каково, на ваш взгляд, будущее .NET?
Дмитрий Сошников: На мой взгляд — самое радужное! Развитие .NET происходит по нескольким направлениям:
- Поддержка различных платформ и сред выполнения. Сейчас .NET выполняется на компактных устройствах, под управлением Windows 10, на Linux — в общем, почти везде, где может работать программный код, от микроконтроллеров до облака.
- Особенно важна многоплатформенность в смысле охвата мобильных платформ — iOS, Android, Windows Phone. Благодаря недавнему приобретению Xamarin, американского производителя многоплатформенных средств программирования, теперь любой разработчик может создавать приложения для любой мобильной платформы, находясь на любой платформе, с использованием проверенных языков (C#/F#) и инструментов. Стоит добавить сюда Unity как игровую платформу, также основанную на C#/.NET, и мы получаем полный охват мобильных платформ!
- Важно упомянуть расширение API на различные сферы, такие, например, как построение компиляторов. Инструментарий Roslyn позволяет манипулировать программами на C#/VB и легко создавать инструменты, встраиваемые в процесс компиляции.
- Распространение идей функционального программирования и сопутствующих технологий быстрой обработки и анализа данных. Вокруг языка F# возникает целая экосистема продуктов, позволяющих проводить интеллектуальную обработку и исследование данных в интерактивном режиме, затем перенося ее в облако. Ряд компаний (наиболее известен кейс Jet.com), используя основанный на F# технологический стек, существенно повысили свою эффективность.
Лично я, когда перешел на .NET из мира Java в 2003 г., почувствовал себя значительно счастливее. А сегодняшняя платформа .NET делает программиста счастливее во всех отношениях — будь то возможность использовать умный и красивый язык F# или позволяя сразу писать приложения для всего многообразия мобильных платформ и облачных сервисов.
Разделяете точку зрения специалистов или хотите ввязаться в спор о перспективах .NET? Нет ничего проще — все будут услышаны на DotNext Piter.
Времени остаётся совсем мало — позаботьтесь о самолёте, поезде, машине, мотоцикле, велосипеде до Санкт-Петербурга заранее.