Okay, jadi ChatGPT sebenarnya membetulkan kod saya. Untuk betul-betul.

1-debugging(1).png

Jadi. Pengaturcaraan. Bagi mereka yang mengaturcara sebagai sumber pendapatan, ini seperti bermain Jenga mental yang berterusan: satu baris kod diletakkan di atas baris lain, membina menara kod yang diharapkan kukuh dan tidak roboh.

Tetapi ianya sentiasa berlaku. Kod tidak pernah berfungsi dengan sempurna pada kali pertama ia dijalankan. Dan itu sebabnya salah satu kemahiran utama bagi setiap pereka kod adalah penyelarasan -- seni dan sains dalam mencari punca mengapa kod tidak berfungsi atau berbuat sesuatu yang tidak dijangka atau tidak diingini.

Seperti menjadi seorang detektif, mencari petunjuk, dan kemudian mencari tahu apa yang petunjuk-petunjuk itu mencoba sampaikan kepada Anda. Ianya sangat frustrasi dan sangat memuaskan, kadang-kadang pada saat yang sama.

Saya melakukan banyak penyelesaian masalah. Ini tidak hanya karena kode tidak pernah berfungsi dengan baik pada percobaan pertama. Tetapi juga karena saya menggunakan penyelesaian masalah untuk memberi tahu saya bagaimana kode berjalan, dan kemudian memperbaikinya sepanjang jalan.

Tetapi walaupun penyelesaian masalah (debugging) yang baik memerlukan kemahiran tersendiri, pada akhirnya ia hanyalah pengaturcaraan. Setelah anda mengetahui mengapa sesuatu segmen kod tidak berfungsi, anda perlu membuat sesuatu yang berfungsi.

Pengujian ChatGPT dalam Dunia Nyata

Minggu ini, saya sedang bekerja pada tiga tugas pengkodean untuk perangkat lunak yang saya pegang. Dua di antaranya adalah perbaikan untuk bug yang dilaporkan oleh pengguna. Satu adalah potongan kode baru untuk menambah fitur baru. Ini adalah pekerjaan pemrograman yang biasa dan rutin bagi saya. Ini merupakan bagian dari jadwal kerja rutin saya.

Juga:Bagaimana ChatGPT berfungsi?

Saya memberitahu anda bahawa, setakat ini, saya telah menguji ChatGPT dengan kod ujian. Saya telah membuat skenario untuk melihat sejauh mana keberkesanan ChatGPT. Kali ini adalah berbeza. Saya cuba menyelesaikan kerja sebenar, dan memutuskan untuk melihat sama ada ChatGPT boleh menjadi alat yang berguna untuk menyelesaikan kerja tersebut.

Ini adalah cara lain untuk melihat ChatGPT. Skrip ujian seringkali direka dengan tidak realistik dan terlalu sederhana. Pemrograman di dunia nyata sebenarnya melibatkan menyelesaikan masalah tiket sokongan pelanggan yang lain dan mencari punca dari pengalaman pengguna yang tidak memuaskan.

Jadi, dengan itu, mari kita lihat tugas-tugas itu dan melihat bagaimana ChatGPT berperforma.

Mengubah semula kod ekspresi biasa

Dalam pengkodan, kita perlu mencari banyak pola dalam teks. Untuk melakukannya, kita menggunakan bentuk matematik simbolik yang disebut ekspresi beraturan. Saya telah menulis ekspresi beraturan selama beberapa dekad, dan masih tidak suka melakukannya. Ia membosankan, rentan terhadap kesalahan, dan sukar difahami.

Juga:Saya menggunakan ChatGPT untuk membantu saya memperbaiki kod dengan lebih cepat, tetapi dengan apa kosnya?

Jadi, apabila laporan kerosakan diterima yang memberitahu saya bahawa sebahagian daripada kod saya hanya membenarkan nombor integer sedangkan sepatutnya membenarkan dolar dan sen (dengan kata lain, beberapa digit, mungkin diikuti oleh satu tanda titik, dan jika ada tanda titik, diikuti oleh dua digit lagi), saya tahu saya perlu menggunakan kod tapisan biasa.

Kerana saya dapati ianya memenatkan dan mengganggu, saya memutuskan untuk meminta bantuan ChatGPT. Inilah apa yang saya tanya:

2-regex-q.jpg

Ini adalah Jawapan AI yang sangat baik (klik pada persegi kecil untuk membesarkannya):

3-regex-a.jpg

Saya menjatuhkan kod ChatGPT ke dalam fungsi saya, dan ia berfungsi. Daripada menghabiskan 2-4 jam yang membuat saya meranapkan rambut kepala, hanya mengambil kira-kira lima minit untuk membuat permintaan dan mendapatkan jawapan dari ChatGPT.

Mengformat semula sebuah array

Seterusnya ialah mereformat satu jujukan. Saya suka melakukan kod jujukan, tetapi ia juga membosankan. Jadi sekali lagi, saya mencuba ChatGPT. Gagal total.

Juga:Cara membuat ChatGPT menyediakan sumber dan rujukan

Pada masa saya selesai, mungkin saya memberikan sepuluh prompt yang berbeza kepadanya. Sesetengah respons kelihatan menjanjikan, tetapi apabila saya cuba menjalankan kod, ia menghasilkan ralat. Sesetengah kod terhenti. Sesetengah kod menghasilkan kod ralat. Dan sesetengah kod berjalan, tetapi tidak melakukan apa yang saya inginkan.

Selepas kira-kira sejam berbuat begitu, saya putus asa dan kembali kepada teknik biasa saya iaitu mencari di Github dan StackExchange untuk mencari contoh-contoh apa yang saya cuba lakukan, kemudian menulis kod saya sendiri.

Sejauh ini, itu adalah satu kemenangan dan satu kekalahan dalam pengalaman ChatGPT. Tetapi sekarang saya akan menambah tantangan.

Sebenarnya mencari ralat dalam kod saya

OK, jadi bahagian seterusnya ini akan sukar untuk dijelaskan. Tetapi fikirkan tentang fakta bahawa jika ianya sukar untuk dijelaskan kepada anda (dalam anggapan bahawa anda seorang manusia dan bukan salah satu daripada 50 atau lebih bot yang hanya menyalin dan menerbitkan semula kerja saya di laman web penipuan dan spam), ia adalah lebih mencabar untuk menjelaskannya kepada sebuah AI.

Saya sedang menulis kod baru. Saya mempunyai sebuah fungsi yang mengambil dua parameter, dan sebuah pernyataan pemanggilan yang mengirimkan dua parameter ke kod saya. Fungsi adalah kotak hitam kecil yang melakukan fungsi yang sangat spesifik dan mereka dipanggil (diminta untuk melakukan keajaiban mereka) dari baris kod yang berjalan di tempat lain dalam program.

Masalahnya ialah, saya terus menerima mesej ralat.

Bahagian yang penting dalam mesej tersebut adalah di mana ia menyatakan "1 berjaya" pada satu titik dan "sebanyak 2 yang dijangka" pada titik yang lain. Saya melihat pada penyata pemanggilan dan definisi fungsi dan terdapat dua parameter di kedua-dua tempat itu.

Juga: Cara menggunakan ChatGPT untuk merangkum buku, artikel, atau kertas kajian

W-the-ever-loving-F?

Selepas kira-kira lima belas minit kekecewaan yang mendalam, saya memutuskan untuk memberikannya kepada AI untuk melihat adakah ia boleh membantu. Jadi, saya menulis prompt berikut:

4-untitled.jpg

Saya menunjukkan baris kod yang membuat panggilan, saya menunjukkan fungsi itu sendiri, dan saya menunjukkan handler, sebahagian kecil kod yang menghantar fungsi yang dipanggil dari hook dalam program utama saya.

Dalam beberapa saat, ChatGPT memberikan respons ini (klik persegi kecil untuk memperbesar):

5-kesalahan-dengan-apply-filters-di-wordpress.jpg

Seperti yang dicadangkan, saya telah mengemas kini parameter keempat fungsi add_filter() kepada 2, dan ia berfungsi dengan jayanya!

ChatGPT mengambil segmen kod, menganalisanya, dan memberi saya diagnosis. Untuk jelasnya, agar ChatGPT dapat memberikan rekomendasinya, ia perlu memahami internal bagaimana WordPress mengatasi hooks (inilah yang dilakukan oleh fungsi add_filter) dan bagaimana fungsionalitas tersebut diterjemahkan menjadi perilaku baris kode yang memanggil dan menjalankannya.

Juga: Saya meminta ChatGPT untuk menulis plugin WordPress yang saya butuhkan. Ia melakukannya dalam waktu kurang dari 5 menit

Saya perlu menandakan itu sebagai luar biasa, tiada sangsi "hidup di masa depan" yang luar biasa.

Apa maksudnya semua ini?

Sebagaimana yang saya sebutkan sebelum ini, mengesan kesalahan adalah sedikit seni dan sedikit sains. Kebanyakan persekitaran pembangunan yang baik termasuk alat debug yang kuat yang membenarkan anda melihat aliran data melalui program semasa ia berjalan, dan ini berguna ketika cuba melacak masalah.

Juga: Para pakar ini sedang berlumba-lumba untuk melindungi AI daripada penceroboh

Tetapi apabila anda terperangkap, ia seringkali sukar untuk mendapatkan bantuan. Itu kerana walaupun orang sekerja rapat mungkin tidak mengenali sepenuhnya ruang lingkup kod yang anda sedang menyemak kesilapan. Program yang saya sedang kerjakan terdiri daripada 153,259 baris kod yang tersebar di 563 fail -- dan untuk program, itu dianggap kecil.

Jadi, jika saya ingin meminta bantuan dari seorang rekan kerja, saya mungkin harus membuat permintaan hampir identik dengan cara saya mengirimkannya ke ChatGPT.

Namun ini adalah sesuatu yang perlu dipertimbangkan: Saya ingat untuk menyertakan baris handler walaupun saya tidak menyedar bahawa itulah di mana ralat berada. Sebagai ujian, saya juga mencuba meminta ChatGPT untuk mendiagnosis masalah saya dalam satu prompt di mana saya tidak menyertakan baris handler, dan ChatGPT tidak dapat membantu. Jadi terdapat had-had yang pasti bagi apa yang ChatGPT dapat lakukan untuk pengesanan ralat pada masa ini, iaitu pada tahun 2023.

Juga: Chatbot AI terbaik untuk dicoba

Pada dasarnya, anda perlu tahu bagaimana mengajukan pertanyaan yang tepat dengan cara yang tepat, dan pertanyaan-pertanyaan tersebut harus cukup ringkas agar ChatGPT dapat menangani semuanya dalam satu permintaan. Itu adalah sesuatu yang membutuhkan pengetahuan dan pengalaman pemrograman yang sesungguhnya untuk tahu bagaimana melakukannya.

Bolehkah saya memperbaiki masalah ini sendiri? Tentu saja. Saya belum pernah menghadapi masalah yang tidak dapat saya selesaikan. Tetapi, samada ia akan mengambil dua jam atau dua hari (ditambah dengan pizza, perkataan kesat, dan banyak kafein) sambil menanggung banyak gangguan, itu saya tidak tahu. Yang saya boleh beritahu anda ialah ChatGPT dapat memperbaikinya dalam beberapa minit, menjimatkan masa dan kecewa yang banyak.

Menghadapi masa depan yang mungkin (dystopia)

Saya melihat suatu masa depan yang sangat menarik, di mana akan memungkinkan untuk memberi makan ChatGPT dengan semua 153 ribu baris kod dan memintanya memberitahu apa yang perlu diperbaiki. Microsoft (yang memiliki Github) saat ini sedang bekerja pada alat "copilot" untuk Github guna membantu para programmer membangun kod. Microsoft juga telah menginvestasikan miliaran dolar pada OpenAI, pembuat ChatGPT.

Walaupun perkhidmatan ini mungkin terhad kepada persekitaran pembangunan Microsoft sendiri, saya dapat melihat bahawa pada masa depan, AI akan mempunyai akses kepada semua kod di Github, dan oleh itu semua kod dalam mana-mana projek yang anda poskan ke Github.

Juga: Saya meminta ChatGPT untuk menulis sebuah episode Star Trek singkat. Ia sebenarnya berhasil

Memandangkan betapa baiknya ChatGPT mengenal pasti kesilapan saya dari kod yang saya sediakan, saya dapat melihat masa depan di mana jurutera perisian boleh dengan mudah bertanya ChatGPT (atau versi Microsoft yang serupa) untuk mencari dan memperbaiki bug dalam keseluruhan projek.

Ini adalah tempat di mana saya membawa perbincangan ini ke tempat yang sangat gelap.

Bayangkan bahawa anda boleh meminta ChatGPT untuk melihat repositori Github anda untuk projek tertentu dan meminta ia mencari dan memperbaiki bug. Salah satu cara mungkin dengan ChatGPT mempersembahkan setiap bug yang ditemui untuk kebenaran anda, supaya anda dapat melakukan perbaikan.

Tetapi bagaimana dengan situasi di mana anda meminta ChatGPT untuk hanya memperbaiki bug, dan anda membiarkannya melakukannya tanpa melihat semua kod secara sendiri? Adakah ia mungkin menyisipkan sesuatu yang jahat dalam kod anda?

Juga: Bard vs. ChatGPT: Bolehkah Bard membantu anda kod?

Bagaimanapun, bagaimana dengan situasi di mana terdapat kecerdasan buatan yang sangat mampu dan mempunyai akses kepada hampir semua kod dunia dalam repositori Github? Apakah yang dapat disembunyikan oleh kecerdasan buatan tersebut di dalam semua kod tersebut? Apakah kejahatan jahat yang dapat dilakukan oleh kecerdasan buatan itu terhadap infrastruktur dunia jika ia dapat mengakses semua kod kita?

Mari kita bermain permainan pemikiran yang mudah. Bagaimana jika AI diberi Aturan pertama Asimov sebagai petunjuk kunci. Bahwa "seorang robot tidak boleh menyakiti seorang manusia, atau dengan tidak bertindak membiarkan seorang manusia terluka." Apakah AI tidak bisa memutuskan bahwa semua infrastruktur kita menyebabkan kerusakan bagi kita? Dengan memiliki akses ke semua kode kita, ia bisa saja memutuskan untuk menyelamatkan kita dari diri kita sendiri dengan menyisipkan pintu belakang yang memungkinkannya, misalnya, mematikan jaringan listrik, menutup jalur pesawat, dan menyebabkan kepadatan lalu lintas di jalan raya.

Saya sedar sepenuhnya bahawa skenario di atas adalah hiperbolik dan membangkitkan ketakutan. Tetapi ia juga boleh berlaku. Lagipun, walaupun jurutera perisian melihat kod mereka di Github, tidak mungkin bagi sesiapa untuk melihat setiap baris kod mereka.

Juga: Cara menggunakan ChatGPT untuk menulis formula Excel

Mengenai saya, saya akan cuba untuk tidak terlalu banyak memikirkannya. Saya tidak mahu meluangkan waktu sepanjang tahun 2020an dengan berbaring bersilaan sambil menghentakkan diri di lantai. Sebaliknya, saya akan menggunakan ChatGPT untuk membantu saya menulis dan mengesan ralat kecil dari semasa ke semasa, terus bekerja tanpa banyak perhatian, dan berharap AI masa depan tidak akan membunuh kita semua dalam usaha mereka untuk "tidak membenarkan kecederaan manusia berlaku".

Adakah anda mendapati kebolehan ChatGPT dalam melakukan penyelenggaraan penyiasatan berguna atau menakutkan? Adakah anda berfikir AIs akan membunuh kita dalam tidur kita, atau adakah anda berfikir kita akan menyaksikan kemusnahan kita dengan mata terbuka? Atau adakah anda, seperti saya, cuba untuk tidak terlalu banyak memikirkannya kerana ia menyebabkan sakit kepala? Berbual dengan saya dalam komen di bawah. Selagi anda masih mampu melakukannya.

Artikel Berkaitan

Lihat Lebih Banyak >>

Buka kunci kuasa AI dengan HIX.AI!