Платформа Microsoft
АрхивСтатьиНа ежегодной конференции рассказывали про роботов, которые работают под управлением Microsoft, про черты функциональных языков, которые медленно, но верно обретает С#, и про "убийцу" Flash.
"Платформа" - это конференция для разработчиков, которую Microsoft каждый год проводит в Москве. На "Платформе 2008", закончившейся несколько дней назад, собравшимся рассказали про черты функциональных языков, которые медленно, но верно обретает С#, про "убийцу" Flash, про роботов, которые работают под управлением Windows и про многое другое. Увы, даже небольшую долю из более чем полусотни докладов охватить в одной небольшой статье вряд ли возможно.
Microsoft Robotics Studio
Есть, оказывается, у Microsoft и такое подразделение. О достижениях Robotics Studio рассказывали Евгений Марченков и Павел Хижняк (несмотря на имена, в Москву они приехали из Редмонда, а участие в "Платформе" совмещают с отпуском).
По словам Павла Хижняка, роботехника сегодня если и присутствует на потребительском уровне, то лишь в простейших проявлениях или в виде дорогих безделушек, однако в ближайшем будущем "электронные помощники" приобретут ценность если не для домашнего использования, то хотя бы для малого бизнеса. "Развитие роботехники сегодня очень напоминает ранний рынок ПК, и это одна из причин, по которой роботы интересны Microsoft" - говорит он.
Деятельность Microsoft в этой области заключается, главным образом, в создании платформы для разработки программного обеспечения роботов и сред симуляции, позволяющей тестировать системы управления роботом без необходимости создавать самого робота.
"Главное - не перепутать, - говорит Хижняк, - мы делаем программу не для каких-то специфических микросхем, а для персонального компьютера с Microsoft Windows". Этот подход имеет очевидные недостатки (роботом должен управлять полноценный ПК с Windows), но хорош тем, что код получается совершенно универсальным.
Программировать роботов можно не только с помощью заклинаний на C#, но и совершенно дилетантским методом: перетаскивая и связывая друг с другом формочки. Возможности, конечно, далеко не те же самые, но для программиста это может оказаться хорошим средством быстрого прототипирования, а для непрограммиста - единственным способом получить работоспособный результат.
Среда симуляции не менее интересна. В ней можно создать трёхмерную модель робота, подготовить некую тестовую площадку и посмотреть, как машина будет себя вести в условиях, напоминающих реальные.
Весь комплект для разработки можно скачать с официального сайта Robotics Studio.
Microsoft Silverlight и Windows Presentation Foundation
Обе технологии тесно связаны с .NET и позволяют описывать интерфейсы приложений на Extensible Application Markup Language (XAML). В соответствующем докладе показывали в действии их последние версии и рассказывали об отличиях.
Windows Presentation Foundation открывает перед создателями довольно интересные возможности. С ним разработка интерфейса становится похожа на создание веб-страницы: описание расположения элементов задаётся отдельно, описание стилей - отдельно. Любой объект можно переделать практически как угодно: например, если придать окну форму круга, то оно будет и правда круглым, без всяких подвохов вроде прозрачной прямоугольной рамки.
Несложно сделать и анимацию или даже трёхмерные элементы. Причём в последней версии WPF трёхмерность стала не просто декоративной: к "плоским" окнам можно "привязать" по-настоящему объёмные элементы. Особо отмечается использование ресурсов трёхмерного ускорителя при их обработке.
Приложения WPF работают как сами по себе, так и в браузере. Причём не только в Internet Explorer, что, согласитесь, для Microsoft совсем не типично. Silverlight пошёл ещё дальше - эта технология доступна не только в любом браузере, но и на нескольких платформах: Microsoft Windows, Mac OS X и Linux. Для демонстрации использовался MacBook Pro и браузер Safari.
Silverlight - это, по сути, тот же WPF, но несколько урезанный и упакованный с необходимыми библиотеками .NET. Приложения, написанные для него, работают только в браузере, а кроссплатформенность не позволяет реализовать поддержку аппаратного ускорения трёхмерной графики.
Главный конёк первой версии Silverlight - потоковое вещание в высоком разрешении. Докладчики не упустили случая похвастаться, что на сайте "Первого канала" уже реализована трансляция на основе Silverlight, а скоро к нему присоединится ещё и канал "Спорт" (на сопровождавшем рассказ слайде можно было разглядеть сайт спортивной тематики с видеовставками на манер YouTube).
В перспективе Silverlight должен обрести и другие преимущества перед похожими технологиями. Пока что единственный поддерживаемый язык программирования - это JavaScript, но возможности .NET значительно шире, и как только в одну из грядущих версий будет включен Common Language Runtime, станут доступны и другие языки: С#, VB.NET, IronPython, IronRuby. Заодно ожидается более чем троекратное (и по сравнению с Silverlight 1.0 или Flash) увеличение производительности.
Программирование на C# в функциональном стиле
Функциональное программирование вошло в моду: его если и не используют, то хотя бы обсуждают. В C# версии 3.0 уже внедрены некоторые элементы, позволяющие писать в функциональном стиле. Именно об этом и было рассказано в первой части доклада Ивана Бодягина и Павла Корявченко, работающих в RSDN.ru. Помимо моды, интерес Microsoft к функциональному программированию объясняется ещё и тем, что его стиль отлично вяжется с их новой технологией под названием LINQ.
О LINQ в докладе упоминалось, но лишь вскользь, так что вкратце поясним, что это такое. Language Integrated Query предназначен для упрощения взаимодействия с самого разного вида базами данных (это может быть реляционная база данных или просто файл XML) и построения запросов на манер SQL, но без самого SQL. Роль запросов при этом играют объекты, а возвращаются данные в виде коллекций. Именно в работе с коллекциями как нельзя лучше помогут элементы функционального стиля.
От теории докладчики быстро перешли к практике, заняв около часа описанием устройства парсера арифметических вычислений, написанного в функциональном стиле. Пока Корявченко пытался объяснить собравшимся, как устроен парсер, Бодягин помогал ему, демонстрируя код на большом экране, и заодно баловался, добавляя туда забавные комментарии.
Как раз из них самые внимательные зрители могли узнать про существование языка Nemerle. Как и F#, это функциональный язык, работающий на базе .NET. Понятно, что их подробного обзора один доклад вместить не смог бы. Это, кстати, относится и к самой "Платформе", на которой можно было найти далеко не всё интересное, что разрабатывается в Microsoft.