НовостиОбзорыСобытияIT@WorkРеклама
Идеи и практики автоматизации:

Блог

C# на Metro

Пожалуй, наиболее важным для мира программистов стратегическим событием на микрософтовской конференции BUILD 2011 стало выступление Anders-а Hejlsberg-а -- легендарного архитектора среды Borland Delphi, который, перейдя в Microsoft, создал не менее изумительную платформу .NET и язык C#.

Из его выступления можно получить примерное представление о планах Microsoft в отношении C# и Windows 8.

[spoiler]Hejlsberg отметил две ключевые фичи в развитии C# пятой версии.
1) поддержка асинхронности (15% функций API Metro асинхронны, причем не имеют "синхронных" альтернатив) и ориентация на планшетные (жестовые, голосовые, ...) интерфейсы управления. Данный режим в каких-то формах присутствовал еще в самой первой версии C#, но программировать соответствующие вещи было трудоновато, а отлаживаться еще сложнее. Сейчас доступна гораздо более удобная библиотека абстракций Task Parallel Library, но Anders пообещал, что C# 5.0 предоставит еще более комфортные сервисы для оркестровки, и его слову можно верить. Важно, что многие вещи по распараллеливанию и обеспечению асинхронности компилятор возьмет на себя -- во многих случаях достаточно будет задать для функций async/await, и по участкам кода, где возможны конфликты, выдадутся предупреждения.
2) компиляция-как-сервис (проект Roslyn). Microsoft готовит API к компиляторам C# и VB.NET, через который процесс трансляции можно будет "дергать" в процессе исполнения кода! Эта крайне важная фича, приближающая C# к лучшим функциональным интерпретируемым системам. На этом принципе реализуется и сервис Reflection -- использование C# в качестве скрипт-языка внутри собственного приложения (например, для создания макросов и открытого интерфейса расширения). Кроме того, готовятся автоматические конверторы кода с VB.NET и других языков, входящих в нынешнюю .NET, в C# "на лету" -- таким образом, язык C# становится в Windows 8 самым главным.

Пока неясно, выйдут ли эти вкусности в Visual Studio 11 -- они привязаны прежде всего к Windows 8, но CTP Roslyn обещана вроде уже до зимы. Неясно только, будет ли функциональность Roslyn доступна уже сейчас для .NET, или же только для WinRT.

Предварительные итоги:
- сторонникам Windows 8 про .NET в ее нынешнем виде и Silverlight -- увы увы -- можно постепенно забывать;
- .NET Common Language Runtime 4.5 на уровне мета-описаний runtime-интерфейсов переберется в WinRT (в виде .winmd-файлов);
- по этим мета-описаниям API WinRT, соответственно, можно будет вызывать из программ на Си/C++, языков .NET (прежде всего C#) и JavaScript (через Chakra-движок Internet Explorer);
- обещана некая поддержка наследства Silverlight -- через язык XAML;
- в то же время стиль программирования в WinRT будет более похожим на Silverlight- программирование -- все что можно, виртуализируется, сторонние функциональные возможности из соображений эффективности и безопасности ограничиваются. Приложения будут работать в изолированных песочницах, а доступ к системным устройствам максимально обезопасится (через мета-контракты);
- про классический клиентский доступ к SQL Server-у тоже можно забывать :)
Доступ к СУБД организуется через стандартные сервисы (например, WCF RIA Services, созданный для Silverlight);
- от Win32 останется немного огрызков, GDI так же не будет -- рендеринг пользовательского интерфейса выполнится через DirectX;
- портирование .NET-приложений на WinRT трудно, а во многих случаях невозможно;
- для Metro вводится еще большее число ограничений по созданию и распространению оригинального контента.

На этом суровом фоне нынешняя Windows 7 + .NET с учетом огромного к ней интереса просуществует, пожалуй, столь же долго, сколь и XP / Win32, полагают эксперты (хотя конечно сегодня ИТ-мир меняется гораздо быстрее, чем 10 лет назад) и надолго станет основной платформой разработки. Windows 8 скорее всего начнет битву за планшеты и облака.

Вообще, отказ от Windows 7 / Win32 / .NET как проверенной платформы разработки в погоне за бешеным рынком iPad-ов выглядит для Microsoft рискованно. Надежда на Hejlsberg-а -- его творения с каждой Windows-итерацией становятся все глубже, гибче и мощнее, и на мой взгляд, Anders Hejlsberg -- самый великий человек в истории Microsoft, хоть и менее заметный чем Билл Гейтс, но влияние его на мир ничуть не меньше.