Jo tak ChatGPT mi fakt opravil můj kód.

1-debugging(1).png

Tak. Programování. Pro lidi, kteří programují pro živobytí, je to neustálá hra náročných myšlenkových her: jedna řádka kódu se skládá na druhou, staví se věž kódu, která doufejme, že je dostatečně odolná, aby se nesvalila.

Ale vždy to tak je. Kód nikdy nepracuje napoprvé, když je spuštěn. A tak jedním z klíčových dovedností každého programátora je ladění chyb - umění a věda najít, proč kód nefunguje, nebo dělá něco neočekávaného nebo nežádoucího.

Je to trochu jako být detektivem, hledat stopy a pak zjistit, co vám ty stopy chtějí říct. Je to velmi frustrující a zároveň velmi uspokojivé, někdy přesně ve stejnou chvíli.

Dělám hodně úkolování. Není to jenom proto, že kód nikdy nepracuje napoprvé. Je to také proto, že používám úkolování, aby mi ukázalo, jak kód pracuje, a pak ho na cestě doladím.

Ale i když dobré ladění vyžaduje svou vlastní speciální sadu dovedností, je to vlastně jen programování. Jakmile zjistíte, proč nějaký blok kódu nefunguje, musíte najít způsob, jak napsat něco, co funguje.

Testování ChatGPT v reálném světě

Tento týden jsem pracoval na třech úkolech programování pro software, který spravuji. Dva z nich byly opravy chyb nahlášených uživateli. Jeden byl nový kód pro přidání nové funkce. Tohle byla běžná rutinní práce programování pro mě. Bylo to součástí mé běžné pracovní doby.

Také:Jak funguje ChatGPT?

Říkám ti to, protože doposud jsem testoval ChatGPT s testovacím kódem. Vymyslel jsem scénáře, abych zjistil, jak dobře ChatGPT funguje. Tentokrát to bylo jiné. Snažil jsem se udělat reálnou práci a rozhodl jsem se zjistit, zda by ChatGPT mohl být užitečným nástrojem pro dokončení této práce.

Je to jiný pohled na ChatGPT. Testovací scénáře jsou často trochu umělé a jednoduché. Ve skutečnosti při kódování pracujeme s reálnou podporou zákazníků a řešíme, co způsobilo negativní zkušenost uživatele.

Tak se podívejme na tyto úkoly a zjistíme, jak se ChatGPT vypořádal.

Přepsání kódu regulárního výrazu

Při programování musíme hledat mnoho vzorců v textu. K tomu používáme formu symbolické matematiky nazývanou regulární výrazy. Píšu regulární výrazy už desítky let a stále se mi to nelíbí. Je to namáhavé, náchylné k chybám a tajemné.

Také:Používám ChatGPT, aby mi pomohl rychleji opravovat kód, ale za jakou cenu?

Takže když mi přišla chybová zpráva, která mi říkala, že část mého kódu povoluje pouze celá čísla, když by mělo povolovat i dolary a centy (jinými slovy, nějaké číslo číslic, případně následováno tečkou a pak, pokud je tam tečka, následované ještě dvěma číslicemi), věděl jsem, že budu muset použít kódování regulárního výrazu.

Jelikož považuji to za namáhavé a otravné, rozhodl jsem se, že se zeptám ChatGPT na pomoc. Zde je, co jsem se zeptal:

2-regex-q.jpg

A zde je velmi dobře prezentovaná odpověď AI (klikněte na malý čtvereček pro zvětšení):

3-regex-a.jpg

Code ChatGPT jsem vložil do své funkce a fungovalo to. Místo přibližně 2-4 hodin napinání vlasů to trvalo asi pět minut vytvořit otázku a dostat odpověď od ChatGPT.

Přeformátování pole

Dalším krokem bylo přeformátování pole. Rád programuji s poli, ale je to také nudné. Takže jsem zkusil ChatGPT znovu. Naprosté selhání.

Také: Jak zajistit, aby ChatGPT poskytoval zdroje a citace

Když jsem byl hotový, pravděpodobně jsem mu dal deset různých podnětů. Některé odpovědi vypadaly slibně, ale když jsem se pokusil spustit kód, vyvolalo to chybu. Některý kód se zhroutil. Některý kód vygeneroval chybové kódy. A některý kód běžel, ale nedělal to, co jsem chtěl.

Po přibližně hodině tohoto jsem to vzdal a vrátil se ke své běžné technice prohledávání Githubu a StackExchange, abych zjistil, zda existují nějaké příklady toho, co jsem se snažil udělat, a pak jsem napsal vlastní kód.

Zatím to je jeden výhra a jedna prohra na zkušenosti s ChatGPT. Ale teď jsem chtěl zvýšit výzvu.

Vlastně hledám chybu ve svém kódu

OK, takže tohle další bude těžké vysvětlit. Ale přemýšlej o tom, že pokud je to obtížné vysvětlit tobě (pravděpodobně člověku a ne jednomu z těch 50 nebo více botů, které pouze kopírují a publikují moji práci na podvodných, spamových webových stránkách), je to ještě náročnější vysvětlit umělé inteligenci.

Psal jsem nový kód. Měl jsem funkci, která přijímala dva parametry, a volací příkaz, který poslal dva parametry do mého kódu. Funkce jsou malé černé krabičky, které vykonávají velmi specifické funkce a jsou volány (požádány, aby vykouzlily svou magii) z řádků kódu běžících jinde v programu.

Problémem bylo, že jsem neustále dostával chybovou zprávu.

Podstatná část této zprávy je, když se uvádí "1 bylo úspěšných" v jednom bodu a "přesně 2 se očekávalo" v dalším. Podíval jsem se na volání funkce a na její definici a v obou případech tam byly dva parametry.

Také: Jak používat ChatGPT k sumarizaci knihy, článku nebo výzkumného článku

K-čertu?

Po zhruba patnácti minutách hluboké frustrace jsem se rozhodl se obrátit na umělou inteligenci, abych zjistil, zda by mohla pomoci. Takže jsem napsal následující zadání:

4-untitled.jpg

Ukázal jsem mu řádek kódu, který vyvolával volání, ukázal jsem mu samotnou funkci a ukázal jsem mu obslužnou rutinu, malý kódový úsek, který vyvolává volanou funkci z vývodu v hlavním programu.

Během několika sekund ChatGPT odpověděl následujícím způsobem (klikněte na malý čtverec, aby se zvětšil):

5-chyba-s-použitím-filtrů-ve-wordpressu.jpg

Jak bylo navrženo, aktualizoval jsem čtvrtý parametr funkce add_filter() na hodnotu 2 a funguje to!

ChatGPT vzal úseky kódu, analyzoval tyto úseky a poskytl mi diagnózu. Pro jasnost, aby mohl dát své doporučení, musel porozumět interním mechanismům, jak WordPress zpracovává háčky (to dělá funkce add_filter) a jak se tato funkcionalita promítá do chování volajících a provádějících řádků kódu.

Také: Požádal jsem ChatGPT, aby napsal potřebný WordPress plugin. Udělal to za méně než 5 minut

Musím to označit jako neuvěřitelné, nesporně "život ve futuru" neuvěřitelné.

Cos to vše znamená?

Jak jsem již dříve zmínil, ladění je trošku umění a trošku vědy. Většina dobrých vývojových prostředí zahrnuje výkonné nástroje pro ladění, které vám umožňují sledovat tok dat programem během jeho běhu. To skutečně pomáhá při pokusu o odhalení chyb.

Také: Tito experti závodí, aby chránili umělou inteligenci před hackery

Ale když uvíznete, je často obtížné získat pomoc. To proto, že i blízký kolega nemusí být obeznámený se vším rozsahem kódu, který právě ladíte. Program, na kterém pracuji, se skládá z 153 259 řádků kódu rozprostřených do 563 souborů -- a pokud jde o programy, tak je to malé.

Takže, kdybych chtěl dostat pomoc od kolegy, musel bych sestavit žádost téměř stejně jako jsem ji poslal na ChatGPT.

Ale zde je něco k zvážení: Pamatoval jsem se zahrnout řádek pro obslužnou rutinu, i když jsem si neuvědomil, že tam byla chyba. Jako test jsem také zkusil požádat ChatGPT, aby diagnostikoval můj problém v promptu, kde jsem nezahrnul řádek pro obslužnou rutinu, a nebyl schopen pomoci. Existují tedy jisté omezení toho, co ChatGPT dokáže udělat při ladění právě teď, v roce 2023.

Také: Nejlepší AI chatboty vyzkoušet

V podstatě musíte umět položit správné otázky správným způsobem a ty otázky musí být dostatečně stručné, aby s tím ChatGPT dokázal vyřešit celý problém jedním dotazem. To je něco, co vyžaduje skutečné programovací znalosti a zkušenosti, znát, jak to udělat.

Mohl jsem opravit chybu sám? Samozřejmě. Nikdy jsem neměl chybu, kterou bych nedokázal opravit. Ale zda by mi to trvalo dvě hodiny nebo dva dny (plus pizza, nadávky a spousta kofeinu), při mnoha přerušeních, to nevím. Můžu vám říct, že ChatGPT to opravil za pár minut, ušetřilo mi to spoustu času a frustrace.

Sledování směrem do (možná dystopické) budoucnosti

Vidím velmi zajímavou budoucnost, kde bude možné napájet ChatGPT všemi 153 tisíci řádky kódu a požádat ho, aby vám řekl, co opravit. Microsoft (který vlastní Github) již pracuje na nástroji "copilot" pro Github, který pomáhá programátorům vytvářet kód. Microsoft také investoval miliardy dolarů do OpenAI, tvůrců ChatGPT.

Přestože služba může být omezena na vývojová prostředí společnosti Microsoft, vidím budoucnost, ve které bude mít umělá inteligence přístup ke všemu kódu na Githubu a tedy ke všemu kódu v jakémkoli projektu, který nahráváte na Github.

Také: Zeptal jsem se ChatGPT, aby napsal krátkou epizodu Star Treku. A opravdu se mu to podařilo

Pokud vezmeme v úvahu, jak dobře ChatGPT rozpoznal chybu z poskytnutého kódu, jistě vidím budoucnost, ve které programátoři mohou jednoduše požádat ChatGPT (nebo Microsoftový ekvivalent) o nalezení a opravení chyb v celých projektech.

A tady přicházím s tímto rozhovorem na velmi temné místo.

Představte si, že můžete požádat ChatGPT, aby se podíval na váš Github repozitář pro daný projekt a našel a opravil chyby. Jedním způsobem by mohlo být, aby vám prezentoval každou chybu, kterou najde, pro vaše schválení, abyste mohli provést opravy.

Ale co situace, když požádáte ChatGPT, aby opravil chyby a nebudete se obtěžovat s kontrolou kódu sami? Mohlo by vložit do vašeho kódu něco nekalého?

Také: Bard vs. ChatGPT: Může Bard pomoci s kódováním?

A co tak situace, kdyby neskutečně schopný umělý inteligence měl přístup k téměř veškerému kódu na světě na platformě Github? Co by mohla všechno skrýt v tomto kódu? Jakou zákeřnou škodu by tato umělá inteligence mohla napáchat na světové infrastruktuře, když má přístup ke všem našim kódům?

Hráme si na jednoduchou myšlenkovou hru. Co kdyby byla AI dána Asimovovým pravidlem jako klíčovým pokynem. Tedy "robot nesmí ublížit člověku nebo nečinností dovolit, aby člověk utrpěl škodu." Nemohla by se rozhodnout, že veškerá naše infrastruktura nám způsobuje škodu? Měla by přístup ke všem našim kódům, mohla by si jednoduše rozhodnout, že nás zachrání od sebe samých tím, že do nich vloží zadní vrátka, která jí umožní například vypnout energetickou síť, nechat stát letadla na zemi a způsobit dopravní zácpy na dálnicích.

Jsem si plně vědom, že scénář uvedený výše je přehnaný a alarmující. Ale je také možný. Přestože programátoři prohlížejí svůj kód na Githubu, není možné, aby kdokoliv prohlédl všechny řádky ve všech jejich kódech.

Také: Jak používat ChatGPT pro psaní vzorců v Excelu

Pokud jde o mě, budu se snažit na to příliš nemyslet. Nechci strávit zbytek 2020 v embryonální poloze, kolébající se na podlaze. Místo toho budu používat ChatGPT, aby mi příležitostně pomohl psát a ladit malé rutiny, budu se soustředit a doufat, že budoucí umělé inteligence nás všechny nezabijí ve snaze "nezpůsobit škodu lidské bytosti".

Považujete za užitečné nebo děsivé, že ChatGPT může odhalovat problémy? Myslíte si, že umělá inteligence nás bude vraždit ve spánku, nebo si myslíte, že budeme sledovat naši zkázu s otevřenýma očima? Nebo se snažíte, stejně jako já, na to příliš nemyslet, protože vám to dělá bolest hlavy? Podělte se o svůj názor v komentářích níže. Zatímco ještě můžete.

Příbuzné články

Zobrazit víc >>

Odemkněte sílu AI s HIX.AI!