metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-05-15 04:33 pm

Ад спортивных программистов?

http://dev.by/blogs/main/kuda-uhodyat-chempiony-sportivnogo-programmirovaniya
"НТ ООО «ЛюксСофт». Инженер-программист. В последнее время занимаюсь разработкой предметно-ориентированного языка программирования для нашего продукта."

За разработку самодельных встроенных языков надо отправлять добывать уран, самодельными ломами и лопатами.

[identity profile] vp.livejournal.com 2013-05-15 05:53 pm (UTC)(link)
Я согласен. Но опять таки, как правило это вынос наружу именно ЛОГИКИ и алгоритмов. Худо-бедно конфигурации можно ради пользователя задать в каком-то приятном для гуя виде. А вот с логикой все тухло, ее нужно писать. Логика - это программа.

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

[identity profile] blacklion.livejournal.com 2013-05-15 05:58 pm (UTC)(link)
Тут вопрос, надо ли сохранять чистоту встраиваемого языка (за что ратуют анти-DLS-щики — взял готовы интерпретатор, докинул предметную библиотеку, всё) или таки нужен свой язык, пусть и очень похожие на существующий, но с ним несовместимый, потому что базовые концепции предметки внесены в язык а не в библиотеку. Я за второе.

Пример вот такой, из мейнстрима — LINQ в C# не делается голым первым методом, как голая библиотека. потребовалась поддержка со стороны компилятора, а не только библиотека. Был с очередным релизом изменён сам язык что бы поддержать концепции некоторой определённой предметной области (запросы к коллекциям и базам данных в частности). И C# с LINQ (это 3.0, я не помню?) — это не тоже самое что C# до LINQ (2.0?) + библиотека из предметной области. Это по сути новый язык.

Вот примерно так.

(Anonymous) 2013-05-16 08:53 am (UTC)(link)
Вообще-то .Net 2 тоже самое, что и даже 3.5 с несколькими дополнительными библиотеками.

[identity profile] shredder-by.livejournal.com 2013-05-15 07:51 pm (UTC)(link)
Вот как раз релейную логику (http://ru.wikipedia.org/wiki/Ladder_Diagram) и придумали не для программистов, а для электриков. И таки текстом (http://ru.wikipedia.org/wiki/Structured_Text) тоже можно писать, только эксплуатационному персоналу в основной массе понятнее квадратики.

[identity profile] mikhalych (from livejournal.com) 2013-05-15 08:07 pm (UTC)(link)
Так, ну вот не надо насчёт Сименса!
Между прочим весь этот "вырви глаз" описывается стандартом IEC61131-3 (собственно вот сюда (http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D1%8B%D0%B9_%D0%BB%D0%BE%D0%B3%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80#.D0.AF.D0.B7.D1.8B.D0.BA.D0.B8_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D0.9F.D0.9B.D0.9A)) и вполне решает 2 задачи, описание процесса в предметной области и стандартизацию, позволяющую таскать код между контроллерами разных производителей.
(сам пишу на Сименсе уже 13 лет)
Edited 2013-05-16 09:30 (UTC)