Предисловие с извинениями автора с опозданием на три года
Я даже не мог предполагать три года назад, что отголоски моей первой статьи, которую вы сейчас будете читать, где я изложил основные принципы и терминологию новой методологии программирования VAOP, разойдутся так далеко. Интерес к методологии не только не угас до сих пор, но и продолжает расти.
Только пару недель назад я пришел к выводу, что применение VAOP требует от программиста, прежде всего, понимания, что алгоритм, который он реализует в коде, существует отдельно от самого кода программы, и что в этот алгоритм можно вносить изменения. К сожалению, современные программисты, начиная где-то 20-30 лет назад, стали обходить этап создания блок-схемы алгоритма, который был обязательным на заре программирования. Таким образом, для многих из них алгоритм и код программы стали восприниматься как единое целое, хотя код программы — это лишь инструкция для компьютера, написанная на языке, понятном исполнителю-компьютеру. Когда я спрашивал программистов показать мне алгоритм того, что они закодировали, они обычно указывали на код программы и пытались объяснить мне его работу, не понимая сути моего вопроса.
Вот почему, когда в своей статье я начинаю говорить об алгоритме, изобретенном "яйцеголовым", и затем описываю этот алгоритм с помощью va-script, многие не понимают, о чем идет речь. Как метко заметил мой внук: "Деда, ты пытаешься рассказать о паровозе людям, которые никогда не видели рельсов".
Вот почему, когда на первых занятиях с студентами я объясняю и демонстрирую на примерах, что алгоритм задачи, которую они должны запрограммировать, можно оформить, сохранить и редактировать отдельно от кода его реализации, они начинают осознавать все преимущества, которые предоставляет VAOP.
Затем, прочитав вместе комментарии к моей первой статье на Хабре, студенты честно признаются, что до этого момента они не полностью понимали, что такое алгоритмы и как они могут существовать отдельно. Они осознают, что va-script — это не что иное, как способ записи блок-схемы любого алгоритма, и признают, что без этого объяснения, скорее всего, также не поняли бы сути, подобно тем, кто оставлял комментарии.
Я осознаю свою долю ответственности в этом. Написав ту первую статью на Хабре, я не мог представить, что новое поколение программистов мыслит иначе, чем мы 40 лет назад. Я говорил о рельсах, стрелках и паровозах с вагонами, не учитывая изменения в восприятии. Прошу прощения, ребята. Я был не прав.
Познакомимся с v-agent ориентированным программированием предложенным в 1981 году программистом из России, выпускником МИФИ, Валерием Ракитиным.
Что еще написано автором по этой теме можно найти здесь:
https://vaop.notion.site/Articles-and-useful-resources-524bcff28774477aab091b82149307eb
Внимание! Чистая теория!
v-agent ориентированное программирование (VAOP) - это методология программирования, основанная на представлении алгоритма в виде v-agent script, который позволяет программному агенту, получившему название v-agent, выполнять операции закодированные в модулях v-agent box.
Идеологически v-agent ориентированное программирование - добивается того, чтобы алгоритм был записан в одном месте в виде, понятном всем - заказчикам, програмистам и исполняюшей среде (компьютеру), что улучшает процесс взаимодействия всех при создания программного продукта и, что особенно важно, существенно снижает затраты на этапе поддержания работы и адаптации к изменению внешних условий в Будущем.
Парадокс заключается в том, что мы должны меняться, чтобы все было по-прежнему, поэтому главная задача v-agent ориентированного программирования это обеспечить Бессмертие программного продукта при минимальных вложениях средств в его постоянную модернизацию.
Знание v-agent ориентированном подхода к программированию, будет полезно ни сколько разработчикам, которые получают деньги за не важно по какой методологии, сделанный программный продукт, а заказчикам, которые на долгие годы остаются один на один с проблемами поддержания работы программного продукта и адаптации его к изменению внешних условий. Помните, что Будущее не приходит само! Будущее мы программируем умело или не умело, поэтому надо создавать Ваше программное обеспечение, используя v-agent ориентированное программирование для того, чтобы у Вас было Будущее
Звучит туманно и не конкретно, но без теории нельзя, так как нет в мире ничего практичней хорошей теории.
Зачем, что и как?
Зачем нужно v-agent ориентированное программирование?
Для удобства работы всех участников создания программного продукта - заказчика, программиста и исполняющей среды (компьютера)
Что такое v-agent ориентированное программирование?
Представление апгоритма работы программного продукта в форме "v-agent script", понятной всем участникам разработки - заказчику, программисту и исполняющей среде (компьютеру)
Как работает программный продукт, сделанный по правилам v-agent ориентированного программирования?
Все участники создания программного продукта - заказчик, программист и исполняющая среда (компьютер) используют одну форму записи алгоритма "v-agent script". Такого нет и в одной технологии программирования.
В сравнении с другими технолониями, v-agent ориентированное программирование существенно снижает затраты как на этапе разработки, так и во время сопровождения и обновления программного продукта.
Алгоритм - это модель действий
Сравним различные формы записи алгоритмов и увидим всю уникальность v-agent ориентированного программирования.
v-agent ориентированное программирование инновация в разработке программных продуктов сравнимая с удобствами полученными человечеством при переходе от римской системы счисления к арабской (позиционной).
Сами в этом убедитесь, когда научитесь использовать форму записи алгоритмов "v-agent script"



















Обычная реализация алгорима для нахождения суммы элементов массива на языке Python
M = [1,2,7,1] sum = 0 i = 0 while i < len(M): sum = sum + M[i] i = i + 1 print("\nsum is [" + str(sum) + ']') print('\nThe End')
Применение v-agent ориентированное программирование (VAOP) для нахождения суммы элементов массива на языке Python
actions = { "Action_00":{ "_action_description":{ "_010":"--> init action", "_020":"--> Set array M, i = 0; sum = 0" }, "Direction_10":"Action_10", "_010":"Done" }, "Action_10":{ "_action_description":{ "_010":"--> sum = sum + M[i]" }, "Direction_10":"Action_20", "_010":"Done" }, "Action_20":{ "_action_description":{ "_010":"--> i = i + 1", "_020":"-->if i > len(M) - 1" }, "Direction_10":"Action_END", "_010":"Yes", "Direction_20":"Action_10", "_020":"No" } } # init block M = [1,2,7,1] sum = 0 i = 0 current_action = "Action_00" direction = "Direction_10" while 1 == 1: # define next action action = actions[current_action][direction] previous_action = current_action current_action = action print(previous_action,direction,current_action, i, sum) print('------------------------') if current_action in actions: if current_action == "Action_10": sum = sum + M[i] direction = "Direction_10" # Done if current_action == "Action_20": i = i + 1 direction = "Direction_20" # No if i > len(M) - 1: direction = "Direction_10" # Yes continue break # end of loop where 1 == 1 if current_action.find("END") == 0: print("\n\Error: current_action:[" + current_action + "]\n") if current_action.find("END") != 0: print("\nsum is [" + str(sum) + ']') print('\nThe End')
От автора
Я, Валерий Ракитин, автор этого комикса, изобретатель и популяризатор v-agent ориентированного программирования (VAOP) не прощаюсь с Вами. За 40 лет у меня накопился богатый опыт применения VAOP как в обработке данный, так и в Веб-программиро��ании и я готов им поделиться.
