Для молодого поколения, напомню, что платформа .Net появилась в 2002 году и примерно в 2003-2004 годах состоялся достаточно большой отток разработчиков Microsoft на другие средства (в том числе и прямого конкурента .Net - Java). Объясняется это просто - зачем инвестировать (в том числе время) во что-то новое с еще сомнительным будущем, если есть более "вкусные" для изучения языки/платформы? Тем более, что формально заявленные средства конвертации старого кода в новый попросту не работали. Например, мне не удалось за 2 недели портироать проект VB6 в 40тыс.строк кода на .Net. Проще было написать этот же код на .Net заново.
Итак, прошло 10 лет, Microsoft всех кто остался (и появился новый) приучила к платформе .Net, которая должна работать на всех современных версиях Windows и даже на мобильных устройствах (я про Windows Phone 7).
И вот новая версия Windows 8 уже не за горами. А в ней много всего "вкусного" и в том числе работа не только на Intel архитектуре, но и на
ARM. И что мы видим - судя по всему
.Net на ARM не будет (по крайней мере в обозримом будущем)! Мало того,
бинарно приложения для ARM и Intel совместимы не будут (хотя это как раз более-менее прогнозируемый момент).
But at least with Windows 8 on PCs running Intel and AMD architectures (x86/x64), most Windows apps since version 3.0 will run on the Desktop. This will not be the case on Windows for ARM for an obvious and unavoidable reason: Applications compiled to run on these processors are not code-compatible with ARM-based platforms. And managed apps made for the .NET Framework - which as late as Spring 2011 was still being touted as the platform of Windows' future - will not run on WOA because the .NET Framework is not code-compatible with ARM, at least not at this time.
Как следствие - разработка для Windows 8 под ARM архитектуру будет "сбоку" от основной разработки и совсем уже не на .Net (а на чем? C++?
In one sense then, the fears of .NET developers were justified and COM has its revenge). Эта сиутация ничего Вам не напоминает? Мне - 2002 год и переход с C++/VB6 на .Net.
Т.е. если бы я был разработчиком .Net и захотел "для" себя по программировать под мобильные платформы (tablets, smart-phones и т.д.), то скорее всего выбрал бы не С++ (или что там будет для ARM?) от Microsoft, а Objective C для Apple (рынок больше, стоиомсть разрабочика дороже) ну или Java для Android (тоже неплохо и не нужно "возиться" с очисткой памяти).
Теперь поговорим о том
почему скорее
мертв .Net, а не Windows на ARM платформе.
1. Если верить одному из
со-ведущих постоянных гостей
шоу Радио-Т Петру Диденко, Microsoft в данный отрезок времени руководят продавцы. 2011 год был для Microsoft супер успешным с одной стороны (
полученная прибыль превысила прогнозную), и в то же время их давние "партнеры" IBM и Apple "обошли" их по уровню капитализации, чего не было с давних 80-90 годов прошлого века. Иными словами, одна из главных задач Стива Балмера и Ко на 2012-2013 года это сохранение и увеличение прибыльности, увеличение капитализации компании одновременно с позитивным PR'ом Microsoft повсюду (а то для многих она по прежнему остается империей зла).
2. Для тех кто не заметил, мы с Вами
живем уже в post-PC эру - т.е. время, когда компьютеры у нас дома повсюду: в телефоне, часах и автомобиле. К чему привело такое смещение акцентов? К уменьшению продаж компьютеров для домашних пользователей (я про desktop'ы и notebook'и/laptop'ы) и ... уменьшению доходов с этого сегмента, которые достаются Microsoft. Я знаю уже определенное количество людей, которые заменили старый домашний компьютер на планшет и вполне комфортно себя чувствуют. Т.е., с точки зрения Microsoft, домашним пользователям будет все сложнее продавать лицензии Windows и Microsoft Office. Значит нужно сделать так, что Windows и Microsoft Office появились и на других устройствах...
3. Мобильные устройства на Intel архитектуре не получаются :( Т.е. получаются, вот только автономность, уровень шума/температура оставляют желать лучшего (те кто смотрел "ужастики" на Intel планшете, когда в самый ответственный момент включается вентилятор меня поймут ;).
Если я прав по пунктам 1.-3., и Microsoft не захочет терять рынок домашних пользователей (это противорчит пункту 1.,
играм с Nokia и было бы попросту глупо) и сосредотачивать только на корпоративном сегменте, то компании необходимо как можно скорее переключаться с Intel архитектуры на ARM, брэндировать новый продукт как ОС Windows 8/Microsoft Office 15 (что-то мне не верится, что с точки зрения исходного кода это будет один и тот же продукт для разных платформ), привлекать разработчиков и выпускать дешевые (бесплатные?) средства разработки для ARM.
Итого получаем по .Net
1. Переход с тезиса .Net - наше все для Windows (и не только - я про
Mono), на .Net - наше все для Intel.
2. Если б я был
султан разработчиком Microsoft (не являюсь таковым с 2005 года) и мне нужно было начинать новый "большой" проект, я бы много раз подумал начинать ли его на .Net или попробовать что-то новое.
3. Кажется, что усилия по развитию .Net пойдут на убыль: нужно поддерживать две ветви средств разработки (а то и три?): платформа .Net, средства для разработки не .Net приложений для Intel архитектуры, средства для разработки под ARM.
Про Silverlight
С ним ситуация совсем очевидна -
он мертв Microsoft сместила интерес в сторону HTML5. Вопрос с ним такой же как и с Flash'ем от Adobe - как долго будут поддерживать и когда закроют (те, кто пропустил
Flash для мобильных устройств уже прекратил свое существование).
Для меня в этой "кагорте" языков(или платформ? как их правильно называть?) остается только один открытый вопрос - JavaFX. Но здесь все в руках Oracle. Подождем ...
Заключение
Жаль, что в лагере Редмонда "рулят" продавцы. Очередной "прыжок" в сторону нового и поворот "не лицом" к старым апологетам Microsoft. Хотя ... может все мы ошибаемся и Microsoft еще всем нам покажет ...