Пользовательское программирование


Термины пользовательская разработка (End-User Developement — EUD) или пользовательское программирование (End-User Programming — EUP) обозначают набор методик и инструментов, которые позволяют программировать конечным пользователям — людям, не являющимся профессиональными разработчиками ПО. Люди, не являющиеся профессиональными разработчиками, могут использовать инструменты EUD для создания или модификации программных артефактов (описаний автоматических действий) и сложных объектов данных без знания языков программирования.

Существуют различные подходы к проблеме пользовательского программирования — это тема активно исследуется в информатике и науке о взаимодействии человека и компьютера. Среди примеров можно отметить системы программирования на естественном языке[англ.][1][2], электронные таблицы [3], скриптовые языки (особенно в офисных пакетах или приложениях для художников), визуальное программирование, программирование триггерных действий и программирование по примеру[англ.].

Самый популярный инструмент пользовательского программирования — это электронные таблицы[3][4] В силу своей неограничивающей природы они позволяют довольно неискушенным пользователям писать программы, представляющие сложные модели данных, в то же время защищая их от необходимости изучать языки программирования более низкого уровня.[5] Навыки работы с электронными таблицами считаются одними из самых полезных для выпускников ВУЗов из-за широкой распространённости электронных таблиц для решения задач в бизнесе[6] По состоянию на 2005 год в США количество пользователей, использующих электронные таблицы оценивалось в 13 млн. чел.[7]

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

Одним из направлений развития в этой области является использование мобильных устройств для поддержки пользовательской разработки ПО. Специфика мобильных устройств не позволяет применять те же самые подходы, которые работали для настольных приложений. Настольные среды EUD лишены преимуществ, позволяющих конечным пользователям создавать приложения при любой возможности.[8]

В последнее время также возрос интерес к тому, как использовать техники EUD для разработки приложений Интернета вещей. В этой области перспективным подходом считается программирование триггерных действий.[9]