Почему Microsoft передумала создавать рай для программистов?

Большую статью, посвященную текущей ситуации с .NET, опубликовал i-programmer. Давайте обсудим ее основные тезисы.

Microsoft вступает в post .NET эпоху, и фактически уходит от своей классической модели поставщика софта и сервисов для ПК. Самое интересно, куда же она движется?

Ранее Microsoft мечтала об удобном мире для девелоперов. Это была замечательная мечта, и .NET реально получилась лучше, чем Java, и Java только сегодня начинает догонять .NET. Ради .NET/C# Microsoft даже пожертвовала шестым Visual Basic-ом и, в меньшей степени, C++-ом с MFC. Собственно, C# немало хорошего взял именно из VB6.

Однако Microsoft попыталась усидеть на двух стульях. Она по-прежнему сохраняла API, ориентированный на COM-объекты, и стыковка его с .NET получилась неудобная. Не удалось создать в .NET полноценную поддержку DirectX. В результате C# остановился на уровне VB -- используется в прикладных проектах, но как только возникает потребность в околосистемных вещах, приходится переходить на C++.

В Windows 8 проблема эта решена кардинально. Новый API WinRT призван заменить классический Win32 API (хотя по-прежнему он базируется на COM-модели!), но .NET-у в нем по-прежнему нет места. Да, в WinRT реализована модель программирования на C#, однако управляемого кода, и тем более совместимости с .NET уже не будет. А WP8 с WP7 вообще практически не совместима.

Microsoft в свое время так испугалась Java потому, что боялась, что а) браузер вытеснит классическую ОС, и б) Java станет Windows-киллером. Но ни того, ни другого не произошло. Схожая ситуация была и с ASP.NET, которая создавалась как ответный удар империи против PHP и JSP. Объединяющая идея .NET предлагала средства создания систем любой направленности, от серверов и десктопов до мобилок и веба, в рамках Windows, но универсальным переносимым кодом.

Теперь на смену ASP.NET позиционируются сторонние технологии: HTML5 и JavaScript/TypeScript (и даже совсем чуждый node.js), развитие которых получено авторам .NET, хотя ASP.NET вполне по силам успешно конкурировать с HTML5. Да и Silverlight для мобильного мира могла бы стать великолепной платформой, однако решено двигаться в сторону WinRT, технологически явно не лучшей Silverlight-а и .NET. К сожалению, от концепции единого управляемого кода, создаваемого на C# и работающего на разных платформах, Microsoft отказалась. C# остается, но фактически как технология прикладного программирования для десктопов и серверов. Но остаются еще системные задачи, браузеры, мобильники и планшеты.

Но почему же столь внезапно Microsoft сменила девелоперскую парадигму? Один из ответов предложил Сергей Стельмах: Рекламный бюджет, выделенный Microsoft для Windows 8, втрое больше, чем для Win7.

В развитие "восьмерки" Microsoft вкладывает фантастические суммы. Она фактически даже средства разработки превратила в маркетинговые инструменты! И это, по большому счету, большое свинство.

Хорошая новость, что .NET и ASP.NET сойдут со сцены еще не скоро. Так, если вы создали проект на Silverlight, еще вчера это был правильный выбор. Еще год назад будущее Silverlight и .NET выглядело безоблачным!

Глядючи на метания этой корпорации, на ближайшую пятилетку после выхода Windows 8 лучше пока ставить на уже проверенные девелоперские концепции. А на новые технологии от Microsoft переходить крайне взвешенно.

Ярчайший пример этому -- опубликованный в октябре роадмап ASP.NET.


ASP.NET превращается в свалку технологий, которые к оригинальному ASP.NET и веб-формам имеют мало отношения. Web API, JavaScript, C# Facebook SDK... В свое время Microsoft не ругал только ленивый, куча анекдотов про нее стала айтишной классикой. За прошедшую десятилетку эта корпорация серьезно исправилась. И вот печальные времена возвращаются. История повторяется, но уже как фарс.

pcweek.ru Online

Назад к списку