Ад спортивных программистов?
May. 15th, 2013 04:33 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
http://dev.by/blogs/main/kuda-uhodyat-chempiony-sportivnogo-programmirovaniya
"НТ ООО «ЛюксСофт». Инженер-программист. В последнее время занимаюсь разработкой предметно-ориентированного языка программирования для нашего продукта."
За разработку самодельных встроенных языков надо отправлять добывать уран, самодельными ломами и лопатами.
"НТ ООО «ЛюксСофт». Инженер-программист. В последнее время занимаюсь разработкой предметно-ориентированного языка программирования для нашего продукта."
За разработку самодельных встроенных языков надо отправлять добывать уран, самодельными ломами и лопатами.
no subject
Date: 2013-05-15 02:17 pm (UTC)Элементарно же, есть типовые действия, и само собой получается, что дерево вызовов постепенно абстрагируется до выражения на каком-то язычке.
(сознаюсь, только что понял, что мне нужно сейчас имплементировать try/catch/finally)
no subject
Date: 2013-05-15 02:25 pm (UTC)И заодно на халяву получаем всю инфраструктуру языка.
no subject
Date: 2013-05-15 02:50 pm (UTC)no subject
Date: 2013-05-15 05:24 pm (UTC)Предметный язык, как правило, решает одну единственную задачу: дать возможность вынести алгоритмы на "позднюю" реализацию, отдать на сторону клиента, чтобы делать какие-то настройки силами клиента без изменения продукта. В этом случае чем сильнее язык - тем выгоднее.
Своя реализация любого языка будет априори на два порядка более убогой, чем интеграция ЛЮБОГО нормального языка: жабы, питона, сишарпа и т.п.
Как-то так.
no subject
Date: 2013-05-15 05:27 pm (UTC)Хотите — назовите это конфигурационным файлом, но там была тьюринг-полнота :)
Вы мыслите языками для программистов. А бывают языки вовсе не для них.
no subject
Date: 2013-05-15 05:36 pm (UTC)А можно пример "интересного синтаксиса" ? Чтобы мы вот щас тут ахнули?
no subject
Date: 2013-05-15 05:38 pm (UTC)Нет. Там была закрытая (пока) разработка.
А так — ну вот возьмите TeX, из специальных языков. Был бы он удобнее, если бы был библиотекой к паскалю? Что-то сомневаюсь.
no subject
Date: 2013-05-16 06:29 am (UTC)no subject
Date: 2013-05-15 05:51 pm (UTC)no subject
Date: 2013-05-15 06:02 pm (UTC)no subject
Date: 2013-05-15 05:33 pm (UTC)Язык системы со сложной предметной областью должен всё же отталкиваться от предметной области (от того, что привычно ПОЛЬЗОВАТЕЛЮ, в чём он профессионал), а не от наших с вами привычек писать скобочки и делать значащие пробельные отступы (т.е. от того, что привычно НАМ, в чём МЫ профессионалы).
no subject
Date: 2013-05-15 05:43 pm (UTC)Если же спрятать текст за каким-нибудь редактором-визуализатором - теоретически, это можно сделать удобнее, на практике же чаще всего получается неудобное безумие.
no subject
Date: 2013-05-15 05:50 pm (UTC)no subject
Date: 2013-05-15 05:53 pm (UTC)Единственную альтернативу такому подходу я встречал, когда видел систему программирования от сименса. Вот там был дикий вырвиглаз. Вместо нормального языка там были разные блок-схемы, какие-то квадратики и прочий бред, который нужно было бешено тягать мышью и строить так "алгоритм". Я не согласен, что это удобнее и нагляднее, ибо человек, программист, который с этим работал, мучился и матерился.
no subject
Date: 2013-05-15 05:58 pm (UTC)Пример вот такой, из мейнстрима — LINQ в C# не делается голым первым методом, как голая библиотека. потребовалась поддержка со стороны компилятора, а не только библиотека. Был с очередным релизом изменён сам язык что бы поддержать концепции некоторой определённой предметной области (запросы к коллекциям и базам данных в частности). И C# с LINQ (это 3.0, я не помню?) — это не тоже самое что C# до LINQ (2.0?) + библиотека из предметной области. Это по сути новый язык.
Вот примерно так.
no subject
Date: 2013-05-16 08:53 am (UTC)no subject
Date: 2013-05-15 07:51 pm (UTC)no subject
Date: 2013-05-15 08:07 pm (UTC)Между прочим весь этот "вырви глаз" описывается стандартом 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 лет)
no subject
Date: 2013-05-15 06:40 pm (UTC)no subject
Date: 2013-05-15 06:46 pm (UTC)Regexp.. Я его ненавижу вообще-то :) Но штука вполне себе самостоятельная. Язык выборки из строки.
Короче, где описывается алгоритм и действия - то можно менять.
no subject
Date: 2013-05-15 09:02 pm (UTC)Рэбэ, а як Вы хітрым спосабам пазамяняеце кавалкі тэксту ў файле? Альбо знойдзеце што-небудзь па хітрым шаблёне? Без рэгэкспу
no subject
Date: 2013-05-15 11:13 pm (UTC)no subject
Date: 2013-05-16 11:34 am (UTC)no subject
Date: 2013-05-15 05:02 pm (UTC)EDSL и всякие монады в расчет не берем - это как раз работает.
Речь про DSL, идея которого - отделить условных "идиотов" - веб-верстальщиков или там бизнес-аналитиков, путем написания условно "умными" для условных "идиотов" своего тупого языка для своей песочницы. И вот это вроде с виду может и работает, конечно (см. те же SQL, PHP и 1C), но трахаться с языками для "идиотов" приходится тем же самым "умным" в конечном итоге.