Найти в Дзене

Есть ли будущее у программистов?

В 1996г. ракета Ariane 5 Европейского космического агентства потерпела катастрофу через 37 секунд после старта из-за ошибки в программном обеспечении. Некорректная конвертация 64-битного числа с плавающей точкой в 16-битное знаковое целое привела к сбою. В результате ракета изменила курс и самоуничтожилась. Ущерб составил более $370 млн. Сбой, вызванной «багами» в ПО на одной из подстанций Единой энергосистемы РФ в 2000г. привёл к масштабной аварии, оставив на сутки без электричества несколько регионов. В результате отключения была нарушена работа транспорта и коммунальных служб, что привело к гибели нескольких человек. Компания Knight Capital в 2012г. потеряла почти полмиллиарда $ из-за одной ошибки в ПО для торговли на NY-бирже. Она привела к неконтролируемому количеству сделок, что вызвало хаос на рынке и серьёзным финансовым потерям. Программные ошибки радиотерапевтической машины Therac-25 привели к некорректной обработке данных, которые позволили устройству генерировать недопустим

В 1996г. ракета Ariane 5 Европейского космического агентства потерпела катастрофу через 37 секунд после старта из-за ошибки в программном обеспечении. Некорректная конвертация 64-битного числа с плавающей точкой в 16-битное знаковое целое привела к сбою. В результате ракета изменила курс и самоуничтожилась. Ущерб составил более $370 млн.

Сбой, вызванной «багами» в ПО на одной из подстанций Единой энергосистемы РФ в 2000г. привёл к масштабной аварии, оставив на сутки без электричества несколько регионов. В результате отключения была нарушена работа транспорта и коммунальных служб, что привело к гибели нескольких человек.

Компания Knight Capital в 2012г. потеряла почти полмиллиарда $ из-за одной ошибки в ПО для торговли на NY-бирже. Она привела к неконтролируемому количеству сделок, что вызвало хаос на рынке и серьёзным финансовым потерям.

Программные ошибки радиотерапевтической машины Therac-25 привели к некорректной обработке данных, которые позволили устройству генерировать недопустимо высокие уровни радиации, что привело к тяжёлым травмам и смертям пациентов в период с 1985 по 1987г.

ракета Ariane 5
ракета Ariane 5

В ходе войны в Персидском заливе ошибка в программе наведения системы ПВО Patriot привела к попаданию ракеты в казарму, в результате чего погибло 28 военнослужащих.

И этот список ошибок, приведший к самым печальным последствиям, можно продолжать долго. Но их объединяет одно – все они были допущены «кожаными» программистами!

А не преувеличивают ли люди свои возможности? С чего это консервативные программисты считают чуть-ли не аксиомой, что они способны писать более корректный код, чем нейросети?

Я сам работал над несколькими программными проектами в роли руководителя, в силу чего просматривал множество кода, написанного разными программистами. И новичками и опытными. Каких только «багов» не встречал!

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

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

Другая причина – невнимательность. Забывают освободить выделенные ресурсы. Делают копи-паст кода, недостаточно его адаптировав. Работают с неинициализированными переменными. Ошибаются с индексами массивов. Пропускают условия в операторах ветвления. И подобное…

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

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

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

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

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

Развитие искусственного интеллекта идёт стремительными темпами. Нейросети уже демонстрируют впечатляющие результаты в автоматизации задач, связанных с программированием. Инструменты, такие как GitHub Copilot и другие AI-системы, способны генерировать код, который не уступает, а в некоторых случаях и превосходит по качеству тот, который создаётся большинством программистов. И при этом они пишут его на порядки быстрее и дешевле.

Так что, увы, профессия программиста, как минимум в своём нынешнем виде, обречена. Вопрос, пожалуй, только в сроках. И от нашего желания тут мало что зависит. Это так же неизбежно, как вытеснение луков огнестрелом.

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

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

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

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

Искусственный интеллект: Главная Угроза!
Записки IT-руководителя8 июня 2023