Обсуждение

В архиве: 10 комментариев.

Читать и комментировать в ЖЖ ↗

vvagr · 17 апреля 2010

Комментарий

Люди, которые работают с Eclipse Modeling Framework -- это иногда модельеры программ :-) Ибо частенько нынче программа сама и является предметной областью.

Анатолий Левенчук · 18 апреля 2010

Комментарий

Я как раз и предлагаю считать модельеров программ (когда программа и ее язык -- это предметная область моделирования) программистами.

Ответ на комментарий

Имя не сохранено · 19 апреля 2010

Комментарий

А онтологи -- это декларативные модельеры. Но не программисты. Однако, если к онтологиям добавить рулез (rules), то получаем уже полноценные программы. В то же время, прогреммеры часто неявно занимаются работой с онтологиями: иерархия классов, типы сообщений, схема БД - это все тоже онтологии. Так что грань довольно условна.

Анатолий Левенчук · 19 апреля 2010

Комментарий

Мы бы сказали так (только сегодня это обсуждали с vvagr очно полчаса): отражение DSL в терминах иерархии классов, типов сообщений, схем БД (замечу, что это все набор айтишных понятий, "общепрограммистской фени") как раз и есть программистская работа. Берем какие-то объекты из реальной жизни ("валентность", "пузырчатость", "проектирование" и т.д.) и превращаем в программистско-онтологические абстракции ("класс", "схема БД", "пакеты"). Далее эксперт работает уже с "валентностями" и "пузырчатостями" своего DSL, хотя вполне возможно что и приправляя высказывания в этом языке общепрограммистскими какими-то связками в виде условных выражений, иерархии типов для "пузырчатости" и т.д. Программист пишет компиляторы/IDE для языков моделирования. Эксперт в голове компилирует мир в язык моделирования. Каждый на своем кусочке преобразования мира в компьютерную исполнимую программу. Кстати, мы вот задумались, что нам не хватает в команду такого fulltime программиста-для-модельера (ибо мы сами, конечно, модельеры -- а разговор про средства программирования поддерживаем в силу необходимости, а не потому что сами умеем это все программировать).

Ответ на комментарий

Имя не сохранено · 20 апреля 2010

Комментарий

Программист пишет компиляторы/IDE для языков моделирования. Эксперт в голове компилирует мир в язык моделирования. Каждый на своем кусочке преобразования мира в компьютерную исполнимую программу. Это в идеальном мире. На практике, надо учитывать особенности и ограничения имплементации. К примеру, большие онтологии могут очень медленно обрабатываться (классифицироваться). Т.е. для практичности, онтологии нужно структурировать специальным образом. Ну и далее, как обычно, обработка онтологий будет усложнятся - взять хотя бы проблему маппинга онтологий. Ну и далее, для практического использования, онтологии нужно дополнять всякими rule engines. Так что я бы сказал, что программист, который пишет ИДЕ - это системный программист. А эксперт - прикладной :).

Ответ на комментарий

Имя не сохранено · 20 апреля 2010

Комментарий

Кстати, мы вот задумались, что нам не хватает в команду такого fulltime программиста-для-модельера (ибо мы сами, конечно, модельеры -- а разговор про средства программирования поддерживаем в силу необходимости, а не потому что сами умеем это все программировать). Если Вы предлагаете мне присоединится в этой роли, то я, к сожалению, не могу согласиться, ибо в последнее время программирование почти не занимаюсь. Для себя конечно программирую, но работать уже не охота - другие интересы и все такое :).

Ответ на комментарий

Анатолий Левенчук · 20 апреля 2010

Комментарий

Я бы сказал, что системный программист пишет платформу (те программы, которые еще компьютеро-специфичные, а не предметно-специфичные). То есть IDE-без-DSL пишет системный программист, а вот DSL-в-IDE -- просто (т.е. прикладной) программист. А вот на-DSL -- это модельер-эксперт. В случае же разных "оптимизаций" -- это уже консультации прикладных программистов экспертам, системных программистов прикладным, при этом самые частые консультации уходят потом в программный код ("паттерны становятся фичами языка").

Ответ на комментарий

Имя не сохранено · 21 апреля 2010

Комментарий

Это все правильно, однако, по моему опыту, консультации слишком затратны. Точнее, чтобы они были эффективны, эксперт должен быть программером :). По моему опыту, были люди которые бегают и собирают требования (условно можно считать экспертами), а я все это пытался формализовывать (с целью генерации тестов). Дык вот, формальное обсуждения мягко говоря не клеилось, ибо мои контрагенты, хотя были весьма грамотны в своей сфере и работали хорошо, но совершенно не были в теме формализомов/программерства. Тут я понял, что нужен какой-то языг, который был бы понятен непрограммерам. Кстати, недавно у знакомой дома напоролся на старую совковую книжку про программирование (у нее мама программер), дык вот там обсуждалась примерно та же проблема: типа надо использовать таблицы решений (и транслировать их в код), потому что эти таблицы понятны простым людям. Ну и в других книжках тоже обсуждались примерно те же проблемы: факты или документы, что надо бы декларативные языки делать, формальная спецификация языков программирования (примерно те же теоремки которыми я развлекаюсь) :).

Ответ на комментарий

Анатолий Левенчук · 21 апреля 2010

Комментарий

Для меня это примеры двух очевидных мне соображений: "программирование -- это прежде всего про языки и обеспечение выразительности" и "нужно после всей этой микропроцессорной эйфории срочно вернуться к идеям 70-х годов, для этого самое время".

Ответ на комментарий