Но рок-н-ролл мертв, а я-а-а-а ... еще нет...
Б.Г. (который не Билл Гейтс, а Борис Гребенщиков)
Мыслей много, с чего бы начать ...
Начну, пожалуй, так - 8 лет назад (в далеком 2004 году) Joel Spolsky написал замечательную статью - Как Microsoft проиграла битву за API (оригинал статьи - How Microsoft Lost the API War). Правильных мыслей в статье много и она остается актуальной и по сей день. В общем и целом статья сводится к одному предложению: Microsoft утратила религию обратной совместимости (eng. "Microsoft Lost the Backwards Compatibility Religion"). На тот момент речь шла о том, что утеряна обратная совместимость между новой платформой .Net и старыми языками (Visual Basic и Microsoft C++) - т.е. если Вы писали на чем-то "старом", то вам нужно все учить заново и практически с нуля.
Для молодого поколения, напомню, что платформа .Net появилась в 2002 году и примерно в 2003-2004 годах состоялся достаточно большой отток разработчиков Microsoft на другие средства (в том числе и прямого конкурента .Net - Java). Объясняется это просто - зачем инвестировать (в том числе время) во что-то новое с еще сомнительным будущем, если есть более "вкусные" для изучения языки/платформы? Тем более, что формально заявленные средства конвертации старого кода в новый попросту не работали. Например, мне не удалось за 2 недели портирвоать проект VB6 в 40тыс.строк кода на .Net. Проще было написать этот же код на .Net заново.
Итак, прошло 10 лет, Microsoft всех кто остался (и появился новый) приучила к платформе .Net, которая должна работать на всех современных версиях Windows и даже на мобильных устройствах (я про Windows Phone 7).
Итак, прошло 10 лет, Microsoft всех кто остался (и появился новый) приучила к платформе .Net, которая должна работать на всех современных версиях Windows и даже на мобильных устройствах (я про Windows Phone 7).
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. Если верить одному из
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. Если б я был
3. Кажется, что усилия по развитию .Net пойдут на убыль: нужно поддерживать две ветви средств разработки (а то и три?): платформа .Net, средства для разработки не .Net приложений для Intel архитектуры, средства для разработки под ARM.
Про Silverlight
С ним ситуация совсем очевидна -
Для меня в этой "кагорте" языков(или платформ? как их правильно называть?) остается только один открытый вопрос - JavaFX. Но здесь все в руках Oracle. Подождем ...
Заключение
Жаль, что в лагере Редмонда "рулят" продавцы. Очередной "прыжок" в сторону нового и поворот "не лицом" к старым апологетам Microsoft. Хотя ... может все мы ошибаемся и Microsoft еще всем нам покажет ...
Интересно конечно. Буквально пол года назад был проект как раз под ARM, для Windows CE 6.
ОтветитьУдалитьТам был .NET 3.5, там был Silverlight. Один и тот же бинарник без каких-либо изменений работал как на PC, так и на ARM.
Зачем, спрашивается, убирать эту совместимость?
Ну а по поводу "революций" (вышеупомянутый 2002 год) - так Apple делает их еще чаще :) Причем, как в самом языке, так и в инструментах. Просто яблочники к этому давно привыкли - это ж Apple...
Иван, скорее где совместимость была - там она и останется (иначе совсем бред), а где не было - не появится.
УдалитьА может все намного хуже - Windows CE != Windows 8 для ARM и все тут :)
Как говорится, подождем.
Apple - зато они разработчикам не платят за использование платформы, а даже совсем наоборот :D
Apple - это точно :)
УдалитьА Windows CE, насколько мне известно, вообще исчезнет как класс.
А по поводу мертвости Silverlight - оно таки еще шевелится :) По крайней мере, на том же ARM UI более предсказуемый и быстрый, чем с помощью стандартных средств .NET
Windows CE 6 - обещают поддерживать еще 10 лет - до 2022 года, но это скорее "сказки для приезжиш" http://www.microsoft.com/windowsembedded/en-us/evaluate/windows-embedded-roadmap.aspx
УдалитьSilverlight - это агония. В Windows 8, как я понял, будет аналог для рисования UI, встроенный в ОС.