Bu geliştirici ChatGPT ve onunla bir aşk-nefret ilişkim var.
Günümüzde yapay zeka hakkında çok fazla makale var, bu yüzden bunu kısa tutmaya çalışacağım.
ChatGPT'yi kodlamak için kullanmak, altınızda bir Kıdemsiz geliştiriciye sahip olmak gibidir. Kodun %80'ini oradan alabilirler, ancak hemen hemen her satırı incelemeniz gerekir.
Kod yazmaya yardımcı olması için ChatGPT'yi kullanmanın birçok yolu olduğunu itiraf etmeliyim. Muhtemelen bazılarında daha iyi, bazılarında ise daha kötü.
Örneğin, birçok insanın bunu arama motoru olarak kullandığını duydum. Ben kişisel olarak bunu biraz tartışmalı buluyorum. Arama yoluyla belgeleri ve hatta yanıtları bulmak o kadar da zor değil. Tüyleri azaltmaya yardımcı olan Kagi kullanıyorum.
Aksine, ChatGPT'yi kullanarak cevabın doğru olup olmadığını nasıl bileceksiniz?
Yelpazenin diğer tarafında, bunu yüceltilmiş bir otomatik tamamlama olarak kullanan pek çok insan var. Github Copilot'a benzer bir şey. Bunun faydalı olduğunu görebiliyorum.
Seçtiğim senaryo şu:
Kodumu chakra-ui'den tailwindcss'e dönüştürüyorum.
Neden?
Sahaya baktığımızda, iyi veya vasat sonuçlar almak arasındaki farkın iyi yönlendirmek olduğu görülüyordu. Bu konuda en iyisi değilim ama biraz araştırma yaptım ve elimden gelenin en iyisini yapmaya çalıştım.
İyi bir duruma getirmek için birden fazla bilgi istemi kullandığımdan emin oldum. Yalnızca kodumu dönüştürmesi gerektiğini biliyormuş gibi göründüğünde kodumu yapıştırmak.
Açıkçası bu kısım geliştirilebilir. Kullanıcı arayüzü ve etkileşim arasında kullanımı oldukça zahmetli:
İstenilen duruma ulaşması biraz zaman alabilir
Ne yazacağımı düşünmek, sonra onun cevap vermesini ve yazmayı bitirmesini beklemek arasında bu işi yapmak oldukça sinir bozucu oluyor.
Bu tutarsız
Her zaman aynı istemleri yeniden kullanamamanızın bir faydası olmaz. ChatGPT'nin bazı rastgelelikleri var, bu yüzden her seferinde komut isteminde ince ayar yapmak zorunda kaldım. Daha önce işe yarayan bir istemi kopyalayıp yapıştırmak işe yaramadı.
İstenilen durumdan çıkmak çok kolaydır
Tek seferlik bir şeyse yukarıdakiler iyidir. Ancak yapay zekanın ilk kod dönüşümünden sonra her şeyi unutmasının çok kolay olduğunu gördüm. En çok tekrarladığım başarı sanırım 3 kez oldu. Bunun ötesinde, kodumun ne yaptığını açıklamak gibi tamamen ilgisiz şeyler döndürdü.
Jeton oldukça sınırlayıcı bir faktördür
Token limiti nedeniyle üretebileceği kod miktarı sınırlıdır. Tokenleri nasıl hesapladığını görmek için tokenizer'ı buradan kontrol edebilirsiniz. Kod açısından pek uygun değil. Aşağıda çıktılarından birinin bir örneği verilmiştir. Her farklı renk bir jetonu temsil eder.
Bu nedenle dönüşümü birden fazla adıma bölmem gerekiyor. Aksi takdirde nesil ortada duracaktır. Devam etmesini söylemek çoğu zaman işe yaramaz. Yukarıdaki noktalarla birleştiğinde, bu hızla yapılması gereken bir angarya haline gelir.
Sonuç olarak, İngilizce yazmak istemediğim hissine kapılıyorum. Zaten bir şey yazmam gerekiyorsa, doğrudan çalışan kodu yazmayı tercih ederim.
Hızlı mühendisliğin gelecekte sahip olunması gereken önemli bir beceri olduğunu görebiliyorum. Nasıl arama yapılacağını bilmenin günümüz dünyasında önemli bir beceri olduğu gibi.
Yaptığı tüm çalışmalara rağmen ChatGPT oldukça etkileyici kodlar üretti. İşte orijinal ile sonuç arasında bazı karşılaştırmalar:
Gördüğünüz gibi işini oldukça iyi yaptı.
İyi
Yapı oldukça iyi bir şekilde aktarıldı
Detaylar dışında HTML yapısı orijinaline oldukça benzer. Aralıklar kapalı ancak genel düzen aynı kalıyor.
Metin içeriği değişmiyor
İçeriğin kendisi iyi işlendi. Hepsini tekrar kontrol etmem gerekse de hiçbiri değişmedi. Tek istisna JS'den türetilenlerdir.
Kötü
Rastgele sınıfları vardı
Hiçbir şey yapmayan birçok sınıf var. Bazıları değiştirildi, bazıları ise geçersiz arka rüzgar sınıflarıydı.
Çok sayıda küçük fark var
Kullanıcı arayüzü sanki bir kitaplık yeni sürüme geçirilmiş gibi görünüyordu ve birisi kodu taşımayı unutmuştu. Bu durumda bunun nedeni ChatGPT'nin sınıfların değerlerini rastgele değiştirmesidir. Örneğin, 3'ten 4'e kadar bir padding
veya font-weight
kalından normale değiştirilmesi. Detayların hepsi yanlıştı.
Yarısında çalışmıyor
Yukarıdaki ekran görüntüleri doğrudan karşılaştırabileceğim görüntülerdi. Gerçekte, sonuçlar ya eksikti ya da o kadar yanlıştı ki, işe yaraması için birçok değişiklik yapmak zorunda kaldım. Ve bu yüzden yan yana kıyaslayamam. Kod çalışmadığından karşılaştırabileceğim hiçbir şey yok.
Bu konuda harika olan şey, üzerinde çalışabileceğim bir şeyin olması. Neyse ki, işin kendisi çok basit. Hataları tespit etmek kolaydır. Chakra-ui ve arka rüzgardan gelen sınıflar arasındaki eşleme neredeyse bire birdir. Bu sadece sıkıcı çünkü sözdizimi farklı.
Ancak bu yaklaşım daha çok PR'leri incelemeye benzer. Her şeyin doğru yapıldığından emin olmak için kodun tamamını taramam gerekiyordu.
İlk bakışta tamam görünüyor. Ancak onunla çalışıp yakından dikkat ettiğinizde birçok sorunla karşılaşırsınız. Tüm kusurları keşfettiğimde beni biraz hayal kırıklığına uğratan bu sahte güvenlik duygusunu getiriyor.
Bunun büyük bir kısmı diğer kod tabanlarından enterpolasyonlu koddur. Korkunç görünmüyor ama istediğim bu değil.
Hatta istikameti h2'den h1'e değiştirmek gibi bazı endişe verici değişiklikler bile var. Bunu yalnızca içerik nedeniyle yaptığını varsayabilirim.
Sanki kıdemsiz bir geliştirici bir şeyi tokatlamış ve kodunu test etmemiş gibi hissettim . Ve şimdi onlara sorunu kendilerinin düzeltmelerini söyleyemeden gözden geçirip düzeltmem gerekiyor.
Ve bu çok kötü. Zaten iş yerinde PR'leri gözden geçirme fikrim var. Şimdi bunu kendi projelerim için de mi yapmam gerekiyor? Hayır, teşekkürler!
Henüz bu noktaya yakın bir yerde olduğunu düşünmesem de yapay zekanın gelecekte gelişim için bir noktada faydalı olacağını düşünüyorum. Cevabın Yüksek Lisans olup olmadığını kim bilebilir?
Token limitleri sürekli artıyor
Bu makaleyi bitirmeyi yeterince erteledim. Bu süre zarfında token limitinin artırılacağına dair birçok duyuru yapıldı. Halka açık mı, ücretli mi yoksa başka bir şey mi olduğundan emin olmasam da, bunu görmek harika.
UX'i yönlendirmek zamanla kolaylaşacaktır
ChatGPT eklentileri ve daha iyi entegrasyon sayesinde durum ve tutarlılığın hatırlanması gibi konular iyileştirilmelidir. Umuyoruz ki bu, ChatGPT'den faydalı çıktılar almak için gereken çabayı azaltacaktır.
Bu arada taşıma işleminin diğer yarısını manuel olarak tamamladım. Daha mı hızlıydı? Kim bilir? Aynı şeyi hissettim. Ancak manuel olarak yazmak çok daha iyi hissettirdi.