SoftCraft
разноликое программирование

Top.Mail.Ru

Идея должна завладеть массами!


9.03.2001

В этот раз (который подряд:) предлагаю Вашему вниманию очередной материал А.А. Шалыто. Это обзор "Алгоритмизация и программирование для систем логического управления и "реактивных" систем", посященный использованию теории автоматов при решении задач различных классов. В рассылке же привожу ряд возражений авторов (Шалыто А.А. и Туккеля Н.И.) по поводу создания специализированных инструментов, высказанных мною в рассылке от 19.02.2001.

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

С точки зрения коммерциализации это, конечно же верно (и в нашем случае некоторые работы в этом направлении ведутся). Однако не надо поддаваться иллюзиям - мы с Вами не работаем в фирме Microsoft, Schneider или QSSL (список продолжить по вкусу). Самодельный САПР, скорее всего, никогда не будет широко внедрен, а язык никогда не изучит никто, кроме наших немногочисленных заказчиков. Поэтому предпосылка нашей деятельности не в создании собственного заведомо неконкурентоспособного продукта, а в пропаганде конкурентоспособной идеи автоматного программирования, которая может быть реализована с использованием любых существующих языков и инструментальных средств (от языка лестничных схем до Java).

Это полностью соответствует, простите, высказыванию Ленина, что "идея должна завладеть массами!". Обратите внимание, "идея", а не "продукт".

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

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

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