Удивительно, но всё идёт к тому, что основная проблема вычислительной техники, а именно повышенная сложность перевода требующихся действий в машинные коды, в ближайшие годы будет полностью решена! И сделано это будет с помощью нейросетевого искусственного интеллекта, который уже сегодня успешно решает мелкие алгоритмические задачи.
С одной стороны, для программистов эта новость выглядит довольно печально. Более того, основная их масса конечно же будет возражать, и говорить, что такого никогда не будет. Но это лишь первая стадия знакомства с неприятной им реальностью — отрицание.
Но реальность такова, что вне желания программистов, искусственный интеллект имеет все шансы лишить их любимого занятия, и взять на себя не только работу по созданию мелких алгоритмов, но также и решение всей задачи целиком. В утешение (в том числе, и своего), могу сказать, что на век нынешних программистов работы им хватит с избытком.
Следующее же поколение, представители которого тоже будут называться «программистами», по факту будет просто операторами искусственного нейросетевого разума, и не более того. Они будут обучены лишь грамотно ставить задачу системе и управлять настройками нейросети для получения наиболее качественного результата, как сейчас для того же самого они управляют настройками компилятора.
На протяжении всей истории программирования компьютеров, эволюция шла в направлении упрощения постановки задачи процессору, и это неудивительно — тонким местом является именно создание программ, доступное изначально единицам математиков, набивавших программы на перфокартах и на перфолентах.
Затем для упрощения взаимодействия с процессором появились клавиатуры и мониторы. Начали появляться языки программирования всё более высокого уровня. Вместо бинарного кода программисты стали пользоваться абстракцией — шестнадцатеричным его представлением а позже и мнемоникой этого представления — языком Ассемблера.
С тех пор уровень языка постоянно рос, всё более отдаляясь от сути происходящих в процессоре событий. Уже никто и не вспоминал про регистры процессора, и программист манипулировал математическими переменными. Появился первый язык т.н. «высокого уровня» — Фортран. Затем Алгол, Кобол и Лисп. Позже — Бейсик, Паскаль и Си.
Поднимаясь по лестнице абстракций, язык Си превратился в объектно-ориентированный Си++. Кроме того, как грибы после дождя стали появляться всё новые и новые языки всё более высокого уровня, и их апофеоз — языки для мультиплатформенных программ, выполняющихся уже в некой программной прокладке в виде виртуальной машины, а не напрямую на процессоре (Ява и Котлин, Пайтон и Mojo и т.п.). Впрочем, это уже другой вектор развития языков в сторону мультиплатформенности. Об этом как-нибудь потом.
Не раз за это время учёные пытались повысить эффективность труда программиста. Появлялись различные парадигмы программирования, упрощающие написание кода. Появилась концепция структурного программирования, подразумевавшая отказ от оператора безусловного перехода GOTO, затем объектно-ориентированного, представляющего программу, как взаимодействие объектов, наподобие реального мира (Симула-67, Smalltalk и уже вышеупомянутый Си++).
Но задачи усложнялись с такой скоростью, что все эти новые парадигмы не приводили к существенному упрощению работы программиста. Казалось бы, тупик. Были попытки создавать языки визуального, графического программирования, но нельзя сказать, чтобы это направление было достаточно успешным, чтобы стать мейнстримом.
И вот, откуда ни возьмись, появляются нейросети, которые начинают вполне себе сносно искать ошибки в программном исходнике и даже самостоятельно описывать на заданном языке программирования различные алгоритмы. Да, качество этого кода не всегда идеальное, но оно напрямую зависит от качества материала, на котором нейросеть была обучена.
Нетрудно понять, что с развитием способностей искусственного интеллекта, который, надо признаться, прогрессирует довольно быстро, нейросети научатся писать программы целиком, причём, наверняка, с качеством выше среднего. Программисту останется лишь прогнать код через профайлер и расшить узкие места. То есть, само кодирование сократится к минимуму.
Впрочем, примерно так уже сегодня создают свои программы любители свободного программного обеспечения — берут готовый код, немного его допиливают, и вуаля — можно регистрировать продукт в реестре российского программного обеспечения. Но это так, печальный сарказм.
Заключение
В общем, как ни крути, а программистам надо бы уже сейчас осваивать возможности нейросетей в области написания программного кода. Уже совсем скоро эти навыки могут весьма пригодиться.
На сегодня всё. Ставьте нравлики, делитесь своими мыслями в комментариях и подписывайтесь на мой канал. Пока! :-)