LINUX.ORG.RU

Какой DSL написать?


0

1

Задали в универе лабку. Суть в том, что надо собрать команду из 3-5 студентов и заюзать весь цикл разработки, дизайн, разработку, тестирование, надо юзать контроль версий, возможно CI. Короче поиграть в почти скрам команду.

Есть студенты, которые знают/горят желанием изучить Scala. Возникает желание написать какой нибудь небольшой DSL, который мог бы быть полезным кому-то.

Есть идеи?

★★★★★

Есть идея скрестить ssh и expect и сделать pure-java удаленный DSL для управления UNIX тачками

vertexua ★★★★★
() автор топика

буду запредельно боянист.
Напиши плеер!!!! Ой.... Напиши DSL для «простого» создания плееров. Я думаю ты будешь пионером в таком деле :)

Jetty ★★★★★
()

Не ну ты сам подумай, какой невероятный профит ты получишь от такой идеи :)

Jetty ★★★★★
()

Когда к Резерфорд брал нового сотрудника на работу, он давал ему задачу. Если после решения задачи сотрудник приходил и спрашивал «что мне делать дальше?», Резерфорд его увольнял.

Епрст, неужели у команды из 3-5 студентов не хватает воображения? ;-(

AIv ★★★★★
()

В книге «Programming Scala» есть глава, посвященная DSL (как внутренним, так и внешним). Может быть, она поможет с идеей?

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

Хватает, я задал вопрос вдруг кому-то что-то реально НАДО для работы. Мы могли бы наваять, совершенно бесплатно.

vertexua ★★★★★
() автор топика

Есть студенты, которые знают/горят желанием изучить Scala

Есть идеи?

Есть. Выучить язык, хоть немного полезный в реальной жизни. Из таких студентов потом получаются выпускники, создающие треды «Зачем нужно ВО, если оно мне ничего не дало для практической работы» :)

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

Выучить язык, хоть немного полезный в реальной жизни.

PHP? Ничего себе ВО...

Не переживайте, денежки на Java/C# все умеют клепать. Scala - это для души чтобы не быть старым ненужным зубром аля «программирование скатилось в говно, во были времена на MS VC++ 6 и WinAPI».

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

На Scala? Именно DSL? Не, мне не нужно...

Мне скажем нужна система тестирования студентов на знание shell с элементами обучения. С рандомной генерацией тестов, замером времени ответов на вопросы, и более частым подсовыванием задач в которых они налажали. Типа перейти в каталог такой то, посмотреть содержание фалйа такого то, скопировать файл такой то, посмотреть размер файла, сменить права доступа и т.д. Но где здесь место DSL? ИМНО проще тупо на питоне сделать.

AIv ★★★★★
()

Дурацкий вопрос. DSL - язык, сделанный под задачу. Есть задача - есть и потребность в DSL. Нет четко сформулированной задачи, нет нужны и в DSL.

И не надо делать DSL для «кого-то». DSL надо делать для себя. Тогда он будет, вероятно, полезен и тем, кто решает похожие задачи.

anonymous
()

DSL для создания языков интерактивной литературы (interactive fiction). И чтобы в качестве примеров были, например, ZIL и Inglish.

Ну или нормальный DSL для создания стековых VM с динамической оптимизацией суперинструкций (типа vmgen, но более автоматически).

buddhist ★★★★★
()

DSL на то и DSL, что точится под конкретный problem domain либо под конкретный solution technique. Если вы не разбираетесь в этом чем-то конкретном, то на выходе получится сферическое в вакууме говно.

Just for lulz, задизайните язык-компаньон для однопоточного plain c, чтобы в комментариях к программе можно было писать формальную спецификацию контрактов и формальное доказательство их выполнения. И чтобы ваш компилятор доказательство это верифицировал. Пример контракта для хипсорт: результат отсортирован, функция завершается в худшем случае за O(n^2), в среднем за O(n*log(n)), требует O(n) памяти, не делает null pointer dereference и прочих плохих вещей. Лак, товарищ!

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

Дурацкий вопрос. DSL - язык, сделанный под задачу. Есть задача - есть и потребность в DSL. Нет четко сформулированной задачи, нет нужны и в DSL.

И не надо делать DSL для «кого-то». DSL надо делать для себя. Тогда он будет, вероятно, полезен и тем, кто решает похожие задачи.

Опередил.

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

хотелось бы на работе заюзать такую штуку, но не получится, даже если ты ее напишешь, ибо у нас тут крайне дурная политика использования сторонних компонентов

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

чтобы не быть старым ненужным зубром аля «программирование скатилось в говно, во были времена на MS VC++ 6 и WinAPI».

Школота такая школота %)

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

Не переживайте, денежки на Java/C# все умеют клепать

Не переживаю. Тем, кто «клепает» всё равно и платят соответственно :)

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

Врядли. Даже не столько в лицензиях дело, SSH и Expect используются только для тестов, которые в поставку продукта не попадают, так что и GPL подошел бы. Но у нас закрытая сеть, свои репозитории, все крайне огорожено и чтобы втащить что-то извне, надо долго и муторно выпрашивать и доказывать необходимость этой конкретной версии библиотеки. Жопа, короче.

но в целом идея вроде полезная, наверняка найдется кто-то, кто все-таки сможет ее применить :)

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

У нас такая же штука. Но я начал такую вещь писать внутри компании. И ничего спрашивать не надо, так как я юзаю тулзовину сам, а не внедряю ее в код продукта. Тоесть допустим я могу написать скрипт, который логинится на машину, юзает несколько aliasов для переключения environment, логинится в какого-то юзера временно и из под него показывает лог пропущеный через grep. И если я ищу строку, то можно диалоговое окно прямо на Swing засунуть за пару строчек. Архитекторы или кто-то еще может и не знать.

Я так понял что ваш продукт требовал бы внедрение такого кода в основной код?

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

оесть допустим я могу написать скрипт, который логинится на машину, юзает несколько aliasов для переключения environment, логинится в какого-то юзера временно и из под него показывает лог пропущеный через grep.

Такое у нас тоже работает местами и тоже самопальное по большей части и не является частью продукта. Но есть огромная кипа тестов, запускаемых в java, которые по факту написаны на Expect. Дело в том, что та часть, надо которой работаю я, к java не имеет абсолютно никакого отношения. Но java используется для написания тестов только потому, что используется тот же движок, что и другими подразделениями (модифицированный JUnit), которые на java пишут собственно основной продукт. В результате имеем, что скрипты на Perl тестируются Expect'ом, который запускается через Java, в том числе через ssh на удаленных хостах, причем он регулярно тупит и падает.
Хотелось бы хотя бы пару костылей из этой структуры выкинуть. SSH уже прикрутил через какой-то модуль, который откопал в соседнем отделе, а вот expect'а остались горы и горы

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

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

belous_k_a
()

Напиши такой DSL, шоб каждый оператор в нём означал применение паттерна. Типа, пишешь слово Visitor - и вот оно.

Miguel ★★★★★
()
6 июля 2012 г.
Ответ на: комментарий от psv1967

Да, я уже вспомнил про синтаксис. Это ж придется в компилятор лезть, макросов то нет, да?

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

Вдогонку. Ты писал про идею реализовать R на CL. Это востребовано?

Если CL жирный, можно на схеме какой-нибудь.

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

в R есть все что есть в схеме, в том числе и макросы

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

Вдогонку. Ты писал про идею реализовать R на CL. Это востребовано?

это уже пилят на одном из лиспов который поверх явы работает

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