Владимир Невзоров писал(а):
А может ли Ваш редактор стать заменой программированию на Си?
Это коварный вопрос. Звучит почти так же, как "а может ли язык Дракон стать заменой программированию на Си?"
По-моему, Дракон заменой программированию на Си стать не может.
Дополнением -- возможно.
Технически, реализация Си для MPS уже есть (см
http://mbeddr.com/ ), то есть можно сделать так, чтобы Дракон-схемы выступали как один из способов записи функций в проекте на Си.
Владимир Невзоров писал(а):
У меня на прошлом месте работы в одном отделе использовался(используется) язык программирования Си.
Т.е. актуальность пропала
Владимир Невзоров писал(а):
Я когда смотрел код - там сплошные алгоритмы! "Если так, делай то", "исходя из появления таких-то условий включай это".
Там много кода, много файлов. Причем, как я понял, динамическим выделением памяти там не пользовались.
И к каждой строчки этих куч алгоритмов комментарий! Теперь я понимаю какой это ужас!
Я не зря тут прошу конкретные примеры ПЛК программ. Да, возможно, что запись каких-нибудь из функций на Драконе упростила бы понимание.
Возможно, где-то больше подойдут автоматы (state machines:
https://vimeo.com/78412221 )
Владимир Невзоров писал(а):
После прочтения "Чистого кода" я понял, что программа должна быть самодокументирована - и методы, и переменные можно назвать так, чтобы без комментариев было всё понятно.
Но, даже сделав так всё-равно будет куча текста кода и только лишь разработчик этой системы, проработавшей над её созданием и модификацией лет 5, понимает все нюансы. При очередной модификации он лезет в эти тонны кода, пытаясь вспомнить все нюансы и даже ему это не сразу дается!
Вы говорите "пытаясь вспомнить все нюансы и даже ему это не сразу дается". Есть как минимум два аспекта:
1) Наглядность алгоритма. Да, Дракон здесь может помочь, особенно в случаях, когда алгоритм это какой-то конечный автомат.
2) Причины, что алгоритм именно такой. Иными словами, Д-схема отвечает на вопрос "каким образом мы решаем задачу", но она не отвечает на вопросы "а зачем здесь понадобилась такая-то проверка" или "а почему эти два действия выполняются именно в таком порядке, а не наоборот". Всегда есть требования (например "запуск мотора должен выполняться при нажатом тормозе"), и по-хорошему, в программе должны быть отсылки к этим требованиям.
Так, чтобы по действию можно было понять из-за какого требования оно сделано, и наоборот: по требованию понять где оно встречается в коде.
Пример такого можно посмотреть тут:
https://vimeo.com/78415217Так вот: да, Дракон-схему можно дополнить ссылками на требования, но ссылки на требования можно ставить и в обычном коде. Иными словами Дракон сам по себе не упрощает понимание требований.
Владимир Невзоров писал(а):
Собственно, вопрос.
Может ли Ваш ДРАКОН-редактор стать заменой этой писанины и куче Си файлов и их взаимосвязям, чтобы было просто - что-то вроде листа ДРАКОН-схемы взамен одного файла, где всё ясно и понятно?!
См. выше. Сделать так, чтобы Дракон-схемы выступали как один из альтернативных языков записи Си-функций -- можно. Станет ли программа проще, если её целиком написать в виде Дракон-схемы? Вот тут сомневаюсь.