Почему Марк Кьюбан ошибается, думая, что через 5 лет роботы заменят программистов

Почему Марк Кьюбан ошибается, думая, что через 5 лет роботы заменят программистов
Коллаж: mustafahacalaki/gettyimages.com
Миллиардер Марк Кьюбан считает, что программы скоро начнут писать сами себя и в ближайшие 5-10 лет потребность в программистах, решающих простые задачи, сильно снизится. По его мнению, программирование — всего лишь математика и его можно автоматизировать. Слова Кьюбана, опубликованные в журнале Inc., вызвали неоднозначную реакцию на рынке программистов. Вот другая точка зрения на эту проблему.

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

Что сказал Марк Кьюбан

— Масштаб изменений, которые мы увидим в ближайшие 5-10 лет, затмит собой все, что произошло за последние тридцать. Искусственный интеллект, машинное и глубокое обучение, нейронные сети сделали возможной автоматизацию автоматизации. Это означает, что люди, пишущие софт, — простые программисты, — больше не нужны. Код пишет себя сам. Это ведь просто математика. В прошлом, когда я писал код, алгоритм был простым, но требовал смекалки. Постепенно он становился сложнее, умнее и позволял делать все более интересные вещи. Сейчас все это автоматизируется. Вы должны знать, как этим воспользоваться. Потому что-либо софт работает на вас, либо — вы на софт. И тогда, как только софт начнет писать себя сам, потребность в вас отпадет.

Марк Кьюбан сравнивает программирование с математикой, неплохая аналогия. Но математика бывает разная. Одно дело — решать задачки в школе, другое — искать доказательство теоремы Ферма или выдвигать новые гипотезы.

Программисты — люди, которые всерьез занимаются автоматизацией, — хорошо понимают границы возможного в этой области и им будет трудно разделить оптимизм Кьюбана.

Процесс создания программ можно разбить на несколько стадий: анализ предметной области, поиск решения, проектирование, разработка. Написание кода происходит в основном на этапе разработки. Возможно, об этой части работы и говорил Марк Кьюбан. Считается, что в ней есть некоторое поле для автоматизации. Это действительно так, но надо понимать, что написание программного кода — достаточно сложная и творческая деятельность.

Текущие и перспективные разработки в области искусственного интеллекта — это все задачи класса «подай-принеси», и до автоматизации программирования еще очень далеко. Через несколько десятков лет, возможно, реализуют какую-то часть интеллекта собаки, спустя еще несколько десятков — смогут сделать что-то с минимальными признаками осмысленности. Но даже для разработки программ по готовым алгоритмам требуется интеллект много выше среднего.

Эйфория вокруг достаточно скромных реальных достижений робототехники возникает в основном от непонимания того, что внутри. То, что сейчас называют искусственным интеллектом, — это уровень рефлексов, а они есть и у амебы. По моему мнению, как минимум в ближайшие 20 лет мы не сможем рассчитывать на серьезную помощь роботов в разработке программ и программисты будут не менее востребованы, чем сейчас.

Вот причины, почему этот так, и не может быть иначе:

Творчество трудно поддается автоматизации

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

Коллаж: mustafahacalaki/gettyimages.com

Об этом еще в 1986 году писал в своей статье «Серебряной пули нет» Фредерик Брукс (Frederick Brooks «No Silver Bullet», 1986). За тридцать с лишним лет взрывного по темпам прогресса в области информационных технологий ситуация не изменилась.

Программирование — как изобретение колеса

Технический прогресс сдерживается сложностью решения определенных задач. Например, люди изобрели колесо. Это было непросто, понадобилось несколько десятков тысяч лет. Потому что колесо — вещь неочевидная. Очевидная — волокуша. Техническая задача — снизить трение. Непонятно, неочевидно, сложно. Решение было найдено, и позднее были найдены решения других первичных задач: транспорт, строительство, производство.

Сегодня решаются еще более сложные задачи. Это задачи управления  — машинами и механизмами, транспортом, производством, финансами и т.д.

Например, изобретение конвейера — грамотно решенная задача управления, которая в десятки раз повысила производительность труда, его качество. Примерно такого класса задачи сейчас решают те, кого в широком смысле называют программистами.

Если строителя попросить построить дом без фундамента или проектировщика автомобиля — сделать машину, которая ездит без топлива, то они скорее всего, не возьмутся за такую работу. Есть объективные физические законы, и классические инженеры работают «в рамках». Программисты работают с виртуальными (информационными) объектами и не ограничены законами физики. Более того, очень часто они проектируют целые миры и сами создают законы. Поэтому программирование — одна из самых сложных технических профессий. Нет рамок, возможно всё, проблема лишь в том, чтобы удержать под контролем то, что ты «натворил». Ключевые задачи, из которых состоит ежедневная работа программистов, — поиск закономерностей, генерация идей, разработка решений, — невозможно автоматизировать.

Вывод

То, что в ближайшие 5-10 лет работа программистов будет автоматизирована, — наивная иллюзия. Это невозможно. По крайней мере, не так скоро.

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

Мнение редакции может не совпадать с мнением авторов Inc.

Читайте нас в Facebook, Twitter и ВКонтакте.