Prompt’u yazıyorsunuz, kırk saniye sonra çalışan bir arayüz geliyor. v0 ve Bolt.new gerçekten ne yapıyor, neyi yapmıyor ve o beş dakikalık prototip kendi projenize girdiğinde ne oluyor?
Prompt’u yazıyorsunuz, kırk saniye sonra çalışan bir arayüz geliyor. v0 ve Bolt.new gerçekten ne yapıyor, neyi yapmıyor ve o beş dakikalık prototip kendi projenize girdiğinde ne oluyor?
Production ortamında karmaşık bir log silsilesini çözmesi için güvendiğim bir yapay zeka ajanıyla çalışıyordum. İlk beş dakika her şey harikaydı; mimariyi anladı, kodun zayıf noktalarını buldu. Ancak on beşinci dakikaya ve yirminci prompta geldiğimizde, o dahi yapay zeka abimiz aniden Finding Nemo’daki Dory’ye dönüştü. Bana en başta kendi verdiğim parametreleri, hatta ne yapmaya çalıştığımızı sormaya başladı.
Serinin önceki yazılarında AI ile kod yazarken nasıl “güç zehirlenmesi” yaşadığımızı ve “medyum” gibi davrandığımızı konuşmuştuk. Ama teknoloji dünyası “dur biraz dinlen” demiyor. MindsDB, Anton adını verdiği “Otonom BI Ajanı” ile karşımıza çıktı.
Serinin önceki yazılarında “Vibe Coding” ile ortalığı nasıl dağıttığımızı ve AI’nın verdiği o sahte “Tanrı modu” özgüveniyle nasıl zehirlendiğimizi konuştuk. Bugün ise işin biraz daha “spiritüel” boyutuna iniyoruz: Prompt Engineering. Pardon, ağzımdan yanlış çıktı; aslında kastettiğim şey Kod Medyumluğu. Çünkü dürüst olalım, çoğumuzun klavye başında yaptığı şey mühendislikten çok, bir ruh çağırma seansına benziyor. Ekranın karşısına geçip, “Ey GPT, eğer buradaysan bize bir useEffect içinde çalışan, ama sonsuz döngüye girmeyen bir fetch fonksiyonu gönder…” diye dua ediyoruz. Gelin bu seanslarda yaptığımız o meşhur hatalara ve “mühendislik” sandığımız medyumca davranışlara 11 maddede bakalım.
Birçok geliştiricinin “yapay zeka ile kod yazıyorum” derken aslında yaptığı şey, klasik VS Code editörüne bir GitHub Copilot eklentisi kurup sekme tuşuna basmaktan ibaret. Eğer yapay zekayı sadece bir “otomatik tamamlama” aracı olarak kullanıyorsanız, Vibe Coder felsefesinin yanından bile geçmiyorsunuz demektir.
Yapay zeka ile ürün geliştirirken en sık duyduğum şikayetlerden biri şudur: “Yapay zeka harika bir arayüz yazdı ama veriyi kaydetmeye çalıştığımda sistem çöktü. Çünkü olmayan bir tabloya, olmayan bir sütun eklemeye çalışmış.”
Bu aslında yapay zekanın değil, sizin hatanızdır. Çünkü ona bir ev inşa etmesini söylediniz ama temelin planını (blueprint) vermediniz.
Yapay zeka destekli kodlamaya giriş yapanların yaşadığı ilk büyük hüsran genelde hep aynıdır: En pahalı AI modelini kiralarlar, son model bir IDE kurarlar, derin bir nefes alıp “Bana şu mimaride bir portal yaz” derler ve sonuç tek kelimeyle felakettir. Uygulama çalışmaz, dosyalar birbirine girer, AI sürekli halüsinasyon görür.
Sonra da “Bu yapay zeka henüz o kadar iyi değil ya” derler. Hayır dostum, yapay zeka gayet iyi. Sorun senin seçtiğin altyapıda.
Geleneksel yazılım dünyasında roller çok net çizgilerle ayrılmıştı: Ürün yöneticisi (PM) ne yapılacağını söyler, tasarımcı nasıl görüneceğini çizer, yazılımcı ise kendisine verilen bu talimatları koda dökerdi. Bu süreçte haftalar süren PRD (Ürün Gereksinim Dokümanı) toplantıları, bitmek bilmeyen Jira süreçleri ve “bu benim işim değil” bariyerleri arasında fikirler ölürdü. Vibe Coder çağında bu hiyerarşi yerle bir oluyor.
Yapay zeka araçlarının yaygınlaşmasıyla birlikte yeni bir kavram türedi: Chat-Oriented Programming (CHOP). Birçok kişi, ChatGPT veya Claude penceresini açıp “Bana bir login sayfası yaz” demeyi “vibe coding” sanıyor. Oysa bu iki yaklaşım arasında, bir orkestra şefi olmakla, bir restoranda garsona sipariş vermek kadar büyük bir fark var.
Yazılım dünyasında uzun süre boyunca “yazılan kod satırı sayısı” bir başarı metriği olarak görüldü. Ancak Bill Gates’ten Cory Doctorow’a kadar sektörün kanaat önderlerinin yıllardır vurguladığı bir gerçek var: Kod bir varlık (asset) değil, bir yüktür (liability). Yazdığınız her satır kod, bakımını yapmanız, test etmeniz ve güvenliğini sağlamanız gereken teknik bir borçtur.