Стоит ли изучать MPS (язык метапрограммирования)?
Другой проект от Jetbrains, их новый трекер Charisma, был полностью написан на MPS. Является ли концепция полезной / практичной или слишком рано?
5 ответов
MPS - это не просто DSL для Java. Это на самом деле англоязычный. Вы можете создать свой язык на любом другом языке, который поддерживается MPS. Мы поддерживаем Java, XML и простой текст (в крайнем случае) из коробки в MPS 1.1. Вероятно, в будущей версии мы предоставим другие языки, такие как javascript, css и т. Д.
Одной из ключевых особенностей MPS, которая недоступна в других инструментах, является способность создавать языки. Вы можете создать несколько языковых расширений и составить их так, как вы хотите. Например, один поставщик может реализовать язык для своей базы данных, а другой - язык для финансовых расчетов. Они будут хорошо работать вместе, и у вас не будет таких проблем, как неясности и т. Д.
Мужчина. С моей точки зрения это здорово. Это как Java на стероидах, плюс DSL-ы. Не думайте об этом только с точки зрения DSL. Подумайте полностью Turing-complete, включая генерацию Java из коробки. Это похоже на Java 8 + "Common Lisp", на стероидах, без проблем с текстовым синтаксисом. Мне кажется, что это будущее. Я вкладываю в это свое сердце, разум и душу:).
Если вы ищете что-то "опередившее время", но все еще практичное в использовании и очень близкое к современным технологиям, это MPS!
Я считаю, что MPS очень стоит изучить. Инструмент с открытым исходным кодом и очень надежный. Идеи, реализованные в MPS, чрезвычайно мощны и решают ряд проблем, которые стояли перед нами с самого начала языков программирования (наиболее важно, языковая композиция). Качество документации было проблемой для начинающих, но теперь вы также можете прочитать эту новую книгу: http://books.campagnelab.org/ (отказ от ответственности: я автор книги, но я не автор MPS).
Дело не в "слишком рано", а в том, что эта методология разработки сама по себе довольно сложная. Соотношение затрат и выгод для MPS (и под стоимостью я имею в виду время распространения) во многом зависит от типа проекта, к которому вы его применяете. Если у вас есть домен, который может получить значительную пользу от DSL (например, для меня это управление проектами), тогда сделайте это!
Кажется, это DSL для Java. Почему бы не исследовать это самостоятельно? Если он просто генерирует исходные файлы Java, я не вижу причин, чтобы не дать ему взломать, если это то, что вас интересует, и проект не спешит.