Короткая заметка на тему нейронок.

Я вот вообще не понимаю этот вой на тему «ой-вей, программисты больше не нужны». Типа, теперь может сидеть один промпт-инженер, который просто будет писать грамотные запросы, а нейронка всё будет делать сама.

У меня есть один знакомый. Он - как бы правильно назвать его позицию... - наверное, консультант по генерации звука. Такой творческий человек, который прямо сильно шарит, как должно звучать что-то, чтобы было прямо хорошо, чтобы людям нравилось. А ля такой продюсер. Песни не пишет, но говорит, как докрутить, чтобы зашло в массы и стало продаваться. И вот он решил, что теперь ему не надо пытаться объяснить разрабам, что сделать. Вместо этого он пытается объяснить это нейронке. Он загружает ей контекст в виде исходного кода какого-то синтезатора, говорит, что ему надо оптимизировать быстродействие, взять из него принцип генерации, убрать всё остальное, добавить какие-то хотелки, описанные в промпте, и... происходит магия, и нейронка выдаёт результат, и это выглядит как ПО, и иногда оно даже работает. Но что-то я не слышал, чтобы оно хоть раз заработало как надо. И это не удивительно: человек не то что С++ не знает, он даже гитом пользоваться не умеет. Но горы сгенерированного кода создают иллюзию, что ещё чуть-чуть - и нейросеть сделает круто, и однажды он получит конкурентоспособный коммерческий софт. Но я в этом сомневаюсь.

Лично мой опыт использования нейронки такой: приходится многократно допиливать сгенерированный результат. После каждой генерации приходится тщательно вычитывать все изменения, тестировать, проводить юнит-тестирование и местами дорабатывать руками.

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

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

tg: @frontend_love