Йа -- язычнег, дайте мне капище.

May 10, 2009 20:46

Языкоориентированное программирование (http://ailev.livejournal.com/545386.html, и более подробно http://ailev.livejournal.com/548142.html -- это я писал в январе 2008г.), продолжает формироваться ( Read more... )

Leave a comment

krlz May 13 2009, 14:13:27 UTC
2. JetBrains выпускает в мае (сейчас -- готова вторая бета под Apache лицензией) Meta Programming System (http://www.jetbrains.com/mps/index.html), да еще и (подробности и ссылки на статьи -- http://blogs.jetbrains.com/mps/, главный разработчик -- krlz, а насчет того, что Apache-лицензия сохранится для версии 1.0, так это пока непонятно).
Сохранится до 1.0. 1.0, кстати, будет в ближайшее время выпущена.

Reply

ailev May 13 2009, 18:22:32 UTC
Я так и думал, что до 1.0 сохранится (то есть времени еще чуть-чуть осталось), а вот для 1.0 уже не сохранится -- бизнес-модель JetBrains торговать софтом, а не сервисом. Про цену даже не спрашиваю, ее никто до момента выпуска еще не знает, даже в фирме-разработчике :)

Еще интересно, почему проект FONC/COLA/STEP и т.д. (ну никак они не выберут имя!) не рассматривается обозревателями всех мастей как проект из той же языкоориентированной серии -- ведь там все то же самое, хотя и сделаны немного другие акценты. Один из интересных путей развития в данной предметной области -- это взять языковое ядро из этой COLA и повторить идеи качественной DSL-ориентированной IDE из MPS. Результат может быть интересен не только свободной лицензией, но и содержательно: Экстремальный подход демонстрирует Ian Piumarta 27 ноября 2007г. в списке рассылки FONC: We should be able to go beyond even domain-specific languages, to what I've been calling 'mood-specific languages'. If it makes my (e.g.) message-passing code more readable to be able to write 'x[y,z ( ... )

Reply

krlz May 13 2009, 18:26:04 UTC
Я так и думал, что до 1.0 сохранится (то есть времени еще чуть-чуть осталось), а вот для 1.0 уже не сохранится -- бизнес-модель JetBrains торговать софтом, а не сервисом. Про цену даже не спрашиваю, ее никто до момента выпуска еще не знает, даже в фирме-разработчике :)
После 1.0 мы тоже будем опен сорсными.

Хотя что-то мне смутно подсказывает, что подобные вещи можно делать и в MPS, ибо она написана на самой себе. Так?МПС вообще language agnostic. На нем можно реализовывать любые языки.

Reply

ailev May 13 2009, 19:53:36 UTC
О! Вы делаете опенсорсный продукт! Я исправил текст в исходном постинге ( ... )

Reply

krlz May 13 2009, 20:02:05 UTC
С language agnostic не все просто, ежели обратить внимание на динамические языки, с экстремально поздним связыванием (extreme late binding, типа того же smalltalk в отличие от Java). Ибо языки ведь определяются не чистым синтаксисом (другими словами, в языках важен не только "синтаксический сахар"). Так, важна еще и рефлексивность (для примера -- статья двадцатилетней давности http://www.laputan.org/ref89/ref89.html).
Да нет, почему. Рефлексивность нужна во время выполнения, а не во время редактирования, тут в принципе мы роли не играем. Если что, у нас есть javascript, который определен в мпс. Если точнее насчет агностицизма, то больше всего мы работали с сильно типизированными языками. И их, естественно, лучше всего поддерживаем.

Еще есть языки, где не хватает псевдографики (тут я не разобрался еще с вашим табличным редактором). Так, в презентации Intentional Software есть пример языка принципиальных электрических схем -- у вас такое можно? Вопрос не такой ( ... )

Reply

ailev May 13 2009, 20:22:25 UTC
Хех, это и есть главный вопрос: у вас время выполнения и время редактирования как связаны. В разных IDE на этот вопрос отвечают по-разному (хороший пример тут, например, языки-среды smalltalk -- типа того же Squeak ( ... )

Reply

krlz May 13 2009, 20:35:29 UTC
Хех, это и есть главный вопрос: у вас время выполнения и время редактирования как связаны. В разных IDE на этот вопрос отвечают по-разному (хороший пример тут, например, языки-среды smalltalk -- типа того же Squeak).
У нас никак. За исключением языков для определения языков, которые генерятся в Java, компилируются, и перегружаются.

Это я понял, что вы экспериментировали с псевдографикой. Но ежели вам нужно нарисовать схему детекторного приемника, а символа детектора и катушки в псевдографики нету? По-другому задам вопрос: генерация кода расчета электрической сети возможна, с сохранением удобного редактирования принципиальной схемы этой сети? А с учетом предыдущего абзаца -- расчет (опускаю "генерацию кода", зачем о ней знать пользователю) электрической сети возможен, перемежаемый редактированием этой сети в формате принципиальной схемы? В презентации Intentional Software есть слайд, который прямо отвечает на вопрос о возможности, как минимум, задания языка электрической принципиальной схемы.У нас для этого придется движок улучшать. ( ... )

Reply

ailev May 18 2009, 19:16:20 UTC
Я немного продолжил тему "обычные языки vs DSL" в конце постинга http://ailev.livejournal.com/685455.html -- и там еще интересный разговор в комментах получился с avlasov про тестирование программ, написанных на винегрете из DSL.

Reply


Leave a comment

Up