Камилла Мораес (Camilla Moraes), мениджър по продуктите в GitHub, започна дискусия за добавянето на възможност за автоматично блокиране на ненужни pull-запросове, генерирани от AI асистенти, изпратени без ръчна проверка и непоследващи изискванията за качество. Подобни промени създават допълнителна натовареност за поддържащите, които са принудени да отделят време за разглеждане на безполезен код.
Като краткосрочни решения на проблема се разглежда възможността за бързо изтриване на pull-запросове през уеб интерфейса (изтриване без запазване в историята, вместо да се маркират като затворени) и използването на конфигурируеми права за изпращане на pull-запросове, позволяващи на собствениците на репозитории да разрешават предаването на промени само на участници, които вече са правили промени.
От решенията в дългосрочен план се споменава разширяване на модела на правомощията и предоставяне на поддържащите инструменти за гъвкаво определяне на правилата, които определят кой има право да създава и преглежда pull-запросове и на какви изисквания трябва да отговарят pull-запросовете. Освен това се предлага да се включи AI за определяне на съответствието на изпратената промяна с правилата и стандартите за качество на всеки проект (например, зададени в файла CONTRIBUTING.md), както и за разпознаване и специално маркиране на промени, подготвени с помощта на AI.
От изказаните в процеса на обсъждане предложения също така може да се отбележи създаването на филтър, който забранява изпращането на pull-запросове без предварително откриване на issue-дискусии с обяснение на причините за реализиране на промени, както и информиране на поддържащите за постъпили pull-запросове от начинаещи само след успешно преминаване на тестовете в системата за непрекъсната интеграция.
Според статистиката на един от ключовите разработчици на фреймворка genkit, едва едно от десет изменения, подготвени в AI, отговаря на критериите за отваряне на pull-запрос. Един от участниците в проекта Azure Core Upstream обобщи основните опасения на поддържащите:
- Нарушаване на модела на доверие при прегледа — преглеждащите не могат да бъдат сигурни, че изпратилият изменението е написал предоставения код и разбира неговата същност.
- Генерираните от AI асистенти pull-заявки могат структурно да изглеждат коректно, но да са логически неверни, небезопасни или неподледени в работата си.
- Практиката на рецензиране ред по ред остава задължителна, но не може да бъде мащабирана в условията на растящите промени, генерирани чрез AI асистенти.
- Съществува дискомфорт при приемането на pull-заявки от страна на придружаващите, когато те не разбират напълно промените, докато AI асистентите опростяват предаването на големи промени без дълбоко разбиране.
- Когнитивното натоварване на придружаващите се увеличава, тъй като те вече трябва не само да проверяват кода, но и да оценяват дали авторът му разбира него.
- Появата на AI инструменти не е намалила, а е увеличила натоварването на придружаващите.
Допълнително може да се отбележи проведеното от няколко европейски университета проучване за влиянието на вайб-кодирането върху екосистемата на отворените проекти. Изследователите разработиха модел на равновесие на екосистемата с отворен код, който показа, че обратните реакции, които преди бяха отговорни за експлозивния растеж на отворените проекти, след разпространението на вайб-кодирането създават обратен ефект — намаляват броя на разработчиците, готови да споделят код, намалява разнообразието на отворените проекти и се снижава качеството. Един от вариантите за решаване на проблема е внедряването на модел на финансиране, наподобяващ Spotify, при който AI платформите преразпределят доходите от абонаменти за услуги между разработчиците, в зависимост от степента на ползване на проектите.
При вайб-кодинга разработчиците спират да анализират наличните решения, да четат документацията, да изпращат съобщения за грешки и да взаимодействат с отборите, разработващи отворени библиотеки. Отворените проекти губят обратна връзка с потребителите. Новите проекти стават по-трудни за пробив, тъй като AI асистентите сами подбират необходимите отворени библиотеки на база информацията, имала се по време на обучението на модела. Заради спада в пряката връзка с потребителите, монетизацията на отворените проекти, свързани с услуги за поддръжка и показване на реклама/събиране на дарения на сайтове, страда. Поради намалената обратна връзка, качеството пострада. От друга страна, вайб-кодинга повишава производителността при създаването на нови продукти, базирани на чужд код, и улеснява внедряването на нови библиотеки.
Като пример може да се посочи проектът Tailwind CSS, чиито изтегляния от хранилището NPM продължават да нарастват, но трафикът към документацията от началото на 2023 г. е намалял с 40%, а приходите са спаднали с 80%. Също така е отчетено намаление на активността на обсъжданията в Stack Overflow с около 25%, шест месеца след старта на ChatGPT.


Източник: opennet.ru
