С некоторых пор и до последнего времени Microsoft руководствовалась новым девизом «Облака и мобильные технологии прежде всего!». Однако на приближающейся конференции для разработчиков Build 2016 (как, впрочем, и за ее пределами) информационный посыл корпорации, вероятно, будет несколько иным — «Сначала облака, а уж потом — Windows».
Частично такое смещение акцентов обусловлено посредственными успехами операционной системы Windows на рынке мобильных устройств — доля Windows Phone на нем составляет порядка 1%. Такое положение дел снижает привлекательность предлагаемой компанией платформы Universal Windows Platform (UWP), так как одним из китов, на которых она держится, является ОС Windows 10 Mobile, совсем не притягательная для многих разработчиков. Официальные представители Microsoft утверждают, что благодаря UWP задача превращения приложения для Windows 10 в мобильное приложение для Windows 10 Mobile стала элементарной, однако многие разработчики довольно прохладно восприняли эту возможность.
Компания Microsoft попыталась противопоставить этому разработку собственных мобильных приложений под iOS и Android. В начале этого года она также приобрела компанию Xamarin — знатока в области мобильных инструментов.
После покупки Xamarin многие интересующиеся, как и я, делами Microsoft думали, что следующим своим шагом Microsoft перенесет акцент с UWP-приложений на универсальные кроссплатформенные приложения. Если учесть, что основное направление бизнеса Xamarin состоит в том, чтобы помогать .NET-разработчикам писать нативные мобильные приложения для iOS, Android и Mac, то разве не станет теперь Microsoft предлагать разработчикам средства для написания по-настоящему кроссплатформенных, а не кросс-Windows-платформенных, приложений?
«Приобретение Xamarin и их превосходных технических ресурсов является следующим логичным шагом на пути к превращению UWP в действительно универсальную платформу, — говорит основатель компании Interknowlogy Тим Хакэби, отражая настроения многих знатоков Microsoft и программистов. — Вся экосистема разработчиков только и ждет, когда же UWP станет по-настоящему универсальной — они на это рассчитывают. В идеале весь процесс — дизайн, разработка и жизненный цикл — должен проходить непрерывно с использованием единого набора инструментов в рамках Visual Studio. Теперь, вероятно, идеал имеет все шансы стать реальностью».
Однако некоторые считают, что в позиционировании компании может произойти куда больший сдвиг. Как заметил один из моих знакомых, Microsoft, похоже, двигается от девиза «облака и мобильные технологии» к другому девизу — «облака, мобильные технологии и многое другое».
Несмотря на то, что помимо Windows Phone в современную экосистему UWP входят еще Xbox и HoloLens, новые реалии таковы, что теперь центром новой вселенной Microsoft становятся облака, а не Windows.
«Честно говоря, не думаю, что UWP станет действительно универсальной — хотя бы потому, что в нынешнем своем виде эта платформа слишком завязана на Windows и заложенные в эту ОС идеи, — заявил Шмуэли Энглард, разработчик ПО в компании Lufthansa. — Мне кажется, Microsoft осознает всю тщетность затеи с платформой, которая позволила бы один раз написать код, а потом запускать его где угодно».
Причина, по которой генеральный директор Microsoft Сатья Наделла изначально ввел мантру «облака и мобильные технологии прежде всего» состоит в том, что мобильные устройства все больше подключаются к облакам и от них зависят. Привлечение конечных пользователей и корпоративных клиентов к сервисам Microsoft становилось все более важной задачей для компании. Но у Microsoft все еще есть рычаги убеждения разработчиков в том, что им непременно нужно пользоваться платформой Azure.
Тем не менее, времена, как и ожидания, меняются.
Microsoft продвигает свой девиз «Microsoft любит Linux» не в последнюю очередь потому, что без Linux рост популярности Azure невозможен. Более четверти виртуальных машин на платформе Azure работают под ОС Linux, к тому же многие стартапы и индивидуальные разработчики вплотную работают с Linux. Чтобы привлечь программистов к Azure, компании Microsoft понадобится кроссплатформенный .NET с набором кроссплатформенных инструментов.
На прошлогодней конференции Build компания Microsoft торжественно презентовала предварительную версию упрощенного кроссплатформенного редактора Visual Studio Code для Mac OS, Linux и Windows. На тот момент руководство Microsoft заявляло, что VS Code был только начальным звеном в цепочке кроссплатформенных средств разработки.
«Microsoft следовало бы полностью интегрировать Xamarin в Visual Studio (а позже — и в VS Code) и сделать его средой для разработки приложений для всех клиентских платформ, — говорит другой, пожелавший остаться неизвестным, разработчик, с которым я недавно побеседовала. — Тогда вариант „счастливы вместе“ уже касался бы не столько Visual Studio плюс Windows, сколько Visual Studio плюс Azure. Пусть на Azure работает как можно больше кода. Перенесите на Azure как можно больше данных. И сделайте Azure центром тяжести для корпоративных вычислений».
Исследователи деятельности компании говорят о том, что в краткосрочной перспективе более глубокая интеграция среды разработки Xamarin с Visual Studio и Azure направлена больше (если не полностью) на создание доступного по цене пакета, чем на дальнейшее смешение двух пластов технологий.
«Одним из недостатков среды Xamarin, сдерживающих ее популярность, является ее стоимость. При цене в 2 тыс. долл. на одного разработчика резко сокращается ареал ее применения, из-за чего людям приходится обращаться к менее продуктивным и надежным инструментам вроде Cordova. Но если нам всем дадут возможность пользоваться кроссплатформенной библиотекой .NET в рамках уже имеющегося у нас MSDN, это резко изменит ситуацию, причем в сторону предпочтительности использования .NET», — написал у себя в блоге Рокфорд Лотка, технический директор компании Magenic и создатель среды разработки CSLA.NET.
Еще одним ключевым объектом для наблюдения станет пакет средств разработки Xamarin Forms и его развитие, считает Гэри Притти, специалист по вопросам технической стратегии компании Mando Group.
Xamarin Forms — это кроссплатформенный набор инструментов для создания интерфейсов пользователя, которые в равной степени хорошо будут работать под Windows, iOS и Android. В Xamarin предусмотрена возможность в рамках Xamarin Forms разрабатывать приложения для UWP, правда, пока ее реализация находится на предварительной стадии, но скоро этот функционал должен стать доступным.
«Думаю, что как только UWP-элементы (набора инструментов Xamarin Forms) пройдут предварительное тестирование, вся эта длительно назревавшая ситуация, наконец, сложится в единую, ясную картину, — говорит Притти. — До нынешнего времени в Xamarin были встроены типы проектов, позволявшие создавать приложения для iOS и Android на языке C# (Xamarin.IOS и Xamarin.Android). Затем в рамках экосистемы Microsoft мы получили возможность писать приложения для UWP с помощью программных средств Microsoft, но, опять-таки, на C#. И вот, наконец, у нас будет Xamarin Forms с поддержкой всех трех платформ. Таким образом, разработчик сможет либо ориентироваться на какую-то определенную платформу, либо на несколько платформ одновременно».
Хотя мы, несомненно, еще много чего услышим на конференции Build 2016 о планах Microsoft по привлечению разработчиков к написанию кода для Windows 10, все же основным приоритетом руководства компании, по всей видимости, является привлечение разработчиков к идее кроссплатформенности и к Azure. Решающей стадией этой миссии для Microsoft станет облагораживание собственной кроссплатформенной среды, инструментов разработки и процедур доступа к данным.