Възможностите на AI chatbots нарастват бързо. Но могат ли вече да кодират и кой се справя по-добре със задачата?
Когато Google пусна Bard, своя отговор на ChatGPT на OpenAI, липсваше функция, която беше доста популярна сред потребителите на ChatGPT: възможността за писане на код. Въпреки това, след масовото търсене, Google даде шанс на Bard, позволявайки му да пише код на десетки езици за програмиране.
Google оттогава говори много добре за това колко добре Bard може да пише и дебъгва код, но как се сравнява с феноменалния ChatGPT? Нека разберем.
ChatGPT срещу. Bard: Езикова поддръжка
Официално Bard на Google може да работи с около 20 езика за програмиране. Те се състоят предимно от популярни като Typescript, Python, C++, Go, Java, JavaScript и PHP. Той все още може да се справи с по-малко популярни опции като Perl и Scala, но не е непременно толкова ефективен.
ChatGPT от друга страна няма официален списък с поддържани езици. Чатботът може да се справи с повечето от това, което Bard може да се справи, и още десетки. ChatGPT може да пише, отстранява грешки и обяснява код както на по-нови, популярни езици за програмиране, така и на
по-малко популярни, наследени езици като Fortran, Pascal, BASIC и COBOL.Поддръжката обаче не означава непременно умения. Изпробвахме някои прости задачи на избрани езици като PHP, JavaScript, BASIC и C++. Както Bard, така и ChatGPT успяха да осигурят популярните езици за програмиране, но само ChatGPT успя да обедини убедително програми на по-стари езици. Така че по отношение на езиковата поддръжка даваме победата на ChatGPT.
ChatGPT срещу. Бард: Точност и качество на кода
Да приемем, че помолите ChatGPT или Bard да генерират част от код, който прави нещо, и той изплюва десетки редове код за секунди. Лесно, нали? Но колко често ще работи този код? Да кажем, че кодът работи; колко добър е този код?
За да сравним точността и качеството на кода, генериран от двата чат бота с изкуствен интелект, дадохме и на двамата някои задачи за кодиране, които да изпълнят. Помолихме Bard и ChatGPT да генерират просто приложение за списък със задачи, използвайки HTML, CSS и JavaScript. След копиране и поставяне и преглед на генерирания код в браузър, приложението на ChatGPT изглеждаше така:
Използвайки версията на ChatGPT, можете да добавите нова задача, да изтриете задача или да маркирате задача като завършена. Bard на Google също успя да генерира функционално приложение за списък със задачи. Можете обаче само да добавите задача, без средства да я изтриете или маркирате като завършена. Интерфейсът на Bard също изглеждаше по-малко привлекателен; ето как изглеждаше:
Повторихме теста, като този път помолихме и двата чатбота да пресъздадат карти на хронологията на Twitter. Ето резултата от ChatGPT:
И ето какво създаде Bard на Google:
И двата резултата имат своите плюсове и минуси. Щяхме да приемем резултатите на Bard, ако имаше бутони за харесване, ретуитване и коментар. Странно обаче пропусна тези, така че ще ви оставим да решите кое е по-добро. Разбира се, качеството на кода не е само естетиката на това, което произвежда.
Когато анализирахме кода, генериран от двата чатбота, този на Bard изглеждаше по-обектно-ориентиран, докато този на ChatGPT беше по-процедурен. Нашият избор на език за програмиране може да повлияе на това, но ChatGPT изглежда пише по-чист код, когато е необходимо. Освен това има тенденция да генерира по-пълни решения, което обикновено води до повече редове код.
По отношение на качеството на генерирания код, ние присъждаме този кръг на ChatGPT.
ChatGPT срещу. Bard: Отстраняване на грешки и откриване на грешки
Грешките и бъговете са като пъзели, които програмистите обичат да мразят. Те ще ви подлудят, но поправянето им е доста удовлетворяващо. Така че, когато попаднете на грешки в кода си, трябва ли да се обадите на Bard или ChatGPT за помощ? За да вземем решение, дадохме на двата чат бота с изкуствен интелект два проблема за отстраняване на грешки за разрешаване.
Първо, подканихме и двата чатбота да разрешат логическа грешка в PHP код. Известно е, че логическите грешки са по-трудни за забелязване, тъй като кодът, който ги съдържа, не изглежда грешен, той просто не прави това, което е предвидил програмистът.
Кодът в тази екранна снимка се изпълнява, но не работи. Можете ли да забележите логическата грешка? Помолихме Bard на Google за помощ и за съжаление чатботът не можа да разпознае логическата грешка в кода. Интересното е, че Bard на Google обикновено има три опита за чернови за решаване на проблем, ние проверихме и трите чернови и всички бяха грешни.
След това помолихме ChatGPT за помощ и той веднага избра логическата грешка.
PHP скриптът нямаше никакви синтактични грешки, но логиката в isOdd() функцията беше назад. За да видите дали дадено число е нечетно, обикновено проверявате дали то има остатък след делене на 2. Ако има, това е нечетно число.
Докато Bard не беше близо до идентифицирането на този бъг, ChatGPT го откри при първия опит. Опитахме още четири логически грешки и Бард успя да избере грешката само в един случай, докато ChatGPT постоянно доставяше. След като премина към код със синтактични грешки, Bard на Google успя да се справи, като ги идентифицира в почти всички представени проби.
Bard на Google е относително добър в отстраняването на грешки, но ние ще дадем тази победа на ChatGPT отново.
ChatGPT срещу. Бард: Осъзнаване на контекста
Едно от най-големите предизвикателства при използването на AI chatbots за кодиране е тяхната относително ограничена контекстна информираност. Вие молите чатбота да напише малко код, след това още... по линията, той напълно забравя, че следващото нещо, което строи, е част от същия проект.
Да речем например, че изграждате уеб приложение с чатбот с изкуствен интелект. Казвате му да напише код за вашата HTML страница за регистрация и вход и той го прави перфектно. И след това, докато продължавате да строите, вие молите чатбота да генерира скрипт от страна на сървъра, който да обработва логиката за влизане. Това е проста задача, но поради ограниченото познаване на контекста може да доведе до генериране на скрипт за влизане с нови променливи и правила за именуване, които не съответстват на останалата част от кода.
И така, кой чатбот е по-добър в запазването на информираността за контекста? Дадохме и на двата инструмента една и съща програмна задача: приложение за чат, за което знаем, че ChatGPT вече може да изгради.
За съжаление, Bard просто не можа да завърши приложението, защото загуби следа от контекста на проекта, след като остана неактивен известно време. Въпреки че е предмет на същите условия, ChatGPT завърши приложението. Още веднъж, по отношение на осъзнаването на контекста, ние го даваме на ChatGPT.
ChatGPT срещу. Бард: Разрешаване на проблеми
На този етап Bard на Google липсва по много начини. Но може ли най-накрая да отбележи победа? Нека тестваме способностите му за решаване на проблеми. Понякога просто имате проблем, но не сте сигурни как да го представите програмно, да не говорим как да го разрешите.
Ситуации като тази са, когато AI chatbots като Bard и ChatGPT могат да бъдат доста полезни. Но кой чатбот има по-добри способности за решаване на проблеми? Помолихме и двамата да "напишете JavaScript код, който брои колко пъти дадена дума се появява в текст."
Bard отговори с работещ код, въпреки че се проваля, когато препинателните знаци са близо до дума или думата се появява в различни регистри.
Хвърлихме същия проблем на ChatGPT и ето резултата:
Кодът на ChatGPT използва по-стабилен и точен подход за преброяване на срещанията на думи в текст. Той отчита границите на думите и чувствителността към малки и малки букви, като обработва правилно пунктуацията и дава по-надеждни резултати. Още веднъж, по отношение на решаването на проблеми, ние го даваме на ChatGPT.
Тъй като Google Bard почти загуби във всеки показател, който използвахме за сравнение, решихме да му дадем шанс за изкупуване. Попитахме чатбота "Кое е по-добро в кодирането? ChatGPT или Google Bard?"
Въпреки че се съгласи, че ChatGPT е по-креативен, Bard каза, че неговият конкурент е по-вероятно да прави грешки и че ChatGPT произвежда код, който е по-малко ефективен, не е добре структуриран и като цяло е по-малко надежден. Трябва да не сме съгласни!
ChatGPT е в собствена лига
Bard на Google се радва на много шум, така че може да е изненада да видим колко много му липсва в сравнение с ChatGPT. Въпреки че ChatGPT очевидно имаше преднина, може да си помислите, че огромните ресурси на Google ще му помогнат да подкопае това предимство.
Въпреки тези резултати би било неразумно да отписваме Bard като помощно средство за програмиране. Въпреки че не е толкова мощен като ChatGPT, Bard все още има значителен удар и се развива с бързи темпове. Предвид ресурсите на Google, появата на Bard като достоен съперник със сигурност е въпрос на време.