ИИ/AI, давайте разбираться
От: CEMb  
Дата: 16.02.26 19:19
Оценка: 13 (2) +3 :))
Для начала немного радостного:

Вот везде говорят, что увольняют IT-работников, в том числе программистов и внедряют ИИ.
Обратите тут внимание на правильный порядок событий:
1. Компании пытаются внедрять ИИ.
2. Внедрение ИИ стоит больших денег.
3. У компаний резко кончаются деньги.
4. Приходится в угоду ИИ сокращать персонал.

Вот запомните этот порядок, потому что он именно такой, а не "мы сейчас заменим программистов ИИ-шницей, это так круто!".
Если вас сократили, то 95% вероятность — на вас просто экономят, потому что ситуация с деньгами крайне скверная. А не потому что вы хуже ИИ. Это была радостная новость.

Ок. Идём дальше. Разработка software...
Стоп. Вот тут давайте аккуратно всё по пунктам распишем, потому что меня реально задолбали герои, которые рассказывают, как ИИ отлично справляется с написанием программ.

Скажу сразу: всем этим парням накакать на программистов.

Вот что такое программирование? Серьёзно? По-моему, судя по новостям, все забыли или вообще не знали, что это на самом деле.
Программа — это компактное изложение действий. Для компьютера — это в программа на лаконичном языке программирования. Программист берёт и какую-то формальную логику каких-то действий описывает в коде:

1. Идея -> Код.

Хорошо? Хорошо. Давайте теперь подумаем, мы же хотим работать эффективно? Хотим. А как?

Раньше мы писали код в условном блокноте, потом с консоли запускали компилятор, потом придумали системы сборки, IDE, автоподстановки, сами языки программирования получали новые возможности, библиотеки и фреймворки — чтобы программист мог пропускать многие шаги в процессе "программа — код" или делать их быстрее.
Т.е. если вы реально хотите помочь программисту — нужно всеми способами сокращать время и расстояние, которые проходит мысль в голове до того, как она станет соотвествующим ей машинным кодом. Хороший программист может в голове из общих логических схем очень быстро строить абстрактные конструкции на нужном языке и набивать их руками в коде. Хочется какой-то интерфейс для считывания мыслей и перевода их в код с автоматическим вырезанием мата или запуском компиляции по любому слову на букву "ё", да?

Теперь вернёмся к ИИ.

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

2. Идея -> [промты -> нечто] -> Код.

Тут [промты -> нечто] — это сколько-то итераций.
При этом, мне мои готовые наработки в голове в виде абстрактного кода надо описать более длинным языком, чтобы ИИ понял, что я задумал? Это процедура, обратная программированию. Т.е. нам надо вернуться на шаг назад, чтобы с какой-то непонятной вероятностью сделать шаг вперёд.

— Вот теперь сравните получившиеся пункты 1 и 2 по принципиальной простоте и скорости. Что у нас есть, и что нам предлагают взамен?

Тут ИИ-адепты мне скажут: "И что? Смотри! Можно сказать ИИ «Напиши мне TCP/IP клиента», и он напишет его за доли секунды, потом «Напиши мне TCP/IP сервер» и он тоже его напишет за доли секунды! И у нас на руках будет клиент-серверное приложение ещё до того, как ты напишешь #iclude <iostream> ". Да, всё верно, я согласен, я вообще не противник ИИ, как могло показаться. Но, вот прям тут: а вам нужен абстрактный клиент-сервер с нуля каждые 30 секунд? Ну хотя бы раз в день? Не, ну в месяц? Что, нет??? А почему?

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

Чтоб не грузить вас математикой, вот такой вариант: "ИИ нарисуй кота" — ИИ будет рисовать какого-то конкретного кота. Если вам нужен другой, но тоже конкретный кот, вам надо будет растягивать ваш ИИ-запрос дополнительными условиями. Самым дотошным заказчикам придётся текстом указывать координаты и цвет пикселя в нужных местах. На этом месте уже очевидно, что количество информации для рисования 1 пикселя превосходит 4 байта? Да и в паинте быстрее раз кликнуть, чем с клавиатуры набирать. Но, ладно, кому такое вообще может понадобиться?... Достаточно примерно того самого кота нарисовать, пофиг на отдельные пиксели, да?

Да. Кому-то хватает "обычного" кота. И "обычного" TCP/IP клиента-сервера. Отлично, я только "за".

Но в реальной жизни и в проектах у нас очень-очень много функциональных требований к TCP/IP серверам. Те самые дотошные пиксели кода, которые пришлось бы указывать вручную. Да, в начале всё можно разумно описать промптами. Но чем дальше, тем стоимость кода в промпт-словах больше растёт. Очень быстро наступает момент, когда если по новым требованиям в реальности надо исправить одну строчку, а вы не программист — вам придётся долго объяснять ИИ, что и где вы хотели бы исправить. Я тут даже не касаюсь темы проверки кода, я и так уже много текста накатал, а хотелось уложить мысль компактнее.

Я пишу много кода — который не с нуля. Т.е. проекты, которые созданы давно. Обычно это улучшение или добавление логики, причём разной, это может быть возьня с байтами для оптимизации или потоковой обработки или "крупная" логика по изменению поведения больших блоков кода. Да много всего разного, все знают. В любом случае это всё части больших комплексных систем. И в наше время я параллельно задаюсь вопросом: а можно ли мне этот блок было бы написать/исправить/дополнить с помощью ИИ? Но у меня в голове всё уже обычно в готовом виде, и я понимаю, что чтобы описать ИИ-шке всё точно, со всеми связями и целями — у меня уйдёт на порядок больше времени и текста, чем просто набить руками код… ну вот и где мой нейроинтерфейс, если все эти гении на самом деле так мечтают помочь программистам работать эффективнее?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.