- Son dönemde bilgisayar kullanıcıları, kendi iradelerinden bağımsız olarak sayısız anlamsız işi tekrar tekrar yapıyor ve bilgisayarın söylediğini uyguluyor
- LLM'ler geliştiricilerin API tasarlama biçimini etkilemeye başladı; hatta geliştiricilerin AI'nın önerdiği özellikleri benimsediği ve yakında kodun çoğunu AI'nın yazacağı yönünde öngörüler ortaya çıktı
- Örneğin, Soundslice ChatGPT'nin yanlış yönlendirdiği bir özelliği gerçekten ekledi
- Bunun nedeni, LLM'lerin çok sayıda API'yi analiz ederek geliştiricinin ilk aklına gelebilecek sezgisel tasarımları önermesi
- Yeni fikirler ya da özgün yaklaşımlar geliştirirken LLM'ler uygun olmasa da, çoğu durumda en bariz tasarımı izlemek etkili olabilir
- Artık AI'nın yalnızca araç kullanımını değil, araçların nasıl tasarlanacağını da yönlendirdiği bir döneme girildi
Gaslight-driven development
Gündelik hale gelen anlamsız işler
- Son 10 yılda bilgisayar kullanan herkes, üyelik oluşturma, e-posta doğrulama, çerez onayı, CAPTCHA girme gibi özünde gereksiz işleri tekrar tekrar yaptı
- Kullanıcılar bunu istemeseler de bilgisayarın dediğini yapmak zorunda kaldı
- Bu tekrarlar sayesinde, bir bakıma makinenin söylediğini yapmaya alışmış bir hayat zaten normalleşmiş durumda
LLM'lerin değiştirdiği geliştirme gerçeği
Bu olgunun anlamı
- Bu değişimin olumlu mu olumsuz mu olduğunu söylemek zor
- Bir yandan, LLM'ler çok sayıda API üzerinde eğitildiği için geliştirici açısından 'en sezgisel' yöntemi önerme etkisine sahip
- Aynı zamanda API'leri yeni başlayanların bakış açısından (newbie’s POV) test etmenin yeni bir yolu
- Eskiden geliştirici hata yapınca belgeye bakıp kendisi düzeltirdi; şimdi ise LLM sürekli yanlış kullanım örnekleri üreterek geliştiricinin de problemi daha hızlı fark etmesini sağlayabiliyor
Sınırlar ve soru işaretleri
- Yenilikçi işlerde bu yaklaşım uygun değil
- LLM'ler alışık olmadığı kalıpları ya da tamamen yeni kavramları anlayamıyor
- Sonuçta API gibi alanlarda 'sıradanlık' en iyi seçenek olabilir
- Çoğu durumda karmaşık tasarlamak yerine hem AI'nın hem geliştiricinin sezgisel olarak anlayabileceği biçimler daha avantajlı
Sonuç: yeni bir çağın başlangıcı
- AI artık yalnızca verilen araçları kullanmakla kalmıyor, aracın kendisinin nasıl tasarlanması gerektiği konusunda da fikir sahibi olmaya başlıyor
- Ve bu fikirler çoğu zaman sanki başından beri öyleymiş gibi geliştiricileri ve organizasyonları gaslighting yoluyla etkiliyor
- Önümüzdeki dönemde AI'nın beklenti ve sağduyusuna göre geliştirme yapmak, doğal bir standart haline gelebilir
6 yorum
Bazen, yol bağımlılığı denen büyük kavramın içine LLM bağımlılığı diye güçlü bir çivi çakılıyormuş gibi geliyor. "Eskiden beri kullanıyoruz"dan "LLM seviyor"a doğru değişen bu his, sonuçta nereye varacak acaba...
LLM bunu uzun zamandır kullandığımız şeylerden öğrenmişti..
"Artık bilgisayarı kapatabilirsiniz"
Mükemmel bir benzetme!!
Hacker News görüşleri
421: Misdirected Requestdurum kodu döndürmenin nasıl olacağını düşündüm; ya da doğrudan gerçek501: Not Implementedda kullanılabilir. Eğer501ton olarak tam uymuyorsa, yeni bir durum kodu olarak513: Your Coding Assistant Is WrongöneriyorumHTTP durum kodları wiki referansı
513: Your Coding Assistant Is Wrongfikri çok komikti, sayende keyfim yerine geldi; bir yandanHTTP 407 Hallucinationda önermek isterim, yani sunucunun isteği anladığı ama bunun gerçeklikle uyuşmadığına karar verdiği durumGPS is wrong örneği
(JavaScript kodu sağlanmış)
bilimsel makale bağlantısı, sinirbilim wiki referansı
Chess Royale ekran görüntüsü
tx.updatefonksiyonu hem entity ekleme hem de güncelleme işini yapacak şekilde tasarlanmış, ama LLM durmadantx.createkodu yazıyordu; sonundatx.createfonksiyonunu da ekledim. Böyle kafa karıştırıcı noktalarda yalnızca LLM'lerin değil gerçek geliştiricilerin de gereksiz yere çok zaman kaybetmiş olabileceğini düşündümtx.createbaştan beri yoksa, birinin zaman kaybetmesi de söz konusu olmazdı diye düşünüyorumupdateyerineputolması gerektiğini düşünüyorum;updateyanlış anlamaya açıkupsertputadı mevcut içeriğin üzerine yazmayı ima ederken,upserthem ekleme hem güncelleme anlamını taşıyorKullanıcıların e-posta doğrulaması ya da kayıt olması da bilgisayar emrettiği için değil, insanların yaptığı tasarım tercihleri yüzünden diye düşünüyorum
İleride kodun okunabilirliği, SOLID ilkeleri ya da karmaşıklığa odaklanmaktan çok, kullandığım agentic IDE'nin kod bağlamını ne kadar iyi indeksleyebildiği ve modelin o kod üzerinden ne kadar iyi üretim yapabildiği daha önemli olacak gibi görünüyor
Kod değişim hızı çok arttıkça bakım yapılabilirlik aslında temel metrik hâline gelecek; prompt ile kodun ne kadar uyumlu olduğu ve tesadüfen iyi örtüşen kodun kullanılabilirliği gibi şeylerin daha fazla öne çıktığı bir dünyaya gidiyoruz diye düşünüyorum
Örneğin AWS tarafında
dev,prodvar, Expo'da isetest,productionkullanılıyor; projeler arasında gidip geldikçe bu beklenenden daha fazla zihinsel yük oluşturuyorLLM'in de bu problemi çok daha büyük ölçekte yaşıyor olabileceğini düşünüyorum
Gereksiz API adlandırma/davranış karmaşasına giden bu sinapsları gerçekten anlamlı işlere ayırabilsek en iyisi bu olurdu
LLM ne kadar akıllıca isim verirse versin, incoherent stochastic process'e dayandığı için sorun sürüyor
Ayrıca environment adlandırmasının neden standart olmadığını hiç ciddi ciddi sordunuz mu diye de sormak isterim
Eski bir CTO olarak bunu, organizasyon içi iletişim ve standart eksikliği gibi iyileştirilmesi gereken şeylerin işareti olarak görüyorum
Gerçek kültürü geliştirip ekip farkındalığını artırabildiği için, bu kadar kolay düzeltilebilecek konuları LLM'e bırakmak yerine daha doğrudan ele almak gerektiğini söylemek isterim
önceki Hacker News tartışmasına bakın
Soundslice'ın viral başarısı