Основу любого автоматизированного управления составляют программы. Программа представляет собой совокупность команд, которые предназначены для совершения каких либо действий с информацией. На основе использования среди этих команд условий выполнения тех или иных действий можно составлять сложные схемы работы программы. Адаптивность программы к различным условиям определяет широту ее функций и ее ценность в целом. За последние 50 лет с начала широкого использования ЭВМ в деятельности человечества написано неизмеримое количество различных программ. Очень часто конкуренция их составителей приводит к дублированию их функций. Сегодня не составит труда выбрать необходимое программное обеспечение под потребность именно своей деятельности. Однако каждый созданный программный продукт имеет свою индивидуальную особенность функций, поскольку исходно создавался под нужды конкретного потребителя, и уже в последствии адаптировался под нужды других.
Невозможно создать абсолютно универсальную программу, ее функции всегда будут ограничены. Но возможно создать достаточно адаптивную программу, настройка функций которой удовлетворит требования потребителя. Пример подобных адаптивных программ - платформа 1С. Но даже в этом случае была создана универсальная платформа, позволяющая на ее основе создавать необходимые рабочие конфигурации. По сути именно они являются носителями конечных рабочих программных функций, и на их составление приходятся основные затраты времени программиста. Тот же результат может быть достигнут при создании программы с нуля, используя различные компиляторы кода. В этом случае эти компиляторы будут играть роль платформы, но позволят более гибко настроить функции и инструменты их управления в будущей программе. Повторюсь, у каждой программы есть своя специфика, 1С не исключение, и универсальных программ не бывает. Вот почему иногда идеальным вариантом для пользователя программы является заказ на ее создание. В этом случае он получит программу идеально подходящую конкретно под нужды его деятельности.
Существует достаточно много компиляторов, а также трансляторов и интерпретаторов, которые используются для составления программ. Названия самых известных из них приведены ниже на иллюстрации.
Каждая такая платформа имеет свои технологические преимущества, за счет которых предпочтительней ее использование в той или иной области применения будущей программы. Считается, что язык С++ создает самые быстрые и компактные программы. Delphi и Pascal обладают структурной консервативностью, за счет чего надежны и экономичны. Java изначально ориентирован на работу в сетевой среде и с коммуникациями, а также отличается масштабируемостью и надежностью. В прошлом Fortran преимущественно использовался для инженерных и научных расчетов за счет мощной поддержки вещественных типов данных. Pyton популярен за широту применения, от Web-приложений до машинного обучения и анализа данных. Перечислять языки и их достоинства можно долго, тем более с каждым днем их становится все больше, а мнение о их достоинствах часто субъективны. Поэтому в каждом отдельно взятом случае применение того или иного языка для новой программы должен выбирать специалист.
Структурно функции любой программы могут разделяться по назначению. Обязателен для любой программы интерфейс управления. Это окна и элементы взаимодействия оператора и программы. За счет интерфейса оператор настраивает и запускает различные функции программы, контролирует ход их исполнения, а также получает и анализирует результат ее работы. Основными направлениями работы программ являются сбор, хранение и обработка данных, а также взаимодействие с внешними устройствами (периферией) и управление ими. Это может быть ввод, хранение и анализ документации о хозяйственной деятельности или контроль производственного процесса на станке с помощью датчиков и управление им в режиме реального времени.
Широта применения программ ограничена лишь человеческой фантазией и здравым смыслом. В таких условиях очень часто программист выступает в качестве арбитра, и с позиции своего опыта предлагает более эффективные варианты технических решений. Он также, как и заказчик, заинтересован в более экономичном исполнении, при этом не в ущерб требуемым возможностям будущей программы. Всегда итог создания программы, это конценсус интересов заказчика, технологических возможностей языка и стремления программиста к творческому совершенству.