3 причины, почему роботы не смогут заменить программистов

23 июня 2016, 11:26

В своей колонке Java-разработчик Павел Вейник, основатель и преподаватель школы программирования ITStart.by, порассуждал, являются ли программисты «операторами телеграфа 21 века» и не останутся ли они без работы в результате всеобъемлющей автоматизации.   

Читать далее...

Иллюстрация: Shutterstock

Идею о том, что программисты — это операторы телеграфа 21 века, которым скоро придётся идти с мётлами на улицу, потому что их заменят роботы, я слышу уже довольно давно. Наверное, целый год.

Сейчас полетит камень в огород некоторых лидеров мнений. Как правило, люди, довольно далёкие от ИТ — точней, сильно далёкие — замечают тренд по автоматизации, которая происходит во всех отраслях, и экстраполируют его на ИТ. В частности — на программистов.

Это, с моей точки зрения, говорит о том, что они абсолютно не понимают, что такое автоматизация сама по себе и где границы её возможностей.

Индустрии предстоит пройти ещё очень долгий путь, прежде чем искусственный интеллект сможет по-настоящему конкурировать с программистами. Ну разве что существует какая-нибудь компания, которая уже лет 30-40 тратит все свои деньги (если денег у неё много) на исследования такого рода, но при этом о ней никто не слышал. Такой вот чёрный лебедь.

Фактор N1: именно айтишники всё автоматизируют

Во-первых, автоматизируют всё на свете — айтишники. Именно они внедряют правила работы различных процессов в код, чтобы в таком виде оно работало быстрее и точнее, чем если бы делалось руками. Ровно до тех пор, пока сам процесс не изменится — тогда для него придётся писать новый код. Это обычно долго.

Тяжело представить, каким образом можно автоматизировать процесс по автоматизации других процессов. Он сложный и творческий. И хотя в нём есть определённые этапы, и хотя они ясны и выделены, пока что человеческий мозг — единственный, кто может эти этапы преодолеть.

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

Если же говорить об относительно новых больших вещах последних лет пяти — большие данные, мобильная разработка — под них не существует такой автоматизации. Чем моложе отрасль и чем более бурно она развивается, тем меньше таких автоматизаций.

ИТ — это причина автоматизации других отраслей, но она не может быть причиной автоматизации самой себя.

Фактор N2: технологическая неготовность ИИ к тому, чтобы заменить программистов

Добавлю кое-что как человек, который очень долго занимался не то чтобы ИИ, но некоторыми задачами, которые обычно этому интеллекту приписывают. А именно: анализ данных.

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

В данный момент технически невозможно создать процесс, который будет автоматизировать другие процессы.

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

Фактор N3: Человеческий, или «любовница главного инженера»

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

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

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

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

Здесь зарыта ещё одна собака: чтобы провести автоматизацию в таких условиях, нужно учесть все эти недомолвки и иногда прямой обман, на который идут представители предприятия, чтобы сохранить и увеличить свои привилегии и/или кому-то насолить.

В таких рамках любая машина не сможет функционировать, потому что получит противоречивые данные — и привет.

Водянистый пузырь искусственного интеллекта

Сейчас, когда интерес к теме ИИ вспыхнул с невиданной силой, мы, похоже, попросту стали свидетелями раздувания нового пузыря, на котором некоторые люди здорово проедутся.

То же самое было со всем известным пузырём доткомов и со многими другими пузырями: все возлагали большие надежды, надежды оказались слишком большими. «Ну извините, не получилось».

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

Сегодня под ИИ понимают просто чуть более умные и сложные алгоритмы. Под эту марку можно подгрести что угодно, маркетологам всё равно: главное — инвестиции. Назовёмся ИИ — дадут больше денег? Чудно! 99% таких компаний лопнут, а 1% через 20 лет родит что-нибудь стоящее.

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

Именно эта волна, по-моему, и обусловила такую постановку вопроса: мол, роботы заменят программистов. Людей, которые в теме разработки, это смешит. И уж тем более глупо говорить, что разработчики якобы боятся, будто их заменит ИИ. Я общаюсь со многими программистами, имеющими дело с разными технологиями и платформами, никого и близко не волнует эта абсурдная перспектива.  

Треть разработчиков боится ИИ, но не понимает, что это такое?

Тем не менее, статистическое исследование, проведенное фирмой Evans Data Corp., свидетельствует: 29% из 550 опрошенных разработчиков ПО беспокоятся, что их на рабочем месте заменит искусственный интеллект (ИИ).

Фото: Андрей Давыдчик, dev.by

Тут есть серьёзная оговорка: большинство людей не понимает, что обозначает термин ИИ. Ставя перед респондентами этот вопрос, нужно оговорить, что понимается под этим термином.

Я читал книги про ИИ, написанные ещё в 1960-1980, и сейчас тоже почитываю что-то более современное. И вот какая штука: искусственным интеллектом постоянно называют то, чего машина делать ещё не может. Как только она научится это делать, это перестанет называться ИИ и получит какое-то другое название.

К примеру, пока машина не умела «видеть», алгоритмы машинного зрения тоже называли искусственным интеллектом. Как только она научилась видеть, это стало называться распознаванием изображений и образов, машинным зрением и пр. То же самое с нейронными сетями.

Если исходить из этого банального людского представления про ИИ — оно не академично, неправильно, но в большинстве голов присутствует — то и получается такая вот ерунда: «я как программист могу быть заменён машиной, которая умеет делать то, чего машина делать не умеет».

Оптимизация кода: «навороченное» удаление лишней переменной vs улучшение процессов

MIT и Adobe научили компьютер оптимизировать старый код быстрее программистов?

Ладно, разберёмся. В той же Java есть 2 уровня оптимизации кода: один происходит прямо при компиляции, другой прямо при выполнении. Эти оптимизации лет за 15 настолько развились, что некоторые ошибки исправляются очень уверенно.

При этом существуют:

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

Помню, нужно было написать алгоритм оптимизации работы машин в таксопарке. Машин было под 300, довольно большой город — американский, конечно. Я выдал хитрый навороченный алгоритм, который много чего учитывал и требовал несколько месяцев на сбор данных разработку, отладку и тестирование. А пара менеджеров или бизнес-аналитиков за вечер придумали решение, которое вовлекает и пассажира, и таксиста, и простейшие данные по всему таксопарку, выбирая наилучшее решение для задачи, причём очень быстро, на лету.

Здесь оптимизация улучшила не просто скорость работы, а пользовательский опыт, плюс сильно упростила происходящее на серверах и сэкономила немало денег. На такую оптимизацию машины не способны: она требует знания не просто кода, а ещё и контекста. Машины, к сожалению, пока ещё не умеют его учитывать, выбирая то, что подходит для решения задачи.

Не знаю, что конкретно придумали товарищи из MIT и Adobe, которых я очень уважаю, но наверняка это всего лишь чуть более навороченное удаление лишней переменной.

Называть это шагом к ИИ — всё равно что называть новую модель машины прорывом в космос.

И всё-таки: так кого заменят роботы в ИТ?

Бизнес-аналитиков, менеджеров, дизайнеров (если это не что-то очень банальное), верстальщиков роботы вряд ли заменят.

Что касается тестировщиков, тут чёткая и всем известная тенденция: ручные тестировщики уже гораздо менее востребованы, чем тестировщики-автоматизаторы, которые пишут программы, тестирующие систему.

Эйчары — вот здесь, думаю, не за горами тот момент, когда их работа будет процентов на 80 автоматизирована. Есть модный тренд больших данных, который давно суют во все щели. Могу даже прикинуть, как с его помощью можно автоматизировать большую часть работы рекрутера. Сперва, конечно, кое-что будет сделано криво, но потом дело пойдёт.

Что касается неайтишных профессий, тут всё довольно прозрачно: людям, которые занимаются физическим трудом, а также тем, кто делает конвейерные рутинные операции в любой сфере (чуть позже — ещё и водителям, судя по тренду с самоуправляемыми авто), нужно срочно идти в программисты — чтобы их не заменили роботы.

 

 

Колонка подготовлена при участии Натальи Провалинской

 

 

*Мнение колумнистов может не совпадать с позицией редакции.

подписка на главные новости 
недели != спам
# ит-новости
# анонсы событий
# вакансии
Обсуждение