ChatGPT е плашещо добър в писането на код.
Всеки е чувал за ChatGPT на този етап. Това е базиран на AI чатбот, който използва модели за обработка на естествен език, за да дава отговори на сложни въпроси. Тези отговори може да не са непременно винаги точни, но обикновено са достатъчно подробни, за да можете сравнително лесно да проверите фактите на отговорите, които ви дават. Какво ще стане, ако вземете ChatGPT и опитате да напишете код с него?
Както се оказва, това е нещо, което можете да направите с различна степен на успех, в зависимост от езиците, които искате да използвате, и какво искате да постигнете с тях. Подложих го на тест, за да видя колко добре ще се справи с различни програмни езици за изпълнение на различни задачи. Също така няма да правя никакви промени в кода, който ChatGPT произвежда, само ще го насочвам да създава работещ код, ако кодът, който създава, не работи.
Използвах три езика, които вече познавам, за да тествам ChatGPT: Python, C и Java. Резултатите бяха особено изненадващи, тъй като се бореше малко с Python поради абстрактния характер на това, което исках да направи, но се справяше с лекота със C и основната Java. имам и
създаде GitHub хранилище с целия код тук, така че да можете да го изпробвате сами.Автоматична проверка на страници в Python
Python е любимият ми език за програмиране, с който работя, и това е благодарение на силата, която има, и неговата простота на използване. В миналото съм написал много инструменти в Python, за да автоматизирам части от моя работен процес, а бакалавърската ми теза по компютърни науки дори беше направена изцяло чрез Python. Помолих ChatGPT да напише програма, която може да сканира уеб страница за промени на периодична времева основа и най-вече свърши работа.
Проблемът с горния код, който ми дава, е, че той не симулира истински браузър. Уебсайтовете проверяват за параметър във вашия браузър, наречен „потребителски агент“, и това определя какъв вид браузър използвате или дали сте бот. Много уебсайтове няма да приемат връзки, които не дефинират потребителски агент, и попаднах на това, когато го насочих към XDA. Помолих го да добави персонализирани заглавки към заявката, за да симулира истински браузър, и той изпълни.
Кодът, даден по-горе, работи за статични уебсайтове, но проблемът е, че голяма част от съдържанието, което четете онлайн, е динамично. Ако дадена страница върне текущото време, например, някъде на страницата, тогава кодът по-горе винаги ще казва, че страницата се е променила при всяко опресняване. Когато посочих това на ChatGPT, той се обърка и ми даде напълно неправилно решение на проблема.
Горното е неправилно обяснение за това как работят хешовете. Смисълът на хеша е, че незначителна промяна на входа ще доведе до голяма разлика в хеша, тъй като два хеша са основно несравними. Когато му казах, че е неправилно твърдение да се предполага, че хешовете са най-добрият начин за сравняване и сканиране за промени, той отговори с извинение и ми даде нещо, което Направих работа.
Единственият проблем, който открих с горния код, е, че за по-големи уебсайтове е изчислително скъпо, тъй като използва обработка на естествен език за сравнение и изчисляване на разликата между тях. Все пак праг от 5% в промененото съдържание е достатъчно добър за повечето уебсайтове, ако искате да проверявате за актуализации, и можете да коригирате прага, ако е необходимо. Отне известно време, но накрая се стигна.
Има много причини, поради които може да искате уеб скрепер като един от тези и въпреки че има инструменти, които могат да го направят, страхотно е да създадете свой собствен. Можете да ги използвате за проследяване на пакети или, в моя случай, сканиране за нови имоти, които се предлагат под наем в местни сайтове за имоти.
Генератор на пароли в C
Тъй като напоследък сигурността е на мода, важно е да използвате сигурни пароли и също така да използвате двуфакторно удостоверяване. Ако се затруднявате с частта за защитена парола, е доста лесно да напишете генератор на пароли в C. ChatGPT се справи доста лесно и единственият проблем, който открих, беше, че когато го помолих да създаде генератор на пароли, той не импортира библиотеката String C. Казах му това и той го добави към импортирания в началото.
Увеличих глобалната променлива MAX_LENGTH до 32 знака вместо 16 и тя генерира следната парола за мен: aW3H0E(&FPQvG8B@4*()+4yRKTKB#U0O. С увереност може да се каже, че работи!
Калкулатор в Java
Една доста проста програма, с която много хора имат опит в Java, е създаването на калкулатор. Това е едно от най-ранните предизвикателства, с които компютърните учени ще се сблъскат в кариерата си на програмиране, без значение кой език започват първо. Помолих ChatGPT да напише калкулатор на Java, който използва поне два класа, и той работи перфектно при първия опит.
Това е класът на калкулатора:
Това е основният клас:
Създаването на двата класа в моята IDE, IntelliJ, и изпълнението на основния клас води до перфектно работещ програма калкулатор, която приема две числа и оператор за събиране, изваждане, умножение или разделение.
ChatGPT е приличен в програмирането
Въпреки че не бих разчитал на ChatGPT да направи всичко вместо вас, ясно е, че той може да свърши доста добра работа при създаването на програми и вземането под внимание на критиките, когато има проблеми. Бях изненадан да видя, че предлага алгоритъм за хеширане като начин за разпознаване на незначителни промени в уеб страница, но освен това не се бори с по-основните задачи. Дори в случая с програмата Python, тя имаше правилната идея от самото начало и на по-статични страници щеше да работи перфектно.
Разбира се, ChatGPT няма да замени програмистите скоро, но е на път да се превърне в много добър инструмент в работната сила. Копилот на GitHub, например, използва GPT технология, която да помага на хората да пишат код, и тя ще става все по-напреднала с течение на времето. Дори и да сте начинаещ програмист, този вид инструмент потенциално може да ви помогне да научите, ако можете да му се доверите напълно, но понякога прави странни грешки, както видяхме.
Разбира се, примерите, дадени тук, са много основни и повечето програмисти биха могли да ги напишат сравнително лесно, но не това е важното. Той е плашещо добър в изграждането на решения за прости задачи и изглежда, че се справя прилично добре и с по-сложни задачи. Вълнуваме се да видим накъде ще отидат инструменти като тези в бъдеще и ще помогнат на хората да подобрят уменията си.