{"id":2162,"url":"\/distributions\/2162\/click?bit=1&hash=6bdf5aec9e03e74234b2d7162aacaa2e1177031d0b3a681065b591c8f5741742","title":"\u0417\u0432\u043e\u043d\u0438\u0442\u044c \u0438\u0437 \u041a\u0430\u043b\u0438\u043d\u0438\u043d\u0433\u0440\u0430\u0434\u0430 \u0432 \u042f\u043a\u0443\u0442\u0438\u044e \u043f\u043e \u0432\u0438\u0434\u0435\u043e \u0431\u0435\u0437 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a","buttonText":"\u0410\u043b\u043b\u043e!","imageUuid":"bc8e606b-9a50-5550-a16e-3fed09971ed5","isPaidAndBannersEnabled":false}

Вместо программиста — кнопка «Сделать хорошо»: может ли компьютер писать код и не поздно ли уже «идти в айти» Статьи редакции

Нейросеть AlphaCode выступила в конкурсах программирования на уровне человека. Но до полной автоматизации по-прежнему далеко — ИИ ещё долго не заменит разработчиков.

Демонстрация работы AlphaCode: слева — словесное описание задачи, справа — итог работы нейросети, изображение DeepMind

В начале февраля компания DeepMind представила нейросеть AlphaCode, которая смогла на равных участвовать в конкурсах по программированию и писать код неплохого качества. Главный научный сотрудник компании Ориол Виньялс заявил, что «сотрудники в восторге от потенциала» AlphaCode — от неё ждут способности помогать писать код и «создавать новые способы производства софта».

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

Что называют автоматизацией программирования

В идеале должна получиться компьютерная программа, которой можно словами описать желаемое приложение (или даже игру), нажать кнопку и через какое-то время получить готовый продукт: приложение или игру. То есть, это разработка софта без участия разработчиков — людей, которые пишут и поддерживают код программы.

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

В 1952 году американская учёная и коммодор флота Грейс Хоппер создала первый компилятор — программу-переводчик с «очеловеченного» машинного кода на обычный. В этом языке ассемблера место многих машинных «слов» заняли более понятные mov (переместить) или add (сложить), что даже визуально сделало код проще. Язык ассемблера (он отличался для каждой модели компьютера) открыл вторую эпоху программирования — которая, впрочем, продлилась недолго.

Язык ассемблера и машинный код, изображение Android Authority

Возможностей ассемблера быстро перестало хватать, так что уже с конца 1950-х годов начали появляться языки третьего поколения: Fortran, ALGOL, COBOL, Basic, Pascal, C и так далее. В них ещё больше машинных инструкций было обёрнуто в понятные слова вроде begin, end, if, else, return. Формировались новые методы программирования, больше похожие на человеческое мышление. С годами языки программирования становились всё ближе к людям и всё дальше уходили от машинного кода.

Автоматизация через фреймворки и «умные» компиляторы

Сейчас программисты используют языки программирования третьего и четвёртого поколений (C++, C#, Python, PHP, Java, JavaScript). Понять код на таких языках даже без подготовки порой не труднее, чем средневековую поэзию, особенно если это Python или PHP. Фреймворки вроде .NET, Qt, Django, Spring и отдельные библиотеки дают миллионы готовых частей программного кода. Отпала надобность писать отдельно для каждой модели компьютера.

За 70 лет с создания первого компилятора программисты неплохо автоматизировали свою работу: вместо сотен или тысяч строк на языке ассемблера теперь достаточно написать одну понятную строку на современном фреймворке. Благодаря такому упрощению программирование стало «второй грамотностью» в 21 веке, а вычислительные устройства, работающие под управлением программ, проникли во все сферы жизни.

Программы-компиляторы не просто переводят исходный код в машинный, но и хорошо оптимизируют его. Ещё 20-30 лет назад имело смысл писать особо «тяжёлые» участки программы на языке ассемблера, чтобы выжать максимум скорости. В начале века компиляторы начали генерировать код не хуже былых ассемблерных вставок, а сейчас отдельные программисты уже вряд ли смогут оптимизировать программу так же хорошо, как компиляторы GCC, LLVM/Clang, MSVC или ICC.

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

Метапрограммирование: программы пишут программы

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

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

Программист, например, может написать краткий шаблон, «заготовку» нужной ему программы, а компилятор развернёт его в полноценный работающий код. Это умеют делать многие популярные языки программирования — шаблоны и макросы в том или ином виде есть в C++, Rust, Haskell, Python, Lua и так далее.

Макрос всего в шесть строк добавляет в LISP оператор for, изображение Пола Грэма

Используя метапрограммирование, разработчик может даже написать шаблон нового языка, созданного под одну конкретную задачу. Компилятор сгенерирует этот язык программирования и впоследствии на нём напишет нужную программу. Такой подход с использованием узкоспециализированных предметно-ориентированных языков (DSL) особенно часто используют любители языка LISP.

Метапрограммирование позволяет человеку писать минимальное количество строк — по сути, программист в общих чертах «объясняет» компьютеру, как должна выглядеть итоговая программа, после чего компьютер делает всю остальную работу. Это уже куда ближе к идеалу автоматизации — программе, которая сама пишет программы.

Софт, работающий по принципам метапрограммирования, давно не редкость. Приложения создают отчёты и документацию, веб-фреймворки генерируют HTML-страницы, которые когда-то писали полностью вручную. Браузеры и другие программы используют самомодификацию кода в виде JIT — компиляции исходного кода в машинный прямо во время его выполнения.

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

exec(s:='print("exec(s:=%r)"%s)')

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

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

Первая попытка создать ИИ: символический подход

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

Явную формулировку идее символического ИИ придали учёные Ньюэлл и Саймон в 1976 году: они выдвинули гипотезу, что интеллект невозможен без вычислений с участием чисел, слов, выражений и прочих символов — а с другой стороны, таких вычислений достаточно для появления или создания интеллекта. Этот тип ИИ, работающий на основе символов, в 1980-х годах получил название «старого доброго искусственного интеллекта» (GOFAI).

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

В 2011 году IBM Watson даже без доступа к интернету обыграл лучших игроков в аналог «Своей игры», фото IBM

Мощь языка LISP продемонстрировала программа SHRDLU в 1968 году: на транзисторном компьютере PDP-6 с примерно 144 килобайтами памяти она «понимала» текстовые команды на обычном английском языке и давала вразумительные ответы, логически связанные с запросами.

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

Но уже в тех же 1960-х годах символический подход начали жёстко критиковать: например, философ Дрейфус пришёл к выводу, что «потолок» такого ИИ — решение игровых задач, которые не имеют практической ценности. В 1973 году математик Лайтхилл в своём знаковом отчёте повторил этот аргумент в более категоричной форме: он показал, что ни одна система ИИ не добилась ожидаемых успехов, и что символический подход в принципе неспособен привести к созданию искусственного интеллекта.

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

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

Японская LISP-машина LIME, изображение IPSJ

Отчёт Лайтхилла повлёк за собой первую «зиму искусственного интеллекта» — интерес к созданию символического ИИ резко упал, власти и частные компании прекратили финансировать исследования. Ситуацию не спас и успех экспертных систем, под которые даже начали выпускать LISP-машины — компьютеры, аппаратно оптимизированные для выполнения программ на этом языке. Рынок LISP-машин потерпел крах в 1987 году, а к 1995 году стало очевидно: идея символического ИИ несостоятельна, нужен другой подход.

Вторая попытка создать ИИ: на уровень ниже смысла

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

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

Примерная разница между символическим и субсимволическим ИИ

Допустим, человек спрашивает у программы: «Как у тебя дела?». Символический ИИ, написанный на LISP, разбивает эту фразу на отдельные слова, делает вывод, что речь о нём самом, и что человек спрашивает не о конкретных делах, а хочет услышать некую интегральную оценку состояния. После чего смотрит, с какими вариантами такой вопрос связан по смыслу, возможно как-то оценивает своё текущее состояние, и отвечает: «У меня всё хорошо».

Минус такого подхода — в его малой гибкости. Программист может заложить десятки вариантов слов, которые динамически соединяются в разные по форме вопросы с одним смыслом: «Как дела?». Но первое же «Чё как?» вызовет ступор у символического ИИ, потому что такая форма вопроса не выводится логически из заложенных вариантов.

Нейросеть разбивает входные данные (в данном случае — изображение крестика) на «частицы» и прогоняет через несколько слоёв нейронов, изображение Cornell University Library

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

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

Успех субсимволического ИИ — нейросети начали писать код

В 1990-х годах субсимволический ИИ принялись исследовать на практике: появились первые рабочие образцы нейросетей для распознавания образов (1992 год) и управления автомобилем (1995 год). Но лишь в 2010-х годах нейросети стали массовым явлением, когда компьютерная индустрия смогла предложить подходящее оборудование.

Примерно так выглядит рабочая станция для работы с нейросетями — «топовый» процессор и несколько мощных видеокарт, фото Bizon Tech

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

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

В 2015 году появился и первый «нейропрограммист»: учёный-информатик Андрей Карпати обучил нейросеть Torch7 на 400 мегабайтах исходного кода Linux, после чего она за ночь создала более 38 тысяч строк нового кода. По словам Карпати, этот код выглядит так, будто его написал программист на языке С — правда, он не работает и даже не компилируется из-за массы ошибок и неточностей.

После этого исследователи представили ещё несколько нейросетей, которые писали или тестировали код, а летом 2021 года случилось, пожалуй, знаковое событие. Microsoft и Open AI запустили GitHub Copilot — ИИ-сервис, который дописывает за программистом участки кода сразу по пять-десять строк. Это «умное автодополнение» сразу стало популярным на практике — к середине осени Copilot генерировал уже 30% нового кода, который программисты всего мира добавляли на GitHub.

Пример работы GitHub Copilot, изображение GitHub

И вот теперь, в начале февраля, компания DeepMind представляет нейросеть AlphaCode, похожую на то, что инженеры и учёные пытались создать 70 лет — она принимает описание задачи на английском языке и выдаёт код, который собирается и работает. Основой «опыта» для AlphaCode послужили 715 гигабайт исходного кода различных проектов на GitHub, а Copilot обучали на нескольких терабайтах созданного кода.

Когда нейросети заменят программистов

Получается, ИИ уже пишет программы — и как помощник программиста, и как сам программист, причём с неплохой результативностью. Copilot понравился половине разработчиков, которые пробовали его в работе, а AlphaCode смог попасть в 54,3% лучших участников конкурсов программирования. Ещё важнее, что нейросети выдают полностью новый код, а не компиляцию кусков кода, который написали люди (хотя изредка у Copilot бывает и такое).

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

Что мешает полностью автоматизировать программирование

  • AlphaCode относительно неплохо работает в «тепличных» условиях конкурсного программирования, где задания подробно и точно описаны, но в реальной разработке софта нет таких условий. Нейросети, как и любые субсимволические ИИ, очень узкоспециализированы, их обучают для одной конкретной задачи. Задача AlphaCode — участвовать в конкурсах по программированию.
  • Лучшие нейросети выдают всего по 10-20 строк работающего и нормально оформленного кода ценой огромного потребления энергии, тогда как типичное приложение или игра состоят из десятков тысяч строк кода. Причём даже такая небольшая производительность нейросети требует огромных массивов уже написанного кода для обучения. Чтобы AlphaCode смогла правильно написать 200 строк хотя бы в одной попытке из трёх — ей понадобится столько кода для обучения, сколько человечество ещё не создало. Сейчас нейросеть выдаёт меньше строк кода, чем содержится текста в её заданиях.
  • Субсимволический ИИ неспособен «размышлять», оперируя логикой, он работает чисто статистически, отталкиваясь от прошлого опыта. Нейросеть не может намеренно создать новый алгоритм или метод программирования, а в работе с новыми языками программирования нейросети совершенно бесполезны — без тысяч или миллионов программ, написанных людьми, этот тип ИИ просто не сможет обучиться языку.
  • Даже долгое и дорогое обучение на уже созданном коде не даёт высокой точности работы «ИИ-программистов». Нейросеть Codex от OpenAI умеет писать на 12 языках программирования, но её код запускается и работает без ошибок только в 37% случаев. Подсказки Copilot просто небезопасны — 40% генерируемого им кода содержит уязвимости. Пробуя нейросети в работе, разработчики обычно приходят к выводу, что до полной автоматизации их профессии ещё далеко.
  • Нейросети работают по принципу «чёрного ящика» — весь процесс проходит в скрытых слоях искусственных нейронов непрозрачно для людей, так что нельзя сказать, почему нейросеть в каждом конкретном случае выдаёт определённый вариант. Такая неподотчётность может помешать полной автоматизации программирования — люди предпочтут держать под контролем хотя бы ключевые моменты разработки софта.
  • Субсимволический ИИ неспособен осознанно придерживаться каких-либо принципов — например, программировать в едином стиле. Порой нейросети выдают очень странный код, который вряд ли написал бы живой разработчик — но тем не менее, он работает. По мере роста объёмов генерируемого кода количество таких участков будет увеличиваться, а это создаст массу проблем с поддержкой софта. Людям нужен человекочитаемый код, а не типично машинный фарш из символов — именно для этого изобретали компиляторы, фреймворки и прочие вещи.

К чему готовиться программистам уже сейчас

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

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

Пусть сейчас у программистов нет особых поводов для беспокойства, но ИИ вряд ли будет оставаться таким же «бестолковым» и зависящим от человека, как нынешние нейросети. Символический подход может взять реванш в виде гибридного ИИ, где «неосознанная интуитивность» нейросетей будет дополнена способностью к логическим рассуждениям, как у программ на LISP и Prolog. В таком случае автоматизация программирования вполне способна дойти до такого уровня, что потеснит даже сильнейших разработчиков.

0
97 комментариев
Написать комментарий...
Знаменитый нос

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
1 комментарий
Astraeus

Так от компании к компании зависит. У меня, к примеру, есть знакомый вайтишник, который после курсов норм работу пайтон-разраба нашел без проблем, не имея какого-то академического бекграунда. Там, правда был не скиллфактори/гикбрейнс, а трехмесячные курсы с дрочевом 5 дней в неделю по 9 часов в сутки.

Ответить
Развернуть ветку
3 комментария
Jimmy Vatko

Ага, только лучшие прогеры - самоучки)) или кто-то учится на программистов в универе?

Ответить
Развернуть ветку
4 комментария
Никита Логинов
Автор

Интересная мысль!

Ответить
Развернуть ветку
Глубокий череп

Хм, ну вообще то тренд в мире обратный.

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

Это далеко не факт. Разработка законченной и работоспособной системы, которая заменит разработчика, маловероятна в ближайшее время. Максимум будут какие-то "улучшатели" и "помогатели" в среде разработки (IDE). Грубо говоря, появится примочка в VS Code, которая будет подсказывать фрагменты кода или целые функции. Но все равно требуется грамотный человек, чтобы соединить это все воедино и исправить ошибки. Вырастет производительность труда, но вряд ли это что-то кардинально изменит.
Кроме того, разработка таких сложных ИИ-систем наверняка потребует большого количества разработчиков. Может получиться такой эффект, что создание и поддержание такой системы выйдет дороже, чем просто то, что есть сейчас)

Ответить
Развернуть ветку
Парламентский колос

А после того как вырастет производительность труда - возрастут требования и сложность систем. То, что мы делали 10 лет назад как полноценные продукты, сейчас выглядит смехотворно и в курсах типа того же рсскул джуны делают вещи сложнее. Когда был ассемблер мы могли делать лишь очень простые вещи, когда появился си - стало возможным делать больше и так далее. Когда появятся инструменты для автоматического написания кода - это просто будет еще один уровень упрощения. Кстати, спорно даже будет ли это что-то упрощать, ведь программист в среднем 80% времени код читает, а не пишет (если речь об итерационной продуктовой разработке, а не хуяк-хуяк и в продакшен).

Ответить
Развернуть ветку
2 комментария
Зянон

Жду, когда уже заменят переводчиков. А то уже лет 20 со времён промта обещают.

Ответить
Развернуть ветку
Gregory

Вот кстати да. Если уж переводчиков заменить не получается до сих пор, то о каком программировании может идти речь. Казалось бы, задача проще некуда: есть четкие входные данные и четкое требование к результату, плюс есть правила трансляции из одного языка в другой и правила самих языков. Но при этом не получается. Любой машинный перевод, если он больше пары простых предложений, практически нечитаемый. А теперь представьте, что транслируется фраза "сделай заебумбу" в язык, у которого синтаксис намного более строгий. То есть условный промт зачастую обыватель ещё сможет понять и переварить ценой доп усилий, а процессор такого делать точно не будет. Это при том, что входные данные для такого ии куда более сложные и комплексные, чем при переводе

Ответить
Развернуть ветку
4 комментария
deusgorg

Что имеется ввиду? Машинный перевод? Или "вживую" (как на переговорах)?

Ответить
Развернуть ветку
Никого не спас

пока ИИ на требование заказчика "ну хочу сайт заебумба ваще, колбасу продавать" не будет делать "заебумбу" - всегда будет прослойка между заказчиком и программой, которая будет объяснять программе чо надо (собственно что сейчас программирование и делает)

Ответить
Развернуть ветку
velvetdust

Эту роль тогда скорее технические аналитики будут занимать, а не программисты

Ответить
Развернуть ветку
Укрошофист

В ближайшие 50 лет ничего не изменится. Хорошие программисты как были востребованы, так и будут.

Ответить
Развернуть ветку
Всеобщий татарин
В идеале должна получиться компьютерная программа, которой можно словами описать желаемое приложение (или даже игру), нажать кнопку и через какое-то время получить готовый продукт

Восспиди, ну наконецто появится игра, где можно будет грабить корованы! Я джва года ждал…

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Обратный жар

можно на тж заменить вечно пьяную обезьяну на ИИ уже?

Ответить
Развернуть ветку
Математический ГОСТ

Я хочу оторвать руки тому кто писал личку в комитете, робат

Ответить
Развернуть ветку
Правоохранительный американец

на ТЖ уже давно работает вечно пьяный ИИ

Ответить
Развернуть ветку
1 комментарий
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Любой химик

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
2 комментария
Фантастический теркин30см

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

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Никита Логинов
Автор

Когда нейросеть сможет вкладывать душу в текст.

Ответить
Развернуть ветку
Заключенный чайник

когда нейросеть научится не только писать, но и периодически рваться

Ответить
Развернуть ветку
2 комментария
Генетический чувак

Комментарий недоступен

Ответить
Развернуть ветку
Отдаленный корабль

Да кто такой этот ваш ИИ нахуй

Ответить
Развернуть ветку
Артур Мохов

Это if else

Ответить
Развернуть ветку
Кирилл Деревянко против войны

Как по мне, ещё очень много времени пройдёт, прежде чем заменит. Сейчас у каждого в телефоне камера, по качеству превосходящая многие фотоаппараты 20 летней давности. Фотошоп, фильтры в инстаграмме, редактирование одной кнопкой, но при этом профессиональные фотографы никуда не делись.
Так же и здесь. Был юкоз, потом появился целый зоопарк конструкторов сайтов, но при этом сайты до сих пор делают. Я 15 лет слышу, что php умрёт, но как 15 лет назад большинство сайтов работало на php, так до сих пор и работают.
Так что можно смело вливаться в айти, но нужно помнить, что тебе придётся постоянно развиваться, т.к. знания быстро устаревают. Зато там интересно.

Ответить
Развернуть ветку
Miras Mynzhassar

Я мечтаю «вайти» уже несколько лет. Пытался и бросал Swift несколько раз.
Смотрю и завидую разработчикам, но не знаю с чего начать. Подскажите Христа ради

Ответить
Развернуть ветку
3 комментария
Президентский теркин30см

а вот боты давно могут заменить комментаторов тж

Ответить
Развернуть ветку
Oldfag TV

такое ощущение, что уже давно

Ответить
Развернуть ветку
1 комментарий
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
God Damn

оооой бля, не забывайте кто это придумал, хуй вам ML ебный!!!!

Ответить
Развернуть ветку
Электронный яд

Если коротко - автоматизировали гугление и копипаст со stackoverflow?

Ответить
Развернуть ветку
Genesi5 ­

Журналюги опять показывают свою некомпетентность в вопросе.

Ответить
Развернуть ветку
Мучительный файл

@Аккаунт удален что мне теперь делать?

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
2 комментария
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Преступный Гоша

Отличная статья (не считая размытых сносок на закрытые источники, надеюсь автор их открывал сам). Пара моментов

И эти языки используются до сих пор — например, на Prolog написан один из компонентов «ИИ-компьютера» IBM Watson.

Во-первых, на Prolog там только часть и сомневаюсь что не какое-то дикое Legacy из 90-х. Во-вторых, стоит упомянуть что из себя этот Ватсон представляет и как у него дела (можно просто вставить ссылку )0))
https://www.nytimes.com/2021/07/16/technology/what-happened-ibm-watson.html

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

Не с середины, а с конкретной работы 12-го года, конкретных людей, которая взорвала бенчмарк ImageNet
https://papers.nips.cc/paper/2012/hash/c399862d3b9d6b76c8436e924a68c45b-Abstract.html

Ответить
Развернуть ветку
Никита Логинов
Автор

Спасибо, ценные дополнения!

Ответить
Развернуть ветку
1 комментарий
Преступный Гоша
Язык ассемблера (он отличался для каждой модели компьютера) открыл вторую эпоху программирования — которая, впрочем, продлилась недолго.

И ссылка на книгу https://books.google.ru/books?vid=ISBN0132569035

Что хотел сказать этим автор? На что конкретно ссылался?

Ответить
Развернуть ветку
Никита Логинов
Автор

Что её надо прочитать!

Ответить
Развернуть ветку
2 комментария
sahk.com

Если кто-то думает что IT = программисты (судя по заголовку), он сильно заблуждается. Программистов в IT меньше 5% от всех айтишников.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
6 комментариев
Реальный жар

Да. Да.

Ответить
Развернуть ветку
Математический ГОСТ

Да

Ответить
Развернуть ветку
Идеальный браслет

Погромисты (будут) переоценены

Ответить
Развернуть ветку
Командный корабль

В айти идти никогда не поздно

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
deusgorg

Для меня программирование- китайская грамота, такая тема может была бы полезна например в деле программирования так называемых умных домов и прочей такой же хрени- умный холодильник или утюг... хотя на хер. Я ленив и предсказуем. 8=)

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Крестьянский единорожек88

Надеюсь, это поможет отправить программистов в армию

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
President Biden

In America, we believe that every programmer has a right to be defeated by AI.

Ответить
Развернуть ветку
Иван Пахомов

Есть одна истина - программистов автоматизируют в самую последнюю очередь

Ответить
Развернуть ветку
nifago

Тот самый Андрей Карпати сейчас лид разработки автопилота Тесла, и иногда делает достаточно интересные доклады, где как раз показывает, как они делают чёрный ящик менее чёрным. Начинают с гибрида большого числа нейросетей и логических правил поверх, с кучей гиперпараметров (у теслы в отладочном режиме их видно, коэффициенты типа 0.00000000001 доставляют), выявляют связаныне области и выделяют уже новые более высокоуровневые сети, которые выбирают в себя ансамбли и гиперпараметры. Фактически, они повторяют эволюцию мозга (хотя он это так не называет).

Ответить
Развернуть ветку
Никита Логинов
Автор

Это крайне интересно, спасибо за наводку!

Ответить
Развернуть ветку
Валерий Колесник

Среди человеков всегда находились те, кто искал обходные пути. Философский камень, вечный двигатель, а теперь искусственный интеллект.
Как можно строить искусственный интеллект, если не разобрались что такое естественный интеллект.

Ответить
Развернуть ветку
Виктор Мерзляков

Как человек, пишущий код за деньги, заявляю - все эти игрушки были и будут бесполезны. Решать реальные задачи бизнеса (работа программиста as is), а не "запрашивать твиты по апи" - процесс, в любом случае требующий того, чего у нейросетей нет и не будет вплоть до GAI, так что без работы мы не останемся ещё очень долго.
А вот подсказки и хинты - вещь удобная и натренировать ML на них вполне можно и нужно. Даже на бесплатной версии 30% кода за меня фактически пишет Tabnine, несмотря на то, что самостоятельно писать код эта штука очевидно не способна (не реклама).

Ответить
Развернуть ветку
Читать все 97 комментариев
null