Будущее программирования

24.10.2017

(Продолжаю упражняться в словоплетении на тему "обращение отца к сыну")

Что делают обычные программисты? Они пишут код, который кто-то до них уже писал и составляют из него программы, которые выполняют действия, похожие на другие программы. Как и игра в шахматы - тут много ходов, но количество комбинаций - конечное.

В текущей парадигме программирования все уже изобретено. Представьте себе - сколько человек уже создали переменную Х, воткнули ее в цикл FOR и проверили условием IF. Творчество остается в придумывании названий переменных и написании неоптимального кода.

Это говорит нам о том, что такое программирование - можно автоматизировать, а значит программисты вымрут. Тут, получается, тоже роботы одолеют людей? Давайте разбираться.

Как работает программирование? Получение входящей инфо, обработка по алгоритму и выдача результата.

К примеру алгоритм работы робомобиля, который на медленной скорости подкатывается к перекрестку и определяет, что нужный светофор показывает красный цвет. Что делать с текущей скоростью движения? Тормозить? Кстати, по правилам дорожного движения полицейский-регулировщик имеет приоритет над бездушным фонарем, но и у него жесты различимы и регламентированы, так что вернемся к базовой логике: красный=стоять, зеленый=ехать. Это основа современного программирования, которая и будет автоматизирована через пару десятков лет и дальнейшее решение этой задачи не потребует более вмешательства программиста - искусственный интеллект справится сам (слышали, что один из таких роботов, посмотрев на монитор, как люди играют в Марио - сам взял и написал программу с этой игрой?).

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

Сегодня уже полным ходом идут такие реализации, когда по фразе пытаются определить язык, по фотографии - мальчик на ней или девочка. Даже люди путаются при решении подобных задачек, и компьютеры - тоже будут путаться, только, чуть меньше, чем человек. Это и есть наступающая реальность, когда компьютеры учатся функционировать в ситуации неопределенности. Вот к чему надо готовить программистов следующего поколения.

We can talk about it on: Facebook Youtube

наверх