Нетрудно себе представить недалекое будущее человечества, в котором все люди будут окружены роботами и умными устройствами. С другой стороны это означает, что количество работы по программированию всего электронного окружения возрастет во много раз. А учитывая увеличивающуюся сложность и интеллектуальность устройств, обычным людям придется все чаше вторгаться в область, которая принадлежит профессиональным программистам, ведь профессиональных программистов на всех попросту не хватит. К примеру, людям придется хоть один раз программировать поведение своих личных роботов, самостоятельно создавать простые приложения, которые заставят смартфон или компьютер делать то, что необходимо пользователю.
Поэтому многие группы исследователей сейчас работают над созданием совершенно новых языков программирования, которые сделают сам процесс программирования легким, доступным и понятным любому человеку. И некоторые специалисты прогнозируют, что такие языки могут появиться уже через три или четыре года.
Одним из путей упрощения процесса программирования считается упаковка последовательностей команд более низкого уровня в более естественные, общие команды и директивы языка. К примеру, "сейчас, что бы запрограммировать движения робота-собаки, человеку требуется думать о таких мелочах, как движение каждого сустава робота и координация движений" - объясняет Инсуп Ли (Insup Lee), программист из университета Пенсильвании. - "Мы с коллегами работаем над "автоматизацией" таких деталей и мелочей, после чего люди смогут давать роботам команды более высокого уровня, типа "двигайся вперед" или "поднимай по очереди все ноги. Мы работаем над поднятием того, что программисты называют уровнем абстракции языка программирования".
Другая группа программистов работает над тем, что бы сделать будущий язык более устойчивым к возникновению ошибок и неопределенностей. "У большинства современных языков программирования есть один недостаток - если программист сделал ошибку, то в большинстве случаев вся программа начинает выполняться неправильно. Поэтому, даже если сейчас быстро и дешево написать программу, никак не избежать длительной и дорогостоящей отладки. В будущем все будет реализовано так, что допущенная ошибка повлияет только на один участок, не затрагивая работу программы в целом".
Еще одна особенность программирования с использованием традиционных языков, таких как C, C++ или Java, заключается в том, что человек должен обладать алгоритмическим мышлением, т.е. четко представлять себе всю последовательность действий, необходимую для решения той или иной задачи. Увы, это дано не всем людям, и исследователи видят решение данной проблемы в создании сред так называемого "визуального программирования". Такой подход может избавить пользователя вообще от написания какого-либо кода, а в случае необходимости этот код может быть написан на языке, напоминающем язык формул в Microsoft Excel, который уже давно и успешно используется многими людьми, далекими от программирования.
И, заключительным этапом воплощения будущего процесса программирования исследователи считают возможность постановки задач роботам и устройствам на обычном естественном языке. Для этого компьютер должен будет обладать развитым искусственным интеллектом, способным определить не только то, что явно написано в инструкции, но и то, что мог подразумевать человек, писавший эту инструкцию. Конечно, воплощение этой идеи произойдет еще не скоро, но это единственное приемлемое решение, которое позволит без проблем и ограничений любому человеку программировать любое устройство.