LINUX.ORG.RU

MPS от JetBrains

 , ,


0

1

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

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

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

Re: MPS от JetBrains

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

anonymous ()

Re: MPS от JetBrains

MPS - нужен!

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

anonymous ()

Re: MPS от JetBrains

Что такое MPS? Что-то я нифига вообще не вкурил. По ссылке ходил.

anonymous ()

Re: MPS от JetBrains

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

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

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

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

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

anonymous ()
Ответ на: Re: MPS от JetBrains от anonymous

Re: MPS от JetBrains

Ага, ага.

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

anonymous ()
Ответ на: Re: MPS от JetBrains от anonymous

Re: MPS от JetBrains

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

anonymous ()

Re: MPS от JetBrains

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

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

anonymous ()

Re: MPS от JetBrains

Сходил по сслыке. посмотрел тутор. 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 ()
Ответ на: Re: MPS от JetBrains от anonymous

Re: MPS от JetBrains

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

anonymous ()

Re: MPS от JetBrains

мне одному кажется, что в этом треде только один анонимус :-?

volh ★★ ()

Re: MPS от JetBrains

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

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

anonymous ()
Ответ на: Re: MPS от JetBrains от anonymous

Re: MPS от JetBrains

LISP, I will never leave you. Amen.

anonymous ()
Ответ на: Re: MPS от JetBrains от anonymous

Re: MPS от JetBrains

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

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

Karapuz ★★★★★ ()
Ответ на: Re: MPS от JetBrains от anonymous

Re: MPS от JetBrains

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

dimon555 ★★★★★ ()

Re: MPS от JetBrains

кто нибудь может внятно объяснить что такое этот "Meta Programming System"?

anonymous ()

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

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

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

www_linux_org_ru ★★★★★ ()

Re: MPS от JetBrains

а чем людям flex и bison не угодили?

p.s. да не каждая домохозяйка осилит, а ещё чем?

dimon555 ★★★★★ ()
Ответ на: Re: MPS от JetBrains от dimon555

Re: MPS от JetBrains

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

theos ★★★ ()

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

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

theos ★★★ ()
Ответ на: Re: MPS от JetBrains от anonymous

Re: MPS от JetBrains

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

theos ★★★ ()
Ответ на: Re: MPS от JetBrains от theos

Re: MPS от JetBrains

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

dimon555 ★★★★★ ()

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

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

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

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

www_linux_org_ru ★★★★★ ()
Ответ на: Re: MPS от JetBrains от dimon555

Re: MPS от JetBrains

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

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

www_linux_org_ru ★★★★★ ()
Ответ на: Re: MPS от JetBrains от dimon555

Re: MPS от JetBrains

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

theos ★★★ ()

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

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

theos ★★★ ()
Ответ на: Re: MPS от JetBrains от theos

Re: MPS от JetBrains

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

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

www_linux_org_ru ★★★★★ ()
Ответ на: Re: MPS от JetBrains от www_linux_org_ru

Re: MPS от JetBrains

Судя потому что пишите - нифига не поняли ;)

theos ★★★ ()
Ответ на: Re: MPS от JetBrains от theos

Re: MPS от JetBrains

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

theos ★★★ ()

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

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

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

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

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

www_linux_org_ru ★★★★★ ()
Ответ на: Re: MPS от JetBrains от theos

Re: MPS от JetBrains

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

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

www_linux_org_ru ★★★★★ ()

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

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

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

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

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

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

theos ★★★ ()

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

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

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

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

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

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

www_linux_org_ru ★★★★★ ()

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

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

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

www_linux_org_ru ★★★★★ ()

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

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

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

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

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

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

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

theos ★★★ ()

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

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

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

theos ★★★ ()

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

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

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

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

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

www_linux_org_ru ★★★★★ ()

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

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

www_linux_org_ru ★★★★★ ()

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

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

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

anonymous ()

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

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

theos ★★★ ()

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

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

theos ★★★ ()

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

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

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

www_linux_org_ru ★★★★★ ()

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

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

theos ★★★ ()

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

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

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