LINUX.ORG.RU

MPS от JetBrains

 , ,


0

1

После более пяти лет разработки, JetBrains опубликовали первую бета-версию своей Meta Programming System.

MPS предназначена для разработки проблемно-ориентированных языков (DSL) в среде JVM.

>>> Подробности

anonymous

Проверено: anonymous_incognito ()

Туториал ужасен

anonymous
()

MPS - нужен!

1. Но не на жабе 2. Но не на ЛОРе ...

anonymous
()

Чёрный день настаёт для лисп-братвы.

"Профессор" Луговскер несколько лет пилил свой невнятный DSL Engine, да так и не допилил.
А тут жалкие жабабыдлокодеришки (которым и задач-то таких знать не положено, они же быдло) взяли да и сделали человеческий, вменяемый и предельно практичный engine.

Теперь все ваши козыри биты. Как неодкратно признавалось, единственное достоинство Лиспа - возможность быстрой реализации DSLей. Это же, по совместительству, единственное, на что годен Лисп вообще.

Теперь Лисп перестал быть единственным игроком в этой области. Его невозбранно сомнёт, даже не заметив того, огромная машина MPS, приводимая в движение мощнейшим двигателем JVM/JRE.

После этого спадёт розовая пелена, и всем станет ясно, что язык, преподносимый и восхваляемый вами в своё время как божество, на самом деле - хромой убогий карлик.

anonymous
()
Ответ на: комментарий от anonymous

Ага, ага.

Тока у лужка его движок (вроде ж допиленный) в пределах метра, а это на жабке раз в 100 больше.

anonymous
()
Ответ на: комментарий от anonymous

Ага, ага. Только MS-DOS умещался на дискету и влезал в 640 килобайт оперативки, а этот ваш Линукс в 100 раз больше.

anonymous
()

Ниче :) Мода на DSL пройдет так же, как и на ООП.

off: Кто нить из экспертов даст прогноз сколько протянет cloud computing?

anonymous
()

Сходил по сслыке. посмотрел тутор. Meta Programming System is an environment for professional software developers to create new custom languages, extend existing languages, and use them to develop programs. MPS is also an instrument for creating Domain Specific Languages (DSLs). Domain experts who are not familiar with programming can easily use DSLs created with MPS.

Так вот посмотрел тутор - я бы назвал такой процесс разработки как "пусть лисп сосет: создай DSL заменив YACC собой!" Все связи в коде все равно надо определять самому. Короче еще один Eclipse :)

В-общем, я так понял что они 5 лет потратили на разработку не удобного инструмента для создания DSL, но IDE и интеграции ее с каким-то подобиме слегка навороченного YACC (Пример кста - калькулятор. Создавали этот калькулятор через MPS страниц 50. Действительно, лисп должен сосать :))) )

anonymous
()
Ответ на: комментарий от anonymous

Тем самым на руби DSL строится тепло и приятно.

anonymous
()

Гениально. Создавать языки жестко привязные к проприетарной IDE и не закрепленные стандартом - закапывайте.

Пошел кодить на nemerle (стандарта нету, но сорсы компилятора доступны)

anonymous
()
Ответ на: комментарий от anonymous

>off: Кто нить из экспертов даст прогноз сколько протянет cloud computing?

Твои самолеты
Им
никогда
не взлететь

Karapuz ★★★★★
()
Ответ на: комментарий от anonymous

>off: Кто нить из экспертов даст прогноз сколько протянет cloud computing?
с харизмой 7 и умением разговор >130%
любой кластер и грид легко превращается в заоблачные вычисления и обратно

dimon555 ★★★★★
()

Все это должно делаться полноценными макросами/шаблонами

Они предложили новый язык строго внутри своей IDE или с возможностью расширять их макросы/шаблоны посторонней командно-строчной тулзой?

Мне кажется в серьезном проекте проявится неудобство чисто-IDE-шного языка vs. нормальные-шаблоны-как-в-С++0х

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от dimon555

Это как раз флекс и бизон может осилить каждый. А вот идею МПС не понял почти никто в этом треде. Что обидно, хотелось обсудить, ибо тема интересная. А срач начался уже с первой страницы =/

theos ★★★
()

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

theos ★★★
()
Ответ на: комментарий от anonymous

Это значит что это среда для мета-программирования. Тоесть для создания языков и написания на них.

theos ★★★
()
Ответ на: комментарий от theos

>Это как раз флекс и бизон может осилить каждый. А вот идею МПС не понял почти никто в этом треде.
стыдно вас спрашивать, а в чём собственно основные отличия MPS от flex и bison?

dimon555 ★★★★★
()
Ответ на: комментарий от theos

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

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

Чисто генеративные возможности МПСа == генеративным возможностям макросов С из 1970-х, или перла -- по вкусу.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от dimon555

> а в чём собственно основные отличия MPS от flex и bison?

Они привинтили к своей МПС комплешен, которого у бизона из коробки нет.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от dimon555

Это построение _иерархий_ языков, их моделей, генерации одной модели в другую, валидацией языков, удобный редактор языков. Тоесть вы пишите сначала "низкоурвневые языки". Например джава (он там уже есть). Поверх него друго - более привязанный к вашей области. Можно дополнительные конструкции вводить, удобные для вас. И редактор там _структурный_ далеко не контекстно свободный. Вы посмотрете - почти всё что вы там видите - это один из языков МПСа. Там не текст а _модель_.

theos ★★★
()
Ответ на: комментарий от www_linux_org_ru

Читайте прдедыдщуий пост. И учите уже генеративный подход. Там валидация и кастомизация типов, какая вам не снилась ;)

theos ★★★
()
Ответ на: комментарий от theos

> А вот идею МПС не понял почти никто в этом треде. Что обидно, хотелось обсудить, ибо тема интересная.

Это ты не понял, кто понял, а кто не понял :-) Я понял, так как интересуюсь похожими вещами.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от theos

Хотя конечно может вы про троллите, и ждёте что таким образм все поймут что такое МПС и начнётся ужне нормальный холивар ;)

theos ★★★
()
Ответ на: комментарий от theos

> И учите уже генеративный подход.

Их документацию я изучу, вот уже сконвертил для ПДА.

> Там валидация и кастомизация типов, какая вам не снилась ;)

Может не будешь утвреждать, что мне снилось, а что нет? Вспомни битовые поля :-)

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от theos

> Хотя конечно может вы про троллите, и ждёте что таким образм все поймут что такое МПС и начнётся ужне нормальный холивар

Нет. Я серьезно.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

>Их документацию я изучу, вот уже сконвертил для ПДА.

Я имел ввиду вообще :)

>Может не будешь утвреждать, что мне снилось, а что нет? Вспомни битовые поля :-)

А что такого в битовых полях? Разве то что ты там назвал было что то такое изряда-вон выходящее? хотя как пример был неплох,да.

З.Ы. Если вы этим интересуетесь, может тогда скажите насчёт чего-то-подбного. Ну вобщем из этой тематике. А то я знаю совсем немного (тулзу от микрософта и ещё парочку)... =(

theos ★★★
()
Ответ на: комментарий от theos

> скажите насчёт чего-то-подбного. Ну вобщем из этой тематике. А то я знаю совсем немного (тулзу от микрософта и ещё парочку)... =(

1. Rebol умеет диалекты

(ну это уже отдаленно от МПС, но ближе к моему пониманию правильного подхода)

2. Пониятие линзы (Boomerang)

3. тоже типа линз -- augeas.net

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от theos

> А то я знаю совсем немного (тулзу от микрософта и ещё парочку)...

А ты что знаешь?

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от theos

> Я имел ввиду вообще :)

Вообще -- да, идея метапрограммирования очень интересная, и у меня в частности есть такой вопрос: изменение парсинга исходного текста в зависимости от типов данных -- это хорошо или извращение? Ну например изменение приоритета операторов в зависимости от типов, но не только это.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

1. Про ребол читал. Там никакущая проверка типов. Да и декларотивной мощи нехватает).

2. Линзы - почитаю, спасибо.

1.MetaEdit - он для создания domain specific _modeling_ language. Но он страшный(даже визуально) и тупой. И стоит 4.5 тыс евро.

2. intentional programming (опять от микрософт, сдохло давно =( ).

3. Ещё есть емф + xtext. Это - максимально близкое. Позволяет описывать текстовые языки => EMF модель => весь стэк технологий ЕМФ, в частности генеративный. + оно умеет для эклипса редакторы генереить.

4. Есть для эклипса опятьже, тулза для создания декларотивных языков повер XSD (который XML Scheme). Но он бедный достаточно, но юзкейзы придумать можно. (названия не помню, легко найти)

theos ★★★
()
Ответ на: комментарий от www_linux_org_ru

Я считаю да. В смысле что можно привести примеры когда это нужно. Ну например оптимизация - можно оптимизировать генерируемы текст программы, точно зная типы аргументов операций. Можно генерить по строке регекспу - конечный автомат, быстрый. и.т.д.

Изменение приоритета операций - it depends. Если ты описываешь объекты из другой алгебры, нежели вещ. числа) хотя думаю, что для них лучше вводить более наглядные конструкции, чем непонятные значки)

theos ★★★
()
Ответ на: комментарий от theos

> Можно генерить по строке регекспу - конечный автомат, быстрый.

Это не требует __парсинга__ в зависимости от типов (и кстати есть даже в D)

Насчет подходба МПС (и возможно EMF) -- не согласен, что редатировать надо *иерархический объект*. Редактировать надо текст, внутри которого, когда это возможно, распознан иерархический объект, и операции редактирования текста расширены операциями редактирования этого объекта.

Впрочем, это интересный вопрос, и я его могу обсуждать.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

Хотя бы даже -- как ты будешь вставлять в IDE кусок кода, запощенного на форум, если оно не умеет разбирать plain text, а работает только с иерархическими объектами?

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

> Хотя бы даже -- как ты будешь вставлять в IDE кусок кода, запощенного на форум, если оно не умеет разбирать plain text, а работает только с иерархическими объектами?

Ну есть такое понятие, как "import" - думается в MPS такое реализовать не составит особых проблем.

anonymous
()
Ответ на: комментарий от www_linux_org_ru

Да. К сожалению никак. Но я считаю что это стоит той выскокоуровневости, кторая есть в МПС. Скопипастить можно код на джава. А мпс умеет видит .class файлы и джарники. Так что так можно.

theos ★★★
()
Ответ на: комментарий от anonymous

Там вообще нету импортов (в джавовском смысле);)

theos ★★★
()
Ответ на: комментарий от www_linux_org_ru

Текст - более нискоурвневый. И вообще, с чего вы взяли, что программить надо в тексте? plain text - не так уж нагляден. И контекстно-свободность - тоже ограничение. Сравнивать подходы можно, име опыт. Могу сказать, что да, нередко хочеть "простого текста", а не этого наворченного редактора. Но такое бывает не так уж часто, редактор становиться всё удобнее, и _я_ гтово платить этим за domain specific. Чем более выскокоуровневый язык реализуешь - тем меньше на нём кодить ;)

theos ★★★
()
Ответ на: комментарий от anonymous

> Ну есть такое понятие, как "import" - думается в MPS такое реализовать не составит особых проблем.

А МПС валидирует свои языки на то, чтобы их можно было однозначно импортировать?

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от www_linux_org_ru

В МПС парсинг в зависимости от типов. Просто там парсинг на-лету. Я его имею ввиду.

theos ★★★
()
Ответ на: комментарий от www_linux_org_ru

Я вас не понял. На всякий случай - МПС языке не контекстно свободные. Можно сделать так. что два одинаковых на вид кода делают совершенно разное.

theos ★★★
()
Ответ на: комментарий от www_linux_org_ru

http://www.jetbrains.com/mps/docs/tutorial/image035.png - То что вы видите в окне редактора - такой же редактор как и все. Вы сами такой написать можете без проблем. А он ниразу ни текстовый, не контекстно свободный ит.д. что такое для него импорт?

theos ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.