metaclass: (Default)
[personal profile] metaclass
Праздники как-то нездорово влияют на мозг функциональщикам.
По-моему, все кинулись делать какие-то самодельные кто языки, кто компиляторы, кто вообще какой-то теоретически-категорный трэш.

Самое ужасное, что я, вместо работы, занимаюсь тем же самым - делаю язык, чем-то похожий на Metaobject protocol, чтобы на нем описывать модели предметной области(в том числе и самого себя), а затем генерить из этих моделей код на более привычных языках.
Т.е., к примеру, мы описываем понятие "тип" на обычном языке и делаем парсер, который читает описание типа, затем с его помощью делаем новую версию описания типа(например, добавляем к описанию поля кортежа кроме имени и типа еще и пользовательское имя), по ней генерим новый парсер и дальше читаем описания типов уже им.
И основным интерфейсом к этой хрени должен быть в итоге не текст, а что-то более двумерное, типа грида. Потому что результатом конечным должна быть очередная заготовка под различную опердень.

Уже наверно год или два пытаюсь эту хрень сделать, но постоянно убредаю в какие-то дебри - то в хаскель, то в лисп, то вот вчера сделал лексер на Parsec, а дальше что-то мозговой тупик, потому что нужно сделать парсер, который бы по мере разбора входного потока менял собственную грамматику. А если попытаться сначала спроектировать, а потом делать - мозг убредает еще в большие дебри, типа систем типизации и крыша просто уезжает.

Date: 2010-01-09 02:16 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
Чем же еще заниматься-то, е? :)

Date: 2010-01-09 02:19 pm (UTC)
From: [identity profile] alexott.livejournal.com
сделать такое на lisp/scheme? для plt-scheme недавно зарелизили parser combinators library
P.S. давай тебя в ФПшную планету добавим? только таг какой-то надо придумать, типа fp

Date: 2010-01-09 02:26 pm (UTC)
From: [identity profile] metaclass.livejournal.com
А, тэги надо ставить, да.

А мрак я этот делаю либо на C# либо на C# плюс куски на хаскеле. Т.е. GUI точно будет на C#, а вот все остальное (парсеры и кодогенерация) было бы хорошо на хаскеле, но я тогда убреду в дебри взаимодействия между языками и до рабочего кода никогда не доберусь.

Date: 2010-01-09 02:35 pm (UTC)
From: [identity profile] alexott.livejournal.com
ну вот про куски на хаскеле, было бы интересно (даже если это будет не реальный код, а прототипы), да и про попытки это дело связать с другими языками...
давай, поставь тут таг, а я сейчас вобью твой журнал в конфиг планеты...

Date: 2010-01-09 02:38 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Поставил, "fp".
Главное потом не забывать ставить, а то туман в голове.

Date: 2010-01-09 02:39 pm (UTC)
From: [identity profile] udpn.livejournal.com
Наверное, это нормально для программиста, у которого всё хорошо. НГ выдал хорошего настроения и немного свободного времени.

>> Уже наверно год или два пытаюсь эту хрень сделать, но постоянно убредаю в какие-то дебри

Наверное, потому что скилла недостаточно для того, что хочется сделать. А когда скилла достаточно, ТЗ меняется, и скилла снова не хватает. Надо начинать с чего-то попроще, а потом развивать.

Date: 2010-01-09 02:45 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Насчет скилла это факт. Но я все таки предпочитаю сначала делать, а потом думать и рефакторить - на рабочем коде все становится гораздо нагляднее, в том числе и теория.

Date: 2010-01-09 02:59 pm (UTC)
From: [identity profile] psilogic.livejournal.com
Сделай хрени нижнего уровня, которые точно понадобятся. Тогда эта часть станет более определенной и потребуется меньше моска чтобы ее себе представлять.

Date: 2010-01-09 04:08 pm (UTC)
From: [identity profile] oxij.livejournal.com
сделать парсер, который бы по мере разбора входного потока менял собственную грамматику
в этом месте пахнет стрелками

Date: 2010-01-09 06:01 pm (UTC)
From: [identity profile] freiksenet.livejournal.com
А в Common Lisp уже есть Meta Object Protocol.

Date: 2010-01-09 06:32 pm (UTC)
From: [identity profile] antilamer.livejournal.com
Может, заюзать SNOBOL? ;)

Date: 2010-01-09 09:28 pm (UTC)
From: [identity profile] ng67.livejournal.com
А Ваши разработки в принципе не переносимы на что-то типа 1С?
Или по каким-то причинам Вы не хотите использовать эту платформу?

Date: 2010-01-09 10:27 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Ну если бы мне нравилось использовать 1С, я бы не занимался функциональным программированием :)
Да и клиенты как-то не спешат покупать и внедрять 1С и другие более дорогие и сложные системы - бардак-с, не выдержат перехода на них. Приходится кусочной автоматизацией заниматься и закрывать ниши, где на 1С особо не развернешся.

Date: 2010-01-09 10:36 pm (UTC)
From: [identity profile] ng67.livejournal.com
А зачем покупать и внедрять 1С? Достаточно купить самую простую версию 1С (к примеру бухгалтерию 8.1 на определенное число пользователей или торговлю) и все!
Далее Вы имеете право разрабатывать свою конфигурацию на базе 1С и никаких претензий к Вам 1С иметь не будет. Это как покупка компилятора - вы его покупаете, и все.
Число пользователей 1С - это максимальное число пользователей которое будет работать с Вашей системой.

Date: 2010-01-09 10:44 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Ну так эта самая простая тоже стоит неплохо. На 100 пользователей сколько там будет?
И таки вряд ли продадут чистую платформу, без конфигурации - накой это местным дилерам, плодить себе конкурентов и продавать по дешевке. Если к ним придут за 1С - они будут стараться впарить все сразу.

Date: 2010-01-09 11:00 pm (UTC)
From: [identity profile] ng67.livejournal.com
На 100 пользователей.
Лицензия на 100 пользователей + самая простая бухгалтерия 37 млн. Белорусских Рублей примерно.

Date: 2010-01-10 07:54 am (UTC)
wizzard: (Default)
From: [personal profile] wizzard
Дух интегратора чую! :)

А стоимость адаптации по месту какова?

Вообще, мне кажется что ребе этим занимается еще и потому что ему это нравится, а будет ли ему нравиться поддерживать 1С - это вопрос)

Date: 2010-01-10 02:34 pm (UTC)
From: [identity profile] ng67.livejournal.com
Никакая. Сами адаптируйте, если надо. Исходники открыты, так как 1С это интерпретирующая система, а в комплект поставки входит документация по языку, средство разработки и отладки.
После покупки комплекта можно вообще с нуля писать конфигурацию и продавать ее желающим (ну конечно если они 1С систему купят).
К интеграторам я отношения не имею, я программист на 1С.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 29th, 2025 06:11 pm
Powered by Dreamwidth Studios