Преход към ново кодиране: OpenAI и Codex
Най-новата иновация на OpenAI, Codex AI агент, представя нов подход към кодирането – “vibe-coding” среда, задвижвана от ChatGPT-подобен интерфейс. Докато концепцията може първоначално да изглежда като трик, възможностите на новия Codex агент са забележително впечатляващи. OpenAI е етикетирал Codex като research preview, което показва, че той все още е в процес на активна разработка. В момента е достъпен за абонати на ChatGPT Pro, Enterprise и Team-tier, с планове за разширяване на наличността до Plus и Edu потребители в близко бъдеще.
Според съобщението на OpenAI, името Codex е свързано с развиващ се инструмент за кодиране от 2021 г. В тази дискусия "Codex" се отнася до новообявената версия. Codex се намира на сървърите на OpenAI и се интегрира с GitHub хранилища. Демонстрациите показват, че Codex функционира като допълнителен програмист в рамките на екип. Той може да бъде инструктиран да разреши поредица от грешки и да изпълни задачата съответно. Той също така търси одобрение за модификации на код, въпреки че изглежда е способен самостоятелно да модифицира код.
Codex може да анализира и модифицира код, да идентифицира специфични проблеми, да посочва области за подобрение и да изпълнява други задачи за кодиране и поддръжка. Всяка задача инициира нова виртуална среда, позволяваща на AI да се справи с всичко - от концепция и дизайн до unit testing.
Парадигма в Кодирането
Това означава истинска промяна в парадигмата на кодиране. Предишната помощ за кодиране с изкуствен интелект включваше предимно функции за автоматично завършване, автоматично генериране на редове или блокове код въз основа на съществуващ код. Технологията е прогресирала до точката, в която AI може да пише или отстранява грешки в малки сегменти от код. Това е аспектът, който ме интересуваше особено по отношение на програмирането тестове на ZDNET.
Друга роля за AI е анализът на цялостната система. Наскоро проучих нов инструмент за Deep Research, който може да деконструира цели кодови бази и да предоставя code reviews и препоръки. Codex сега достига точка, в която цели задачи за програмиране могат да бъдат поверени на AI в облака, подобно на делегиране на задачи на други програмисти в екип или млади програмисти, които учат code maintenance. OpenAI описва това като "Agent-native software development, където AI не само ви помага, докато работите, но и се заема с работа самостоятелно."
Стартиращото видео демонстрира способността на Codex да управлява множество задачи едновременно, всяка от които работи в отделна, изолирана виртуална среда. Програмистите възлагат задачи на агента, който след това изпълнява работата самостоятелно. След завършване агентът предостави резултати от тестове и предложи промени в кода. Демото включваше Codex, изпълняващ bug fixes, сканиране за typos, предлагане на task suggestions и извършване на project-wide refactoring (модифициране на код за подобряване на структурата, без да се променя поведението).
Senior developers и дизайнерите са запознати с артикулирането на изисквания и прегледа на работата на другите. Използването на Codex няма да въведе значителни промени за тях. Въпреки това, разработчиците, които нямат силни умения за формулиране на изисквания и преглед, може да намерят за предизвикателство управлението на Codex. Въпреки това, ако инструментът работи както е демонстрирано, Codex ще даде възможност на по-малки екипи и индивидуални разработчици да постигат повече, да намалят повтарящите се задачи и да реагират по-ефективно на отчетите за проблеми.
Потенциални Капани и Стратегии за Намаляване
Ранните преживявания с възможностите за кодиране на ChatGPT разкриха тенденция да се губи фокус или да се отклонява от предвидената насока. Докато това не е катастрофално за отделните блокове код, това може да доведе до непредвидени и проблематични последици, ако на кодиращ агент бъде позволено да работи с ограничено наблюдение. За да се справи с това, OpenAI е обучил Codex да се придържа към инструкциите, посочени във файл AGENTS.md. Този файл, разположен в хранилището, позволява на програмистите и екипите да ръководят поведението на Codex.
Той може да включва инструкции относно конвенции за именуване, правила за форматиране и всички други последователни насоки, желани по време на процеса на кодиране. Той по същество разширява настройките за персонализация на ChatGPT към екипна среда, ориентирана към хранилище. Освен това, OpenAI представи версия на Codex, наречена Codex CLI, която работи локално на машината на разработчика. За разлика от базирания в облака Codex, който работи асинхронно и предоставя отчети след завършване, локалната версия работи чрез командния ред на програмиста и функционира синхронно.
По същество програмистът въвежда инструкция и изчаква процесът Codex CLI да върне резултат. Това позволява на програмистите да работят офлайн, като използват локалния контекст на своята активна машина за разработка.
Research Prototype с Добър Потенциал
Демонстрацията беше впечатляваща, но developers подчертаха, че това, което показват и пускат, е research prototype. Докато предлага това, което те нарекоха "магически моменти", то все още изисква значителна разработка. Опитвам се да разбера конкретните последици от тази технология за бъдещето на разработката и собствения ми процес на разработка. Моят основен продукт е open-source WordPress plugin, със proprietary add-on plugins. Codex би могъл потенциално да анализира публичното хранилище за open-source основния плъгин.
Въпреки това, би ли могъл Codex да управлява връзката между public repository и множество private repositories като част от един цялостен проект? И как би се справил, когато тестването включва не само моя код, но и spinning up цялата допълнителна екосистема – WordPress – за оценка на производителността? Като solo programmer, осъзнавам потенциалните ползи от инструмент като Codex. До дори абонаментът Pro от $200 на месец може да си струва. Наемането на човешки програмист би струвало значително повече, ако приемем, че бих могъл да извлека осезаема, монетизируема стойност от него.
Като опитен team manager и communicator, се чувствам комфортно да делегирам задачи на нещо като Codex. Не е значително по-различно от комуникацията с член на екипа над Slack. Фактът, че Codex предоставя препоръки, чернови версии и очаква моето одобрение, осигурява усещане за сигурност в сравнение с просто да му позволя да работи свободно в моя код. Това отваря интригуващи възможности за нов жизнен цикъл на разработка, където хората дефинират цели, AI скицира потенциални реализации и след това хората или одобряват, или пренасочват AI за друга итерация.
Неотговорени Въпроси и Бъдещи Последици
Въз основа на предишните ми преживявания с AIs за кодиране, Codex може потенциално да намали времето за поддръжка и да ускори доставката на fixes до потребителите. Въпреки това, неговата ефективност при добавяне на нови функции въз основа на спецификационен документ остава неясна. По същия начин, трудността при модифициране на функционалността и производителността след внедряването на Codex тепърва ще бъде определена. Трябва да се отбележи, че AI кодирането се развива в множество компании с подобно темпо. Скоро ще публикувам друга статия за GitHub Copilot’s Coding Agent, която споделя някои функционалности с Codex.
В тази статия изразих опасения, че тези кодиращи агенти могат да изместят junior и entry-level програмистите. Отвъд последиците за човешките работни места, има и въпросът за критичните възможности за обучение, които могат да бъдат изгубени, ако делегираме средната фаза от кариерата на developer на AI.
Индустрията на Софтуер "В Неизвестното"
Има песен в Disney’s Frozen II, наречена "Into the Unknown", изпълнена от Idina Menzel. Песента отразява вътрешния конфликт на главния герой между поддържането на статуквото и навлизането "в неизвестното". С agentic software development, отвъд само AI кодирането, цялата индустрия на software се впуска в пътешествие "в неизвестното". Тъй като все повече разчитаме на базирани на AI системи за разработване на нашия software, броят на квалифицираните поддръжници вероятно ще намалее. Това е приемливо, докато AIs продължават да функционират ефективно и остават достъпни.
Въпреки това, позволяваме ли на основни умения да атрофират и жертваме ли добре платени работни места за удобството на делегиране на все още несъзнаваща, базирана в облака инфраструктура? Времето ще разкрие отговорите и се надяваме, че това разкритие няма да настъпи, когато ни остава малко време. Бихте ли обмислили да делегирате реални задачи за разработка на инструмент като този? Какво мислите, че ще бъде дългосрочното въздействие върху software teams или индивидуални developers? И притеснявате ли се от загубата на критични умения или роли, тъй като все повече от code lifecycle е поверен на AI?