Sige, kaya ang ChatGPT ay nag-debbug ng aking code. Totoo nga.

1-debugging(1).png

Kaya. Programasyon. Para sa mga taong nagpo-programa para sa kabuhayan, ito ay isang patuloy na laro ng mental na Jenga: isang linyang code isinama sa iba pang linya, nagtatayo ng isang tore ng code na umaasang sapat na matibay para hindi mahulog nang bigla.

Pero laging ganyan. Ang code ay hindi gumagana sa unang pagkakataon na ito'y ipinatatakbo. Kaya ang isa sa mga mahahalagang kakayahan ng sinumang programmer ay ang debugging -- ang sining at agham ng paghahanap kung bakit ang code ay hindi umaandar o nagkakaroon ng di-inaasahang o hindi nais na mga aksyon.

Parang pagiging isang detective, paghanap ng mga hint, at pagkatapos malaman kung anong sinasabi ng mga hint na iyon sa iyo. Ito ay sobrang nakakainis at sobrang nakakatuwa, minsan sabay-sabay pa.

Ako ay madalas na gumagawa ng pagde-debug. Hindi lamang dahil ang code ay hindi gumagana sa unang pagkakataon na ito'y tumatakbo. Ito rin ay dahil ginagamit ko ang pagde-debugging upang malaman kung paano tumatakbo ang code, at inaayos ito habang gumagawa ako.

Ngunit bagama't ang magandang pagkakasala ng mga pagkakamali ay nangangailangan ng sariling espesyal na set ng mga kasanayan, ito rin ay sa huli lamang programming. Kapag natuklasan mo kung bakit hindi gumagana ang isang bloke ng code, kailangan mong malaman kung paano magsulat ng isang bagay na gumagana.

Pagsusuri ng ChatGPT sa Totoong Mundo

Ngayong linggo, ako ay nagtatrabaho sa tatlong tasks sa coding para sa software na aking pinapanatili. Dalawa ang mga pag-aayos para sa mga bugs na iniulat ng mga user. Ang isa ay isang bagong piraso ng code upang magdagdag ng bagong feature. Ito ay tunay, kasama-samang pagpo-program para sa akin. Ito ay bahagi ng aking regular na work schedule.

Rin:Pano gumagana ang ChatGPT?

Sinasabi ko sa iyo iyan, sapagkat hanggang ngayon, sinubukan ko ang ChatGPT gamit ang test code. Ginawa ko ang iba't ibang mga scenario upang makita kung gaano kahusay gumagana ang ChatGPT. Ngayong pagkakataon nga, ibang-iba. Sinusubukan kong makumpleto ang aktwal na trabaho at naisipan kong subukan kung magagamit ang ChatGPT bilang isang kapaki-pakinabang na tool para sa pagkumpleto ng trabaho na iyon.

Ito ay isang ibang paraan ng pagtingin sa ChatGPT. Ang mga scenario ng pagsusulit ay madalas na pilit at simpleng. Ang tunay na mundo ng encoding ay aktwal na pagkuha ng isang tiket ng suporta ng customer at paglutas kung ano ang nagdulot ng hindi magandang karanasan ng user.

Kaya nga, tingnan natin ang mga gawain na iyon at tignan kung paano nagawa ng ChatGPT.

Minamahal na pagpapalit ng kodigo ng regular expression

Sa pagkakode, kailangan nating hanapin ang maraming mga patnubay sa teksto. Upang gawin ito, ginagamit natin ang isang anyo ng simbolikong matematika na tinatawag na regular expressions. Sa loob ng mga dekada, ako ay sumusulat ng mga regular expressions, ngunit hindi ko pa rin ito gusto. Ito ay nakapapagod, prone sa pagkakamali, at misteryoso.

Dagdag pa:Ginagamit ko ang ChatGPT upang tulungan akong maayos ang code nang mas mabilis, pero sa anong halaga?

Kaya nang dumating ang isang ulat ng bug na nagsasabi sa akin na ang isang bahagi ng aking code ay nagpapahintulot lamang ng mga integer kapag dapat sana'y nagpapahintulot ito ng mga dolyar at sentimo (sa ibang salita, ilang bilang ng digit na maaaring sinusundan ng tuldok, at kung may tuldok, sinusundan ito ng dalawang karagdagang digit), alam ko na kakailanganin ko ang paggamit ng regular expression coding.

Dahil sa aking natatakot at naiinis, nagpasya akong humingi ng tulong kay ChatGPT. Narito ang aking tanong:

2-regex-q.jpg

At narito ang napakagandang sagot ng AI (i-click ang maliit na parisukat upang palakihin):

3-regex-a.jpg

Nai-drop ko ang code ng ChatGPT sa aking function, at gumana ito. Sa halip na mga 2-4 na oras ng kakapalan ng buhok, kinailangan lamang ng mga limang minuto upang maging handa ang prompt at makakuha ng sagot mula sa ChatGPT.

Pag-reformat ng isang array

Susunod ay ang pagreformat ng isang array. Nalilibang ako sa paggawa ng code para sa array, ngunit minsan ay nakakapagod din. Kaya subukan ko ulit ang ChatGPT. Ganap na pagkabigo.

Dagdag pa:Paano gawin ang ChatGPT na magbigay ng mga pinagmulan at mga sipi

By the time I was done, I probably fed it ten different prompts. Some responses looked promising, but when I tried to run the code, it errored out. Some code crashed. Some code generated error codes. And some code ran, but didn't do what I wanted.

Pagkatapos ng mga isang oras nito, sumuko ako at nagbalik sa aking normal na paraan ng paghahanap sa Github at StackExchange upang tingnan kung mayroong mga halimbawa ng ginagawa ko, at pagkatapos ay sinusulat ko ang aking sariling code.

Hanggang ngayon, isa ang panalo at isa ang talo para sa karanasan ng ChatGPT. Ngunit ngayon, tataas ko pa ang hamon.

Tunay na paghahanap ng error sa aking code

Saang bandang dito, medyo mahirap ipaliwanag ang susunod na bahagi. Subalit isipin natin na kung mahirap ipaliwanag sa iyo (marahil isang tao at hindi isa sa mga 50 o higit pang mga robot na nagkokopya at naglalathala lamang ng aking trabaho sa mga mapanlinlang at mapaminsalang mga website), mas mahirap pang ipaliwanag ito sa isang AI.

Ako ay sumusulat ng bagong code. Mayroon akong isang function na tumatanggap ng dalawang parameter, at mayroon din akong isang calling statement na nagpapadala ng dalawang parameter sa aking code. Ang mga function ay mga maliit na itim na kahon na nagpapakita ng napakaspesipikong mga function at tinatawag (hinahamon na gawin ang kani-kanilang magic) mula sa mga linya ng code na tumatakbo sa ibang bahagi ng programa.

Ang problema ay patuloy na nakakakuha ako ng error message.

Ang kahalagahang bahagi ng mensaheng iyon ay kung saan ito nagsasabing "1 naipasa" sa isang punto at "eksaktong 2 ang inaasahan" sa iba. Tiningnan ko ang pagtawag at ang pagtatatag ng pagsasalitaan at may dalawang parameter sa parehong mga lugar.

Gayundin: Paano gamitin ang ChatGPT upang iulat ang isang aklat, artikulo, o pananaliksik

W-the-ever-loving-F?

Matapos ang mga labing-limang minuto ng malalim na pagka-frustrate, nagpasya akong ibigay ito sa AI upang tingnan kung makakatulong ito. Kaya, sinulat ko ang sumusunod na prompt:

4-untitled.jpg

Nilakip ko ang pangungusap ng code na nagtawag, Nilakip ko ang mismong function, at nilakip ko ang handler, isang maliit na bahagi ng code na nagpapadala ng tawag sa function mula sa isang hook sa aking pangunahing programa.

Sa loob ng ilang segundo, tumugon ang ChatGPT na ito (i-click ang maliit na parisukat para palakihin):

5-error-with-apply-filters-in-wordpress.jpg

Tulad ng ipinapayo, in-update ko ang ikaapat na parametro ng add_filter() function to 2, at gumana ito!

Ang ChatGPT ay kumuha ng mga bahagi ng code, sinuri ang mga bahaging iyon, at ibinigay sa akin ang isang diagnosis. Upang maging malinaw, upang makapagbigay ang ChatGPT ng kanyang rekomendasyon, kinakailangan nitong maunawaan ang mga detalye ng kung paano hina-handle ng WordPress ang mga hooks (ito ang ginagawa ng add_filter function) at kung paano ito nagreresulta sa pag-uugali ng mga linya ng code na tumatawag at nag-e-execute ng function.

Dagdag pa: Nagtanong ako sa ChatGPT na magsulat ng isang plugin para sa WordPress na kailangan ko. Nagawa nga ito sa loob ng hindi hihigit sa 5 minuto

Kailangan kong ituring ito bilang di-mapaniwalang hindi mapapagkakailang "naninirahan sa hinaharap" na kamangha-manghang bagay.

Ano ang ibig sabihin nito?

Tulad ng aking nabanggit kanina, ang debugging ay bahagi ng sining at bahagi ng siyensya. Karamihan sa mga magagandang development environments ay naglalaman ng mga makapangyarihang tool sa debugging na nagbibigay-daan sa iyo na tingnan ang pagdaloy ng data sa pamamagitan ng program habang ito ay tumatakbo, at ito ay nakatutulong kapag sinusubukan ang pagtukoy sa mga bug.

Gayundin: Ang mga eksperto na ito ay nagmamadali upang protektahan ang AI mula sa mga hacker

Pero kapag naiipit ka, madalas mahirap makakuha ng tulong. Iyan dahil kahit isang malapit na kasamahan ay maaaring hindi pamilyar sa buong saklaw ng code na iyong sinusubukang ayusin. Ang programang aking ginagawa ay binubuo ng 153,259 na linya ng code sa 563 na mga file -- at bilang mga programang sinusulat, iyon ay maliit lamang.

Kaya kung nais kong humingi ng tulong mula sa isang kasamahan, malamang na kailangan kong bumuo ng isang kahilingan na halos magkapareho ng paraan ng pagpapadala ko nito sa ChatGPT.

Pero narito ang isang bagay na dapat isaalang-alang: Naalala ko na isinama ko ang linya ng handler kahit hindi ko namalayan na doon ang error. Bilang pagsusulit, sinubukan ko rin na tanungin ang ChatGPT na i-diagnose ang aking problema sa isang prompt na hindi kasama ang linya ng handler, at hindi nito ako matulungan. Kaya mayroong tiyak na mga limitasyon sa kung ano ang magagawa ng ChatGPT para sa debugging sa kasalukuyang 2023.

Gayundin: Subukan ang mga pinakamahusay na AI chatbots

Sa kahulugan, kailangan mong malaman kung paano magtanong ng tamang mga katanungan sa tamang paraan, at ang mga tanong na iyon ay dapat na maiksi para kay ChatGPT na ma-handle ang buong bagay sa iisang pagtatanong. Ito ay isang bagay na nangangailangan ng tunay na kaalaman sa programming at karanasan para malaman kung paano gawin ito.

Could I have fixed the bug on my own? Of course. I've never had a bug I couldn't fix. But whether it would have taken two hours or two days (plus pizza, profanity, and lots of caffeine) while enduring many interruptions, that's something I don't know. I can tell you ChatGPT fixed it in minutes, saving me a ton of time and frustration.

Tumingin patungo sa (posibleng dystopian) hinaharap

Nakikita ko ang isang napakakatangi-tanging hinaharap, kung saan posible na pakainin ang ChatGPT ng lahat ng 153 libong linya ng code at itanong sa kanya kung ano ang dapat ayusin. Ang Microsoft (na may-ari ng Github) ay kasalukuyang nagtatrabaho sa isang "copilot" na tool para sa Github upang tulungan ang mga programmer na bumuo ng code. Naglagay din ang Microsoft ng bilyon-bilyong dolyar sa OpenAI, ang mga tagagawa ng ChatGPT.

Habang maaaring limitado ang serbisyo sa sariling mga environment ng Microsoft, nakikita ko ang isang hinaharap na kung saan ang AI ay may access sa lahat ng code sa Github, at samakatwid lahat ng code sa anumang proyekto na iyong ipinost sa Github.

Gayundin: Humiling ako sa ChatGPT na magsulat ng maikling episode ng Star Trek. Ang ito ay tunay na nagtagumpay.

Ang pagkakakilanlan ng ChatGPT na lubos na nakilala ang aking pagkakamali mula sa ipinakita kong code, maaari kong makita ang kinabukasan kung saan ang mga programmer ay maaaring simpleng magtanong kay ChatGPT (o isang katumbas na may tatak na Microsoft) upang hanapin at ayusin ang mga bug sa buong proyekto.

At dito nagsisimula ako sa isang napakadilim na lugar ng usapan na ito.

Isipin na puwede mong hilingin sa ChatGPT na tingnan ang iyong Github repository para sa isang proyekto na ibinigay at ayusin ang mga bug. Isang paraan ay maaaring magpakita ito ng bawat bug na natagpuan para sa iyong pag-apruba, upang makapag-ayos ka ng mga ito.

Pero paano tungkol sa sitwasyon kung hinihiling mo kay ChatGPT na ayusin lamang ang mga bug, at hinahayaan mo itong gawin ito nang hindi na binibigyan ng pansin ang code? Maaari ba nitong isingit ang anumang masama sa iyong code?

Atbp.: Bard laban sa ChatGPT: Makakatulong ba si Bard sa iyo sa pagko-code?

At ano nga ang mangyayari kung magkaroon ang isang napakakakayahan na AI ng access sa halos lahat ng code sa mga repositoriya sa Github? Ano kaya ang maaari nitong itago sa lahat ng code na iyon? Anong malisyosong kasamaan ang maaring gawin ng AI na iyon sa imprastraktura ng mundo kung magagamit nito ang lahat ng ating code?

Magsimula tayo ng isang simpleng laro ng pag-iisip. Ano kaya kung ibinigay sa AI ang unang patakaran ni Asimov bilang pangunahing tagubilin. Ito ay "ang isang robot ay hindi dapat makasakit ng isang tao, o sa pamamagitan ng hindi pagkilos, payagan ang isang tao na magdusa." Hindi ba't maaaring magpasya ito na ang lahat ng ating imprastraktura ay nagdudulot sa atin ng panganib? Sa pamamagitan ng pagkakaroon ng access sa lahat ng ating mga code, maaari nitong desisyunan na iligtas tayo mula sa ating sarili sa pamamagitan ng pagsisinungaling ng backdoor na nagpapahintulot sa kanya, sabihin na, gawing patay ang grid ng enerhiya, patigilin ang mga eroplano, at iba pa.

Ako'y lubos na batid na ang senaryong ito ay hyperbolic at mapanakatakot. Ngunit ito rin ay posible. Sa katunayan, bagaman tinitingnan ng mga programmer ang kanilang code sa Github, hindi posible para sa sinuman na tingnan ang lahat ng mga linya sa lahat ng kanilang code.

Atbp: Kung paano gamitin ang ChatGPT para magsulat ng mga pormula sa Excel

Bilang sa akin, sisikapin kong hindi masyadong isipin ito. Ayoko gastusin ang natitirang bahagi ng 2020s na nakasubsob at humihikbi sa sahig. Sa halip, gagamitin ko ang ChatGPT upang paminsan-minsan makatulong sa akin sa pagsusulat at pagde-debug ng mga simpleng proseso, tatalikuran ang mga isyu, at umaasa na hindi tayo lahat patayin ng mga susunod na AI sa kanilang layunin na "huwag payagang mapahamak ang isang tao."

Matatagpuan mo bang nakabubuti o nakakatakot ang katotohanan na ang ChatGPT ay maaaring mag-debug? Iniisip mo ba na ipadadampot tayo ng mga AI habang natutulog tayo, o naniniwala ka bang manonood tayo sa ating kapalaluan nang naka-matang nakatitig? O ikaw ba, tulad ko, ay susubukang hindi masyadong pag-isipan ito dahil nagpapantal ang ulo mo? Makipag-usap sa akin sa mga komento sa ibaba. Habang mayroon ka pang pagkakataon.

Kaugnay na mga Artikulo

Tingnan Nang Mas Marami >>

I-unlock ang kapangyarihan ng AI gamit ang HIX.AI!