Обновить

Будущее ИТ и что в нём делать разработчику

Время на прочтение15 мин
Охват и читатели20K
Всего голосов 26: ↑21 и ↓5+17
Комментарии41

Комментарии 41

Если требуется получить какой-то результат, ИИ справляется. Если необходимо получить конкретный результат - приходится делать самому. Вопрос в контексте и объеме. Не факт что полное описание задачи проще кодинга, с учетом ограничений ИИ.

Будущее наступит.

Но пока кодинг от ИИ более напоминает фразу "куда снаряд попал - там и цель".

Но пока кодинг от ИИ более напоминает фразу "куда снаряд попал - там и цель".

Ну то есть нет больших отличий от постановки ТЗ на разработку хреновым менеджером продукта?

Отличие есть, а ТЗ остается константой.

Подготовка ТЗ нейронкой по описанию "хочу что бы было все хорошо" делает ситуацию еще более загадочной.

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

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

Код нейронки, даже если ее обмазать скиллами, ограничениями и условиями каждый раз будет отличаться из-за ее фундаментальной природы. Особенно весело будет, если все это приведет к репозиториям с инструкциями для агентов, которые каждый раз будут что-то собирать по ним🫪

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


А насчёт программиста..
Насчёт компилятора вы ошибаетесь — в самом стандарте C++ прописано буквально следующее:

“An instance of the abstract machine can thus have more than one possible execution for a given program and a given input.”

Да и другие компиляторы позволяют себе люфт на одном и том же входном коде

речь ведь о том, что мы не смотрим насколько читаемый код на ассемблере

Вы же здесь говорите именно про себя.

Для тех, кто поддерживает код на ассемблере, читаемость кода также важна как и на любом языке))

Наверное, в этом люфте есть суть. По сути, вычислительная машина может быть построена хотя бы из пластика с дырочками. Например, Роберт Мартин в книге «Идеальный Программист» вспоминает свой первый компьютер: Digi-comp I

Посмотрите: никакой электроники!
Посмотрите: никакой электроники!

И вот, сейчас я переформулирую некоторые привычные вам термины, используя знание о том, что компьютер может работать БЕЗ электрического тока. Вы готовы?

  1. Программа - это описанная последовательность действий, выполняемых механической или электронной машиной, в зависимости от того, как и из чего она сконструирована, содержит ли подвижные части или пути для передачи электрического сигнала.

  2. Язык программирования - это абстракция над математическими моделями, позволяющая реализовать эти модели на конкретной механической или электронной машине. Например, Haskel реализует функции и лямбда-исчесление. Python реализует ООП, в которое входят, например, теория множеств, теория категорий и т.д.. По сути, ЯП позволяет вам выразить ваши математические формулы, вычисления, принципы для современной архитектуры компьютера (ROM, RAM, L-caches, CPU, GPU, system bus). Для последователей Ады Лавлейс, например, ЯП были другими и позволяли выразить их математические изыскания для машин с колёсами и рычагами. ЯП превращает ваши формулы в инструкции для машины (то есть, в программу).

  3. Программирование - это процесс записи математических вычислений, алгоритмов, формул и структур на языке программирования.

  4. Разработка программного обеспечения - это процесс автоматизации потребностей человека, группы людей или человечества при помощи программирования. Также, включает в себя анализ, проектирование и тестирование.

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

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

Безумная, опасная и инфантильная мысль, что некая магическая программа может принимать за вас решения и нести за них ответственность.

Люди, наверное, хотят снизить когнитивную нагрузку потому что думать тяжело, давайте признаем что не каждому заставлять себя думать посильная задача)

Давайте, будем честными: таким людям не место в АйТи. Пусть идут асфальт укладывать, или банки с огурцами в Пятёрочке расставлять.

Контраргументы будут? Или вы зашли поплакаться о том как тяжело дурачкам работать в IT?

Автор, а вот я как реверс инж хочу у тебя спросить вопрос.

А что прости будет делать нейронке сейчас попроси ты её достать токен хэндшейка с сервером игры которые умерли лет так цать назад?

Или тут мы вернулись в 80е и пошли в x64dbg ассемблерный листинг читать и искать оффсет?

Второй кейс, условный крекинг того, что давно не продаётся?

Или не продаётся по причине, сейчас для России актуальной?

Окей, нейрослоп нейронке написать может, а сделать патчер для бинаря или exe который будет работать имея нулевое знание системы, пакера, защиты?

Позволю себе заметить, ассемблере жив.

Считали биты с байтами и будем считать. По крайней мере пока в этом есть корыстный умысел. Но ответов ваших жду.

Ну а насколько этот "люфт" принципиален? Я все же подозреваю, что инструкция вида int a = 2 + 2 будет в дебаге выдавать 4 независимо от этих технических нюансов, иначе я не представляю, как вообще мы писали программы ежедневно не обрушая прод.

А "люфт" ЛЛМки может привести, например, к удалению данных из прод-базы)) Его границы словно бы фундаментально, несопоставимо шире. Как и в целом границы выдаваемого результата, впрочем.

Так же не очень понимаю, откуда убеждение, что баги и уязвимости в генерируемом коде внезапно уйдут через 2-4 года. На мой взгляд, вероятность этого не уйдет ни у человека, ни у тем более базирующейся и обучающейся на его опыте ЛЛМ вообще никогда. Здесь разве что какой-нибудь вундервафли вроде AGI ждать. Да и с чего бы практикам по написанию чистого кода умирать. Может, ИИшка в целом неплохо ориентируется в лапше, но, предполагаю, что риск галлюцинации или неправильного вывода так или иначе повышается и у ЛЛМки, когда кодовая лапша сильно отклоняется по форме от выборок, на которых ЛЛМ обучали. Не словило галюн и все-таки подкапотные статистические эвристики отработали правильно - повезло. Но риск повысится.

зачем все эти паттерны, которые мы проходили на собеседованиях?

Точно современный программист, паттерны нужны только чтобы собеседование пройти, классика))

А вы точно программист? Компилятор надёжен как швейцарские часы, выдает гарантированно детерминированный результат

Вы уверены в этом? Или вы в это верите? :)

На счет недетерминированности как фундаментальной природы нейросетей готов поспорить https://habr.com/ru/companies/docdoc/articles/1023416/

Стоит читать прогнозы, чтобы узнать какой вариант будущего не случится никогда😂. Неблагодарное это дело. Почему то всегда случается так, как никто не предполагает.

Ага, если только ты не Жириновский 😅

Генератор прогнозов, небольшая часть из которых сбывается. Вспоминают только сбывшиеся.

Ну раньше говорили к концу года иишечка начнет за всех код писать, теперь 2-4 года)) потом 5-10 лет

Это просто маркетинг, чтобы подороже продать продукты и бизнесы, связанные с ИИ

Да понятно, недавно же кто-то из ИИ мейнстримеров говорил что ии ориентировано на код потому что там водятся деньги) не потому что она хорошо его пишет, прошу заметить))

Занятно.

Чем больше читаю подобные статьи, тем больше хочется убежать в нео-луддиты, амиши или делать ферму гусей.

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

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

Аффтор, ну ты воопще! Ты пишешь:

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

И тут же следующей фразой заявляешь, что LLMка будет в архитектуре хуже человека (еще много лет). Причем, в архитектуре, где много лирики и свободного текста. Но при этом не в коде, который надо не просто написать, а протащить через прокрустово ложе строгих формальных правил компилятора.
Где тут логика?
Ну ладно, рисовать картинки и схемы - это дополнительный слой сложности, на котором часть результата портится. Но для выстраивания "в уме" стройной архитектуры не нужно умение чертить и рисовать, это то у LLMки должно получаться хорошо (и, кстати, получается).
Так что это очередное самовнушение, выдавание желаемого за действительное. Я уникален, никакой ИИ меня не заменит (пока). Пфф.

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

Все очень интересно и я почти со всем согласен, кроме мнения о сложности:

Только борьба со сложностью позволяет подняться на следующий уровень

Считаю, что наоборот все. Каждый новый уровень управления сложностью двигает человечество на уровень вверх. Это очевидно же!

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

Сейчас другая проблема нарастает. Ещё до появления ИИ появилась. С развитием интернета и информационных технологий в целом. Эта проблема только усугубляется.

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

Решений тут как минимум 2:

  • Это прорыв в биотехнологиях и нейроимплантах. Позволит перестроить мозг так, чтобы любые запросы на вычисления или данные уходили в чип. Мозг будет получать уже готовый результат. Почти не отличается от обычного мышления. Только сложность вычисляемых задач изменится в тысячи раз.

  • То самое упрощение через новые абстракции. Более простой путь, но он значительно хуже. Качественно хуже. В этом пути нет развития. Более того, этот путь чреват очередным усложнением. Причем цикл упрощение/усложнение будет сокращаться с каждым разом, пока не упрется в предел. В какой-то момент технологии станут такими сложными, что трудно будет не то что новое придумать, но даже поддерживать старое будет тяжело. И начнется деградация и упадок. Вы наверное слышали, что у человеческих цивилизаций есть сроки жизни. Вот это про это.

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

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

Даже сами сайты изменятся. В моде будет дополненная реальность. Без всяких громоздких устройств в виде очков. А когда нейрочипы сильно разовьются, лет через 30, то там уже виртуальная реальность в моду войдёт. Со всеми ощущениями: картинка, звуки, осязание и обоняние и т.п.

Могу ещё много чего нафантазировать. Но считаю что это наше ближайшее будущее. Уже лет через 10-15.

Первый путь только увеличивает нагрузку на мозг. Как в старую машину вставить мощный двигатель. Будет создавать ещё большую нагрузку на старые структуры.

Может мы уже нащупали причину конца цивилизаций в виде ИИ. Внешний думатель, который забирает понимание мира, но оставляет все выглядещем как было (на некоторое время).

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

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

Да, у мозга скорость мышления низкая, по сравнению с машиной. Но вот вам аналогия - наше зрение. Мы воспринимаем все в динамике, как видео. А не покадрово или по пикселам. Весь окружающий мир мы воспринимаем цельно. Аналоговым образом. Укол булавкой мы воспринимаем в области, а не в конкретной точке. Звук для нас в норме не разбивается на составляющие. Хотя в реальности - это лишь наборы из тысяч и миллионов сигналов от нашей нервной системы. И для нашего мозга не проблема это все обработать.

Точно также сигналы от нейрочипа будут восприниматься. Цельно. В обе стороны это работает.

Мозг у многих уже не может подстроиться к постоянному получению информации из гаджетов. Вы предлагаете встроить неиссякаемый источник информации в мозг.

Судя по всему, вы просто не понимаете физику процесса. Отсюда и такие аргументы.

Для этого надо немного ознакомиться с анатомией человека и тем, как работает наш мозг и сенсорная система. И что такое нейросеть.

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

Эта фраза отражает ваше полное непонимание сути. Вы не отличаете инструмент от самой информации.

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

У вас больше не сядет зрение от долгих часов перед экраном ТВ, тлф, компа, ноута, книг и т.п.

А помимо прочего мудрец ещё следит за вашим здоровьем. Предупреждает о проблемах.

Получается смартфон в мозге. Ещё более доступный, чем внешний гаджет сейчас. Вы говорите, что это упростит жизнь. Я уверен, что для большинства это ещё больше увеличит нагрузку. Из-за желания постоянно быть "онлайн". В данном случае это возможно физически (не нужно что-то держать в руке и переводить взгляд).

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

Вы с философией дружите? Очень интересная... наверное, все же наука. Хотя и не точная. Гегель когда-то вывел закон "количества в качество". Я согласен с вами, что информации много. Но проблема именно в том, что мы пока не способны физически/биологически обрабатывать такие потоки без ущерба для себя, своей психики.

Сейчас полмира в тихой панике или депрессии.

Я говорю про эволюцию. Нейрочип это такой же орган, как ваша нога или желудок. Только созданный искусственно для усиления возможностей мозга. Это тоже эволюция. Не биологическая. Но вполне естественная. Необходимая. Ожидаемая. Лет 10-20 до начала массового внедрения ещё пройдет. А лет через 30-40 дойдет до уровня, когда это станет необходимым для жизни органом.

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

так я ровно об этом же ) может плохо сформулировал? ))

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


Сложность никуда недолжна деваться сама по себе. Так и должно же быть — мы делаем всё более сложные и впечатляющие штуки, скоро в дальний космос полетим ) Без сложных вещей этого не осуществить, вопрос лишь в том, что мы научаемся их делать и сложность укрощать. Если сложность в абсолютном смысле спадет — это будет признак регресса скорее всего. Всё гениальное просто, но сделать просто — гораздо сложнее, чем наоборот 🤓

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

Один из возможных вариантов... Жена занялась vibe coding'ом - писала агента, который отвечает на вопосы не вовремя случившегося клиента, например ночью, или в выходной. Что я увидел:

  1. И правда, очень многое ИИшечка взяла на себя и что-то приготовила

  2. Это "что-то" не заработало, и пришлось слазить немного в кроличью нору, чтобы понять, почему оно не работает.

Потом я сам решил отдать ИИ на оптимизацию запросик на Постгре с 5-6 CTE. Первая попытка ни к чему хорошему не привела - оптимизированный с помощью ИИ запрос работал с той же скоростью. Тогда я подумал головой сам, сильно переписал запрос, получил ускорение примерно х2, и отдал его на оптимизацию. Вторая попытка дала мне 20% увеличения скорости после работы ИИ.

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

Я согласен с автором в том, что ИИ- инструменты поднимут уровень абстракции. Писали в кодах, потом - на ассемблере, потом дошли до Kotlin, Go и Rust. Возможно, через х лет люди будут писать на ещё более абстрактных языках. Но прошу не забывать, какие идеи обуревали создателей SQL, и сколько сейчас стоит хороший знаток SQL и пары DBMS не рынке ;-)

Из личного опыта:
1) если умеешь сам хорошо, то ИИ нужен только чтобы сгенерить основу или автоматизировать рутину (потому что если ИИ всё отдать, то больше времени уйдёт на отладку с проверками)
2) иначе - ИИ опасно, т к ты и проверить не сможешь, т е пока не разбираешься как раз хорошо самому с нуля погружаться ну или отдать тому кто разбирается

Что ИИ все или почти все сделает за человека-это маркетинг, по сути ИИ - это более развитое Т8 или кольца Маркова и не более

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

Провокационный вопрос: а зачем нам тогда вообще языки программирования?

Все наши языки — Python, Java, C#, Kotlin — создавались не для компьютера. Они создавались для нас с вами, для белкового мозга, чтобы человеку было удобно упаковывать сложность, заворачивать свои мысли и передавать их на исполнение процессору. Компьютеру они не нужны. Он мыслит математикой.

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

Но на это есть возражение. Компьютер думает математикой, а вот LLM нет. Современные LLM думают ближе к тому как думает человек, чем к тому, как думает компилятор. И, как и человек, оставляют за собой право на некоторую неточность. Им тоже проще и эффективнее набросать код на высокоуровневом языке программирования и отдать последний шаг детерминированной программе-компилятору. Даже чисто с точки зрения поиска ошибок им проще обработать ошибку от компилятора, чем отлаживать неопределённое поведение CPU вызванное одной неверной бинарной командой. То есть, языки программирования вообще - нужны. Но совершенно не исключено появление новых языков программирования чисто для ИИ. Как уже появляются внутри ИИ собственные "обычные" языки. Правда, для таких языков понадобятся новые компиляторы. Но вот компилятор ИИ скорее всего написать сможет.

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

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

что простите? Не для всех задач с кодом нужны исходники вашего проекта или какие-то файлы в принципе. Если вам нужно добавить в проект что-то принципиально новое, то вы наоборот будете забивать контекст ненужной информацией из вашего проекта - не говоря уже о лишнем расходе токенов (если модель платная)

Я думаю многим забываются и не рассматриваются риски использования ИИ

  1. Слив данных.

  2. В закрытых предприятиях часто нет выхода в интернет, а свой дата центр для ИИ... Ну вы поняли

  3. Цензура и регулирование приведёт неизбежно к тому, что всякие белые и чёрные продукты не смогут разрабатываться на ИИ. Как утрированный пример для наглядности - запретят слово "наркотики" и дилеры для разработки сайта на теневом интернете будут прибегать к людям, ровно как и клиники, которые рекламируют лечение от зависимости

  4. Произойдёт то, что происходит в реальном мире - сначала демпингом (малой ценой условно за токены) привлекут бизнесы, те уволят разработчиков, а когда цены взвинтят - окажется что альтернативы нет уже

  5. Допиливать сам язык программирования (как в python например идёт сложная работа над GIL) вряд ли будет ИИ

  6. Отключение интернета. Уже говорил про закрытые предприятия, а что насчёт белых списков? Вы же в России живёте, наверное должны понимать что в случае чего - обращение к ИИ обрежут. Ладно, допустим до ИИ не обрежут, но сама ИИ в таком случае затупит, так как развитие идёт стремительно и надо чуть ли не каждый день серфить ей интернет для поиска свежей информации или когда речь про R&D или когда свежие законы вышли, и так далее

Короче говоря, ИИ полностью человека никогда не заменит, но может почистить ряды

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

Вот это из какой реальности? Автор писал с агентом алгоритмы управления атомным реактором, или попросту ничего не писал?

Код тестов по объему в разы превосходит основной код. Нейронка выдает за 15 минут столько кода сколько программист за день. Тогда как вы собираетесь писать на него тесты?

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

Про ”разные модели и разные архитектуры сетей” это тоже из альтернативной реальности. Взгляд агента на код определяется контекстом и божьей волей а не моделью или "архитектурой сети" (уже изобрели что то кроме трансформеров?).

Дайте ему другие вводные и он прекрасно найдет у себя же косяки.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации