Vibe coding sözünü tutmadı

Albert Santalo avatar
Albert Santalo 6 dk okuma
Vibe coding sözünü tutmadı

Yazılım kuran kişilerin bulunduğu herhangi bir forumda bir saat geçirin, aynı itirafın yüz farklı sürümünü bulacaksınız. Biri uygulamasını bir hafta sonunda yapay zekâ aracıyla kurdu. Çalıştı. Yayına aldı. Şimdi pazartesi, kimlik doğrulama bozuk, veritabanı sessizce satır kaybediyor ve kimsenin yeniden üretemediği hata, ona müşteri kaybettiren hata.

Altı ay önce kendimize sattığımız hayal şimdi kapıda duruyor ve parasını geri istiyor.

Bunu nasıl söylediğim konusunda dikkatli olmak istiyorum, çünkü bu araçları kuran ya da kullanan kişilerin haksız yere sevindiğini düşünmüyorum. Sıçrama gerçekti. Sade Türkçeyle yazılmış bir paragraftan çalışan bir arayüzün belirmesini izlemek, yazılımın geçen on yılındaki gerçekten büyülü deneyimlerden biri. Ben de bunu duydum. Hepimiz duyduk.

Ama gösterim ile dağıtım arasında bir yerde sessiz bir değiştirme oldu. Prototiplere ürün demeye başladık. Gösterimlere yazılım demeye başladık. Ve bu karışıklığın faturası şimdi geliyor.

Hatalı teşhis

Gördüğüm en yaygın açıklama modeli suçluyor. Yapay zekâ henüz yeterince akıllı değil. Uyduruyor. Yanlış kitaplıkları seçiyor. Deneyimli bir mühendislik insanının yakalayıp yeniden yazacağı kod yazıyor.

Bu açıklama rahatlatıcı, çünkü zaten yolda olan bir çözümü ima ediyor. Altı ay bekle. Sonraki model daha iyi olacak. Bir gün açık kapanacak ve her şey çalışacak.

Buna inanmıyorum. İnanmıyorum, çünkü bunun başarısız olma biçiminin kodun ne kadar iyi olduğuyla hiçbir ilgisi yok.

Microsoft, 2025 sonuçlarında GitHub Copilot’ın etkin kullanıcılarının gönderdiği tüm kodun yaklaşık yüzde 46’sının artık yapay zekâ tarafından üretildiğini bildirdi. Aynı dönemde uygulama güvenliği şirketi Veracode, yapay zekâ ile üretilen kodun incelenen örneklerin yaklaşık yüzde 45’inde güvenlik açıkları getirdiğine dair bir araştırma yayınladı. Bu sayılar iyileşmeden önce kötüleşecek ve daha akıllı bir model onları düzeltmeyecek.

Sorun model değil. Süreç.

Gerçekte eksik olan

Vibe coding ile yapılmış bir uygulamanın ortaya çıkışını benimle birlikte gözden geçirin ve mimari kararın nerede verildiğini gösterin.

Ne istediğinizi tanımlıyorsunuz. Yapay zekâ bir arayüz ve arkasında biraz kod üretiyor. Arayüze bakıyorsunuz, tıklıyorsunuz, aşağı yukarı istediğinizi yapıyor ve bitti diyorsunuz. Bu döngünün hiçbir noktasında kimse, ne insan ne makine, gerçekte ne kurulduğunu tanımlamak için durmadı.

Şema yok. Veri modeli yok. Sistemin bulunabileceği durumların listesi ya da neyin doğru sayıldığının tanımı yok. Ön yüz ile arka uç gibi davranan şey arasında sözleşme yok. Kullanıcı üreticinin öngörmediği bir şey yaptığında ne olacağına dair karar yok, çünkü kimse bunu öngörmedi.

Kurulan şey, istediğiniz şeye benzeyen bir şey; tam olarak gösterim sırasında tesadüfen yürüdüğünüz yolda. O yoldan çıkın ve tüm yapının iskele olduğu ortaya çıkıyor. Altında hiç bina yoktu.

Bu bir zekâ başarısızlığı değil. Bir tanım başarısızlığı. Ve tanımlanmamış bir soruna uygulanan hiçbir miktarda ek zekâ tanımlı bir sonuç vermez. Yalnızca aynı iskelenin daha inandırıcı bir sürümünü verir.

Hiç verilmemiş üç karar

Somut olacağım, çünkü bu konuşmanın daire çizmesinin nedeni soyutlamalar.

Kimlik doğrulama sonradan eklenen bir özellik değil. Kullanıcılarınızın kim olduğu, neyi görebileceği ve uygulamanızın hangi güven sınırında durduğuna dair bir karar. Onu başlangıçtan iki hafta sonra vibe coding ile yapılmış bir uygulamaya vidalamak, duvarsız kurulmuş bir eve ön kapı takmanın programlama karşılığı.

Veritabanı şeması, yapay zekânın ona yazan bir form üretirken tahmin etmesi gereken bir şey değil. Şema uygulamanın belkemiği. Sonraki her karar (neyi sorgulayabileceğiniz, neyi dizinleyebileceğiniz, her şeyi kırmadan sonradan neyi değiştirebileceğiniz) baştan verilen ya da tam olarak verilmeyen seçimlerle kısıtlanır. Şema doğaçlandığında gelecekteki her değişiklik bir yeniden inşa olur.

Programlama arayüzü sözleşmesi seçimlik değil ve yapay zekâ ajanlarının yazılımı doğrudan kullandığı bir ekonomide arayüzden çok ürüne yakın. Uygulamanız başka herhangi bir şeyle (ödeme işleyicisi, posta servisi, başka bir yazılım, bir yapay zekâ ajanı) konuştuğu anda tanımlı bir yüzeyin var olması gerekir. Onsuz entegrasyonlar, kimsenin sürdüremediği ve kimsenin devralmak istemediği tek kullanımlık yamalar dizisine dönüşür.

Bunlar ileri düzey konular değil. İlk hafta sonundan uzun yaşayan yazılım kurmanın asgarisi. Ve tüm kurma süreci tanımla, bak, yayına al olduğunda atlanan tam olarak bu.

Yüzde 70 sorununun artık bir adı var

Kimsenin kırılgan yazılım yayına alan bir sektör kurmayı amaçladığını düşünmüyorum. Bu kategoride ortaya çıkan araçların, aracı satan anı eniyilediğini düşünüyorum: bir fikrin bir dakikadan kısa sürede çalışan bir ekrana dönüştüğü büyülü an.

Büyüye varma süresi ölçülebilir bir şey oldu. Üretime varma süresi başkasının sorunuydu.

Bu bir gösterim için makul bir eniyileme. Şimdi gerçek kullanıcılara gerçek uygulamalar yayına almaktan, oyunda gerçek parayla, sorumlu olan bir yazılım kategorisi için berbat bir eniyileme. Bütün bir yapıcı kuşağını yüzde 90’da karaya oturmuş halde bırakıyor: kendi ekranlarında çalışan ve başka her yerde dağılan bir şeyle.

Lovable topluluğundaki yapıcılar buna bir ad verdi: yüzde 70 sorunu. Neredeyse bitmiş gibi görünen bir şeye varıyorsunuz, sonra ilerleme duruyor. Her düzeltme başka bir şeyi bozuyor. Kalan iş, komutlarla geçebileceğiniz bir iş değil, çünkü sizi engelleyen şey eksik kod değil. Yüzlerce üretim önce sessizce verilmiş eksik bir karar.

Bu kategorinin kirli sırrı, kolay kısmın ilk yüzde 90 olmasıydı. Sonraki yüzde 9, yani şeyin birden fazla kullanıcı için, birden fazla cihazda, öngörmediğiniz koşullarda gerçekten çalışmasını sağlamak, ilk yüzde 90’ın tamamından daha zor. Ve son yüzde 1, yani çalışan bir uygulamayı kırılgan olandan ayıran kısım, başlamadan önce ne kurduğunuzu bilmenizi gerektiren kısım.

Yapay zekânın değiştirmediği kural

İşte kimsenin duymak istemediği şey, çünkü yalnızca ileriye doğru bir hareket olması gereken bir anda geriye doğru bir adım gibi duyuluyor.

En iyi yazılım her zaman tanımla başladı. Koddan önce mimari. Tek bir satır yazılmadan önce sorunun net bir modeli. Elli kişilik ekipler sistemleri elle kurarken doğruydu ve bir kişi ile bir model aynı sistemi bir hafta sonunda kurabilirken şimdi de doğru.

Yapay zekâ bu kuralı değiştirmedi. Yapay zekâ onu daha az değil daha önemli kıldı.

Kod üretme maliyeti sıfıra yaklaştığında kötü kod üretme maliyeti de sıfıra yaklaşır. Bu, hâlâ bedeli olan tek şeyin hangi kodun doğru olacağını belirlemek olduğu anlamına gelir. O iş (tanım işi, mimari işi, kurmaya başlamadan önce gerçekte ne kurduğunuza karar verdiğiniz kısım) meta hale gelmemiş tek kısım.

Aynı zamanda mevcut araç kuşağının atladığı kısım.

Bu gerçekte nereye varıyor

Cevabın yavaşlamak olduğunu düşünmüyorum. Cevabın her şeyi elle yazmaya dönmek olduğunu düşünmüyorum. Sıçrama gerçekti ve sıçrama kalıcı.

Cevap, tanım adımını döngünün içine kurmak; sektörün artık spesifikasyon odaklı geliştirme dediği uygulama. Sizi yavaşlatan elle işleyen bir kapı olarak değil, işin geri kalanının üzerinde durduğu gerçek bir temel olarak. Bunu nasıl yapacağını belirleyen kişiler şimdiye kadar gördüğünüzden daha sessiz bir şey üzerinde çalışıyor. Bu kategorinin gürültülü sürümünü her zaman olduğu şey gibi göstermeye yakınlar. Bu sonraki kuşağın neye benzediğini ayrıca yazdım.

Çalışan bir ekran hiçbir zaman çalışan bir sistemle aynı şey değildi. Hepimiz bunun nedenini yeniden hatırlamak üzereyiz.

İlgili okumalar

Yerini alan şey: spesifikasyon odaklı geliştirme. Araçların bugün nasıl olduğu: 2026’nın en iyi yapay zekâ uygulama oluşturucuları.

Sıkça sorulan sorular

“Vibe coding” ne anlama geliyor? Vibe coding, ne istediğinizi sade dille tanımlayarak ve yapay zekânın ürettiğini, altındaki mimariyi, veri modelini ya da sözleşmeleri tanımlamadan kabul ederek yazılım yazmak. Andrej Karpathy terimi 2025 başında ortaya attı. Bir araç kategorisini değil bir çalışma biçimini tanımlıyor: vibe coding neredeyse her yapay zekâ oluşturucusunda mümkün.

Vibe coding ile yapılmış uygulamalar üretimde neden çatlıyor? Çünkü arıza yapısal, kod kalitesi meselesi değil. Üretim döngüsü hiçbir zaman bir şema, tanımlı bir doğru durumlar kümesi ya da ön yüz ile arka uç arasında bir sözleşme üretmiyor. Uygulama gösterildiği yolda çalışıyor ve onun dışında dağılıyor. Tanımlanmamış bir soruna uygulanan daha akıllı bir model yine tanımlanmamış bir sonuç veriyor.

Yüzde 70 sorunu nedir? Yapay zekâ ile kurulmuş bir uygulamanın yaklaşık yüzde 70 tamamlanmışlığa varıp daha ileri gitmeyi bırakması örüntüsü: her düzeltme başka bir şeyi bozuyor ve daha fazla komut açığı kapatmıyor. Engel genellikle yüzlerce üretim önce sessizce verilmiş ve artık yeniden yazmadan değiştirilemeyen bir mimari karar.

Yapay zekâ ile üretilen kod daha mı güvensiz? Mevcut kanıtlar gözden geçirme gerektirdiğini söylüyor. Veracode araştırması, yapay zekâ ile üretilen kodun incelenen örneklerin yaklaşık yüzde 45’inde güvenlik açıkları getirdiğini buldu; Microsoft ise Copilot’ın etkin kullanıcılarının gönderdiği kodun yaklaşık yüzde 46’sının yapay zekâ tarafından üretildiğini bildiriyordu. Hacim, doğrulamadan hızlı büyüyor.

Bu, yapay zekâ uygulama oluşturucularının kullanılmaması gerektiği anlamına mı geliyor? Hayır. Prototipler, gösterimler ve iç araçlar için gerçekten mükemmeller ve hız gerçek. Buradaki sav daha dar: çalışan bir ekran çalışan bir sistem değil ve tanım aşamasını atlayan araçlar, model ne kadar iyi olursa olsun ikincisini üretemez.

İlgili Gönderiler