На прошлой неделе Microsoft объявила об открытии исходного кода полного серверного стека .NET и расширении .NET для использования на платформах Linux и Mac OS.
ИТ-сообщество, ранее часто проявлявшее скептицизм к намерениям Microsoft, тепло приняло этот шаг. (Исключением, возможно, является мой приятель Адриан Бриджуотер, который высказал предположение, что подвижка компании в сторону Open Source имеет целью только укрепление ее мирового господства.)
Открытие исходного кода .NET является лишь последним в серии шагов, предпринятых компанией с апреля 2014 г., что задокументировала моя коллега из ZDNet Мэри Джо Фоли. По ее сообщениям, за это время Microsoft объявила о планах раскрыть исходные коды целого ряда технологий для разработчиков, включая ASP.NET, .NET-платформу компиляции Roslyn, .NET Micro Framework, .NET Rx и языки программирования VB и C#. Эти технологии поступили в свободный доступ через недавно созданную организацию .Net Foundation. По поводу последнего действия Фоли отмечает, что Microsoft «добавляет в свой список свободного кода под лицензией MIT все больше частей .NET, включая .NET Common Language Runtime (CLR), JIT- компилятор, сборщик мусора и библиотеки Base Class Library».
Здесь даже можно узреть и желание к объединению с технологией Mono, альтернативой .NET в мире свободного кода. Будет интересно увидеть, примет ли на себя Microsoft более весомую роль в Mono Project.
Но что по большому счету значит раскрытие исходного кода .NET для всего мира? Вот пять выводов из последнего объявления компании насчет .NET.
Де-факто Windows уже не является мировой ОС. С момента своего появления в 2002 г. .NET стала предпочтительной программной платформой для веб-сервисов, а впоследствии для сервисно-ориентированных и облачных инфраструктур. Она была главным конкурентом для платформ, использующих Java, с оговоркой, что .NET работала только в Windows-системах. Все это хорошо функционировало в эру, когда почти весь мир работал на Windows, по крайней мере на офисном уровне.
Объявление Microsoft в не меньшей мере, чем .NET, касается Apple Mac OS X. Это признание того, что Mac OS X стала частью корпоративных вычислительных сред. В прошлые времена Mac OS чаще считалась принадлежностью департаментов, занимающихся графическим дизайном и полиграфией.
Это означает расширение выбора для разработчиков. Например, Синклер Шуллер считает, что переход .NET в мир Open Source — большое дело для разработчиков. В недавнем посте он написал, что кроссплатформенная версия .NET расширяет выбор разработчиков: «.NET-разработчики смогут создавать больше приложений для работы в разных системах. Это означает повышение конкуренции между средствами поддержки исполнения программ, языками и стеками, что ведет к улучшениям в деятельности разработчиков. В конечном же счете это значит, что разработчики смогут освободиться от барьеров и улучшить качество жизни всего мира, соединив .NET, одну из лучших на свете платформ для выполнения приложений, с Linux, одной из лучших в мире серверных ОС».
.NET теперь только одна из многих опций. Акция Microsoft может быть и признанием того, что .NET уже не занимает верхнюю позицию, на которой она когда-то была. Как отмечает Джонатан Ваньян в блоге GigaOm, сегодняшнее поколение разработчиков от .NET отходит. «Нет гарантии, что открыв исходный код .NET, Microsoft получит приток программистов. Компания в некотором смысле играет с огнем, открывая для собственных лояльных .NET-разработчиков новые платформы, где им может встретиться то, чего, по их ощущениям, не доставало .NET или другим технологиям Microsoft».
Это послужит продвижению модели платформы как сервиса. Поскольку PaaS проникает на предприятия, ее будет легче выстраивать на многоплатформенном фундаменте. «Учитывая, что полная поддержка .NET будет означать поддержку Windows, Linux и Mac, я ожидаю усложнения архитектуры PaaS, если PaaS полностью использует .NET, — говорит Шуллер. — Возможно, сервисы приложений, имеющиеся в Linux, станут проще для эксплуатации из .NET-приложений, работающих под Linux».
Это будет стимулировать независимые инновации. Не будем забывать, что открытый исходный код носит свое название потому, что этот исходный код открыт для проверки и переработки. Будет интересно понаблюдать, как будут видоизменяться реализации .NET для новых типов функциональности. Возможно, .NET будет приживаться в таких местах, о которых мы раньше не могли себе представить.