Ноябрьская встреча отзнаменовалась довольно специфичными и нишевыми докладами. В гостях у нас были Михаил Мухин и Евгений Щепотьев — разработчики из компании JetBrains. Их миссия — рассказать о системе MPS (Meta-Programming System) и о то м как эта штуковина применяется.



Первый доклад, «Введение в MPS» Михаила Мухина, заставил участников пошевелить застоявшимися мозгами. Похоже, многие осознали с чем имеют дело только во второй части доклада. Тем, кто всё таки не понял, что такое MPS — стоит пересмотреть видео доклада ещё пару раз 🙂

MPS — довольно своеобразная среда для разработки. При помощи MPS можно создавать новые языки и расширять уже имеющиеся. Отличительной особенностю данной системы является то, что языковые конструкции описываются синтаксичским деревом, а не грамматикой как в других аналогах (см. xText). Кроме того, для нового языка почти автоматически создаётся редактор, который может быть использован для написания программы на вновь созданном языка. Кроме того, для новых языков автоматически появляется возможность «интеллисенс» и рефакторинга.
Для примера был показан язык «Lazy», который состоял всего из одной конструкции, позволяющей организовывать отложенные вычисления.

Для закрепления материала Евгений Щепотьев рассказал как MPS применяется в разработке проекта YouTrack. Для упрощения разработки составлено множество языков, которые по заверению разработчиков упрощают работу над проектом. Для многих участников, привыкшим к обычным языкам программирования и фреймворкам такой подход показался довольно необычным, если не сказать более. Но среди толпы нашлись и те, кому идея MPS пришлась по душе, создание своей среды на базе MPS — довольно многообещающая идея. Пример тому — Realaxy.

Вечер завершил Юра Муленко с феерическим докладом «Power of LINQ». Можно только позавидовать .NET-программистам, что им в руки дан такой мощный механизм для работы с данными. Юра рассказал о языковых конструкциях, которые делают возможным всё то, что делает LINQ — методы расширений, делегаты, итд. Юра не поленился и поискал аналоги в других языках программирования — для Java, PHP, JavaScript — но везде это решено библиотеками, а не встроено в язык, и поэтому выглядит не так впечатляюще. Словом, даже если ваш профиль не .NET, на LINQ стоит посмотреть и проникнуться. См. видео.

Впереди декабрьская встреча — ждите анонса!