Многие люди сегодня очарованы работой современными нейросетями, после работы с такими инструментами у многих появляется непреодолимое желание написать, что языки программирования больше не нужны, что я смогу теперь разработать свой Google, затем лежать на море, попивая свой мохито и зарабатывая несколько тысяч долларов в секунду.
В головах таких людей появляется некая проекция будущего, что раз в наше время нейросети могут писать по запросу простые программы, что через несколько лет они смогут полностью заменять программиста.
Но давайте посмотрим на это более реалистично. Концепция программирования, используя естественный язык вместо языков программирования, появилась давно, до сегодняшнего времени никому не удавалось реализовать такой принцип на практике, но нейросети показали, что такое возможно, прелесть такого подхода в том, что вам не надо учить языки программирования, просто описали своими словами, что вам нужно, и компьютер выполнит вашу задачу.
У такой концепции есть фундаментальный недостаток, это двусмысленность человеческого языка. Мы, люди, общаясь на одном языке, не всегда можем грамотно объяснить наши мысли или описать какие-то действия другому человеку, не говоря уж о машине.
При разработке софта это существенная проблема, ведь нам надо учитывать сотни условий и проверок во время разработки. Представьте, чтобы вам пришлось всё это описывать на естественном языке, вам, чтобы избегать двусмысленности, пришлось бы досконально описывать все нюансы вашего софта, число слов было бы в 10 раз больше, чем кода на языках программирования.
Со временем ваша работа будет напоминать работу писателя, чем лучше вы владеете словом, тем грамотнее вы опишите свою будущую программу, но даже так вы полностью не сможете убрать двусмысленность своих команд, результат вашего труда будет каждый раз возвращать разные реализации ваших программ. Вы можете минимизировать такую проблему, еще более досконально описав программу, но никак от этого не избавитесь, потому что у нейросети нет четкого понимания слов и смысла или даже спецификаций человеческого языка, чтобы каждый раз возвращать один и тот же результат на каждый одинаковый запрос.
Но вы можете немного решить эту проблему, создав специальные заранее заготовленные команды с четко определенной логикой и научить этому нейросеть, чтобы каждый раз получать одинаковый результат, но тогда вы снова изобретаете язык программирования и вернетесь в начало.
Но это не самое страшное, даже если в будущем придумают нейросеть, которая будет переводить человеческий язык сразу в машинный код, которая в разы ускорит разработку, вам всё равно не избавится от аппаратных ограничений компьютера или платформы, где будет работать ваша программа. Вам в любом случае придется учитывать ограничения памяти и вычислительных ресурсов процессора. Вы бы, скорее всего, описывали логику с учетом этого своими словами, но людей много, каждый будет описывать логику, работу с памятью или процессором по-своему, всё это будет снова порождать двусмысленность, и вам придется снова добавить заранее заготовленные команды для работы с памятью и процессором, чтобы убрать эту двусмысленность.
Проблемы на этом не остановятся, любой софт легче пишется, когда он начинается с самого нуля, даже в наше время любая нейросеть выдаст вам готовый сайт по запросу «хочу интернет-магазин обуви с красивым дизайном», получив такой сайт, вы сразу воодушевитесь и будете подготавливать его для своего бизнеса. Поначалу у вас всё будет легко получаться, сотни строк, генерируемых нейросетями, вызовут у вас резкий прилив дофамина, вам будет казаться, что вы хакнули этот мир, глупые программисты теперь не нужны.
Проблемы начнутся позже, когда вся логика вашего сайта свяжется в один большой клубок, в котором любая новая фича ломает существующий функционал. Уровень дофамина в вашем организме будет сильно уменьшатся, вы будете в недоумении, как такая умная машина может ошибаться, ведь до идеала мне осталось совсем чуть-чуть. С точки зрения машины она выполнила каждый ваш запрос корректно, не важно, что для выполнения запроса пришлось переделать другую логику, ведь это не ошибка, такого в ТЗ не было, код компилируется, все тесты зеленые.
Со временем дофамин в вашем организме сменится на кортизол, разработка будет напоминать сеанс в рулетку, где вы будете сотни раз отправлять нейросети запросы в надежде получить желаемый результат, но уже слишком поздно, клубок стал слишком большим.
Многие не понимают, что в наше время нет проблемы, к примеру, быстро разработать сайт за 1-2 дня, настоящая проблема поддерживать работу такого сайта 3-4 года. За время которого сайт переживет сотни изменений, но всё равно будет продолжать корректно работать и приносить деньги.
В наш век все люди обучены писать и читать, но даже так только единицы могут написать интересный рассказ, еще меньше целую книгу. При написании книги писателю нужно учитывать поступки, логику героев и их характер, чтобы история была цельной и осмысленной. То же самое и программирование, вы можете попробовать описать логику программы, используя естественный язык, но вам никогда не добиться такой точности и детерминированности, как это делают языки программирования.
Источник

