НовостиСобытияКонференцииIT@Work
Open Source:

Блог

Microsoft заигрывает с Open Source, но усложняет разработку под всю линейку Windows

Феноменальное известие пришло на прошлой неделе из редмонтовского штаба.

Платформа .NET станет опенсорсной, и Microsoft для этого формирует .NET Foundation http://www.dotnetfoundation.org/

на который, видимо, и будет переложена ответственность за судьбу этой замечательной технологии. Много лет эта корпорация не слишком обоснованно вещала, что любое СПО -- это плохо для бизнеса, но в последние годы, видимо, все же поняла, что лучше исповедовать прагматичный подход. Если что-то выгоднее сделать опенсорсным -- так тому и быть.

Полузаброшенная .NET сегодня постепенно возрождается, причем во многом усилиями сторонних фирм наподобие Xamarin (во многом в формате свободного клона Mono), но теперь к этому проекту присоединяется ведущий мировой портал СПО-сообщества GitHub! Там можно найти компилятор-сервис Rosyln для C# и VB, причем под лицензией Apache -- пожалуйста, кто хочет развивать эти языки, велкам! Сюда же можно добавить публикацию исходников MS DOS 1.1/2.0 и Microsoft Word for Windows 1.1a как символический жест.

Xamarin в этом контексте смотрится главным победителем -- в дополнение к Android и iOS готовится перенос .NET/C# (и, видимо, VB) на Linux! Однако, не получится ли так, что .NET в итоге превратится в нечто узко-технологичное, и если поддержка этой платформы не будет встроена в новые версии Windows (а, похоже, к этому и идет), то судьба ее предрешена: .NET станет очередной нишевой кросс-платформной технологией, как например Delphi.

Но куда же двинулась в таком случае сама Микрософт? Это C++/COM и HTML5/JavaScript, причем в контексте СПО. Опубликован в виде СПО официальный релиз Microsoft TypeScript 1.0 -- своеобразное расширение JavaScript для крупных проектов, которым теперь занимается сам Андерс Хейлсберг, автор C#/.NET (а ранее -- Delphi). Эта технология полностью интегрирована в Visual Studio 2013. Исходники: https://typescript.codeplex.com/releases/view/120282

Выпущена WinJS 2.1 -- как опенсорс! https://github.com/winjs/winjs

Это JavaScript-библиотека от Microsoft для разработки приложений под WinRT, Windows Phone и Windows Store. Впрочем, JavaScript-код вообще сложно выпускать как-то по-другому :) Что интересно, несмотря на огромное количество JavaScript-инструментов, WinJS смотрится очень и очень солидно. С ее помощью можно создавать приложения, которые будут работать фактически в любом настольном браузере любых ОС, а также в WinRT (Windows 8.1) и Windows Phone.
На возможности этой либы можно полюбоваться тут: http://try.buildwinjs.com/

Эти технологии формально отвечают "новой" стратегии Microsoft "One Windows" -- пишется однажды, работает "везде" (в любой Windows). Однако, увы, это лишь планы на грядущее, потому как под "Windows" Редмонт сегодня понимает Windows 8.1 и старше.
Пока же ситуация такова, что существуют три разные "Windows" -- Windows 7 и младше; Windows 8.x; Windows Phone 8.x. Формально две последние ОС базируются на одном ядре, однако на практике для каждой из них проектный код надо существенно кастомизировать. Так, Visual Studio 2013 Update 2 RC вроде бы нацелен на задачу писать Universal Apps, которые единообразно работают на телефонах, планшетах и ПК, только использовать для этого один и тот же код пока не получается.

И в этой связи совет такой: хотите создавать истинно Universal Apps для Windows на ближайшую пятилетку? Для XP/Vista/7/8/8.1, а также всей серверной Windows-линейки, действительно на основе одного кода? Соответствующая замечательная технология существует давным-давно, еще со времен XP, а называется .NET. К тому же скоро она перейдет в формат СПО, официально расширится поддержкой ведущих мобильных платформ и Linux -- и это замечательно.

нам микрософт опять внушает
"бери восьмерку не тупи"
но люди неспроста предпочитают
икспи
Шатров Григорий
Имеются в виду, коммерческие технологии Xamarin
Любые некоммерческие технологии легким движением руки с денежной купюрой превращаются в коммерческие. ;-)  
У MS уже есть своя Java -- NET,
НедоJava. :-) Я имею ввиду, что скоро Microsoft дозреет до основной идеи Java: «скомпилировано однажды, запускается везде» (compile once, run anywhere).
Ruslan
Любые виртуальные машины это гарантированные тормоза в критической части и перерасход памяти
Я всеми пятками за Натив.
В принципе в новой версии С++ уже можно более менее прогать, даже override появился наконец то
Бобровский Сергей
Да, плюсы будут всегда.