
73

Końcówka poprzedniego roku, a także cały rok 2023, z pewnością zapiszą się w historii jako lata ogromnej ekspansji sztucznej inteligencji. ChatGPT, GitHub Copilot, Dall-E - to tylko niektóre narzędzia korzystające z modeli AI, które zyskały wielką sławę i są wykorzystywane na co dzień przez miliony ludzi. Nic w tym dziwnego, w wielu przypadkach to nieocenione ułatwienie naszego życia, pozwalające na szybsze tworzenie tego, co zazwyczaj trwało przynajmniej kilka dni, tygodni czy miesięcy. Nie ma jednak róży bez kolców.
Chciałoby się, aby odpowiedzi, które przekazuje nam na przykład ChatGPT, idealnie oddawały to, co chcemy zrobić. Niestety, nie zawsze tak jest. To po prostu model językowy, zatem często generuje on odpowiedzi, które są zwyczajną bzdurą, nie kompilują się lub są niekompletne. Oczywiście w wielu przypadkach takie narzędzie bardzo nam pomoże, ale, jak z każdym innym źródłem, warto spróbować zrozumieć generowany przez AI kod i sprawdzić, czy rzeczywiście odpowiada on temu, czego potrzebujemy. Ślepe "kopiuj-wklej" bez sprawdzenia, czy rzeczywiście ma to sens, sprawia tylko, że nikt (lub prawie nikt) tego nowego kodu nie rozumie i trudniej ogarniać jego późniejszą zmianę. Łatwiej też o bugi, które nie zawsze da się wychwycić na pierwszy rzut oka. Dlatego warto traktować ChatGPT jako jedno ze potencjalnych źródeł wiedzy, ale nie zdawać się na niego w 100 procentach. Zawsze są inne portale, gdzie można zweryfikować to, co napisał nam bot — StackOverflow naszym przyjacielem :)
Sztuczna inteligencja pod względem kodu może dać nam wskazówki, jak w ogóle coś ruszyć. Załóżmy, że chcemy na przykład stworzyć prostą grę w HTML5 o skokach narciarskich. Ostatnio chciałem z ciekawości zobaczyć, co ChatGPT mi tu podpowie. Oszczędzę pokazywania całego kodu (dla zainteresowanych jest tutaj), ale efekt wyszedł taki:
Po kliknięciu opcji Start aplikacja obliczyła długość skoku i czas jego trwania. Za każdym razem wyniki są inne, bo ChatGPT wymyślił, że użyje do tego obecnej w JS-ie funkcji Math.random(). Oczywiście nadal strona wygląda dość biednie, a skoczek w ogóle się nie porusza, ale to taka wstępna koncepcja, zawsze można to przecież rozbudować (samemu lub właśnie z pomocą bota, choć jego implementacja z pewnością będzie się różnić od naszej).
Poza podaniem swojej propozycji dot. problemu/nowej aplikacji AI może też wskazać możliwe bugi w już istniejącym kodzie. Oczywiście nie można oczekiwać, że pokaże nam dosłownie wszystko, ale w wielu przypadkach bot potrafi wykryć, że coś w naszym programie jest nie tak, i to powiedzieć. Ba, może się nawet pokusić o próbę naprawienia pewnych błędów, ale tu musimy być czujni i patrzeć, czy poprawiając jedną rzecz, narzędzie nie psuje przypadkiem czegoś innego...
Niby działa... ale nie do końca ;)
Tworzenie aplikacji i ich poprawianie to oczywiście nie wszystko, w czym może nas wspomóc AI. Inną rzeczą, którą możemy przekazać w ręce sztucznej inteligencji, jest generowanie odpowiedniej dokumentacji i testów. To bardzo ważna rzecz, o której często w prostych aplikacjach nie myślimy lub nie chcemy myśleć (bo to męczące...), a która mści się po paru miesiącach, gdy wracamy do jakiegoś swojego projektu i nie wiemy, po co użyliśmy tej czy innej funkcji w konkretnej linijce kodu. Ułatwmy sobie życie i uniknijmy takiej sytuacji:
Jak widać, sztuczna inteligencja może nam pomóc, ale jak w przypadku każdego innego narzędzia warto z niej korzystać z rozwagą. Nie wszystko, co wypisze, jest prawdą (choć oczywiście nowsze modele radzą sobie z naszymi zapytaniami coraz lepiej), więc o ile sądzę, że w wielu przypadkach rzeczywiście popycha ona nas dalej w kierunku sukcesu w projekcie, o tyle czasem możemy otworzyć puszkę Pandory i ślęczeć nad kodem, który stworzyła, godzinami. Wykorzystana w odpowiedni sposób, z pewnością będzie przydatnym narzędziem podczas pracy programisty — bo z pewnością ten zawód jeszcze długo nie umrze :)