Vibe coding kültü çılgınlık
(bramcohen.com)- Claude kaynak kodunun sızması olayı, "vibe coding" inancının gerçek proje kalitesine nasıl zarar verdiğini ortaya koydu
- Vibe coding, kodun içine hiç bakmamayı ilke edinse de bu tam anlamıyla bir hurafe; pratikte plan dosyaları, beceriler, kurallar gibi insan eliyle kurulmuş yapılar mutlaka eşlik ediyor
- Yapay zeka, kod tekrarları ile teknik borcun temizlenmesi gibi işlerde gerçekten çok başarılı; ancak bundan yararlanmak için insanların kodu bizzat inceleyip sorunu tespit ederek yapay zekaya anlatması gerekiyor
- Yapay zekanın kendiliğinden "burada spagetti kod var, bunu toparlamalıyım" diye fark etmesi nadir; insan önce yön ve bağlam verdiğinde yüksek kaliteli sonuçlar ortaya çıkıyor
- "Kötü yazılım geliştiricinin seçimidir" ifadesinde olduğu gibi, kalite düşüşü yapay zekanın değil kararların sonucu
- Yani yazılım kalitesindeki düşüşün nedeni yapay zeka değil, geliştiricinin kendi tercihleri
Claude kaynak kodu sızıntısı ve vibe coding sorunu
- Claude'un kaynak kodu sızdı ve kod kalitesinin düşük olduğu gerekçesiyle birçok kişi tarafından alaya alındı
- Bunun nedeni olarak dogfooding'in aşırıya kaçması, yani şirketin kendi ürününü fazla körü körüne kullanma kültürü gösterildi
- Dogfooding başlı başına iyi bir fikir olsa da, makul sınırları aşarak kült benzeri bir faaliyete dönüşebilir
Vibe coding'in gerçekte ne olduğu
- Vibe coding, kodun içine hiç katkıda bulunmamak, hatta ona bakmamak ilkesine dayanan bir yaklaşım
- Ancak saf vibe coding bir efsane (Myth) — gerçekte yapılacaklar listesi niteliğindeki plan dosyaları, beceriler, kurallar gibi insanların oluşturduğu bir çerçeve mutlaka bulunuyor ve bu yapı olmadan yapay zeka çok düşük performans gösteriyor
- Kod İngilizce yazıldığı için herkes tarafından okunabilir olmasına rağmen, "içine bakmak hile" mantığıyla geliştiriciler bunu bizzat doğrulamayı reddediyor
- Gerçekte bir insan kodu incelediğinde ajanlar ile araçlar arasında büyük çaplı tekrarlar olduğu görüldü; oysa bu, birinin kısa bir bakışıyla kolayca fark edilebilecek bir problemdi
Yapay zeka ve teknik borcun temizlenmesi
- Yazılım projeleri çoğu zaman teknik borçla yola çıkar; geçmişte bunu temizlemek bazen tek başına 1 yıl sürebiliyordu
- Yapay zekayla bu temizlik işi birkaç haftada tamamlanabilir ya da yeni özellik geliştirmeyle paralel ilerletilerek kademeli biçimde azaltılabilir
- Yapay zeka kod temizliğinde çok iyidir, ancak sorunu kendi başına tespit etme becerisi zayıftır — insanın "burada spagetti kod var" deyip rehberlik etmesi iyi sonuçların anahtarıdır
Yapay zekayı doğru kullanma biçimi — konuşma temelli yaklaşım
- Tekrar sorununu çözmek için şu adımlar öneriliyor:
- Hem ajanlara hem araçlara karşılık gelen öğelerin listesini çıkarma
- Örnekleri inceleyip her öğenin ajan mı araç mı olduğuna karar verme
- Genel ölçütleri tartışıp ortak yönergeler oluşturma
- Tüm öğeleri denetleyip yanlış sınıflandırılanları düzeltme
- Her iki tarafta da bulunan öğelerde iki sürümü inceleyip tek bir sürümde birleştirme
- Ask modu bu süreç içindir; örnekleri birlikte incelemek ve yapay zeka aşırı uyum göstermeye çalıştığında yanlışları düzeltmek sürecin özüdür
- Yeterince konuşmanın ardından yapay zekanın tek atışta (one-shot) yapılmış gibi görünen bir sonuç ürettiği hissedilebilir; ama gerçekte bunun arkasında insanla önceden yapılmış yoğun etkileşim vardır
- Claude ekibi bu süreç olmadan dogfooding'i uç noktaya taşıyarak, kodun içine kısa bir bakış atıp sorunu açıklama yönündeki en asgari çabayı bile reddediyor
Gerçek kullanım örnekleri
- Kendi iş akışı örneği: konuşmanın başında "bu kod tabanında erişilemeyen kodu denetleyelim" ya da "bu fonksiyona bakmak göz yoruyor" diyerek diyaloğu başlatıyor
- Uygulanabilir bir yön çıkana kadar konuşmayı sürdürüyor, yapılması gerekeni açıkladıktan sonra yapay zeka saçma şeyler söylemeyi bırakana kadar tartışmaya devam ediyor
- Sonrasında plan yapıp derlemeyi çalıştırmak günlük yönteminin bir parçası
Yazılım kalitesi bir tercih meselesi
- Yapay zeka kullanmak, düşük kaliteli yazılımı kabullenmek zorunda olmak anlamına gelmiyor
- Yapay zeka yardımı olmadan çalışan ve aşırı ücret alan geliştiricilerin yazdığı kütüphaneler de kötü kalitede olabilir
- Kötü yazılım kişinin kendi kararıdır; bunun sorumluluğunu almak ve daha iyi kaliteyi hedeflemek gerekir
9 yorum
AI AGENT ile FULL AUTOMATION yapıp kod üretimini, merge’ü, review’u ve doğrulamayı bile tamamen otonom hale getirerek kod tabanının oluştuğunu, sizin de buna zerre kadar kafa yormanıza gerek olmadığını; olsa olsa bazen agent’ların birbirine dolandığında ya da geliştiricinin araya girmesi gerektiğinde müdahale etmenin yeterli sayıldığını, bunu yapamayan geliştiricilerin de trendi takip edemeyen anormal tipler gibi görüldüğü bir ortam ortalığa saçılıp durdu... Normalde ne kadar boilerplate kodu boca edip basit desenlerin tekrarından ibaret kodlar yazarak yüksek maaş aldıkları ortadayken, şimdi AI sayesinde artık kod yazmaya gerek kalmadı diye ahkâm kesenleri görünce insanın içi acıyor.
Oldukça küçük ayrıntılara kadar mikroyönetim yapmak gerekiyor ki makul kalitede kod üretilebilsin. Tam otonominin, gerçekten büyük miktarda boilerplate kod üretmek dışında mantıklı olmadığını düşünüyorum. Tam otonomiden bahseden insanlar iki gruptan biridir: ya ne yaptığını pek bilmiyordur ya da dolandırıcıdır.
Yarım yamalak projeler ortalığı kaplıyor…
Programlamayı yarım bilen insanlar ise coşuyor…
dogfooding'i tekelcilik olarak değil, daha çok dog pudding olarak görmek daha doğru olur.dog食...
Başlıkla içerik farklı…?
Vibe coding’in eninde sonunda “kod incelemesi yapmamak” diye sonuçlandırılıp buna göre gerekçe uydurulan bir eleştiri gibi duruyor.
Bir de buna Claude Code’u bağlamak da mantıklı değil; o düzeyde kalite ölçütleri, yani örneğin Linux bakım düzeyindeki mühendislik ilkeleri söz konusuysa, kod kalitesi sorununa böyle parça parça yaklaşılmaz. Neredeyse çoğu propagandaya dayalı bir yaklaşım; bizzat test etmiş olmaktan çok, kulaktan dolma şekilde “öyleymiş” deniyor.
Bir bakıma, Samsung’un bina tasarımını beğenmeyip “Sony’yi yakalamasına daha çok var” demeye benziyor.
Claude Code'u ilk denediğimde yabancı arkadaşlarıma "Ben ilk kez vibe coding yaptım!" demiştim; onlar da anlattıklarımı dinledikten sonra "Hayır, bu vibe coding değil; asıl vibe coding, gerçekten koda hiç bakmamak demek" diye cevap verdiler. Bizde yaygın olarak sözü edilen 'vibe coding', Batı'da tanımlanandan çok daha geniş bir anlamda kullanılıyor gibi görünüyor. Hacker News'te kastedilen vibe coding'i 'kod incelemesi yapmamak' olarak tanımlamak doğru.
Hacker News görüşleri
İnsanların, sızdırılan Claude Code kaynak kodunun kalitesini örnek gösterip “vibe coding”in başarısız olduğunu söylemesi tuhaf
Bence tam tersi. Geleneksel “iyi kod” kurallarını çiğneseniz bile popüler ve başarılı bir ürün yapabileceğinizin kanıtı
Son teslim tarihi yüzünden geçici çözüm olarak yazılan kodun production'da kalması çok yaygın
Kişisel projelerde de ilk commit'ler dağınık olur, ancak sonra toparlama branch'i açıp düzeltirim
Ama şirketlerde ikinci, üçüncü taslağı yapacak zaman neredeyse hiç olmaz, bu yüzden sonunda ilk taslak deploy edilir
Açıkçası adımın üstünde olduğu kodun sızmasından ben de endişe ediyorum. Ama gerçek bu
Kodu değiştirirken “bu biraz zorlama gibi” hissi geliyorsa, o anda düzeltmek sonunda zaman kazandırır
LLM'ler konusunda ise henüz yeterince deneyimim olmadığı için emin değilim
Claude Code özünde basit bir ürün ve asıl değer modelin kendisinde
Yani kod kalitesi düşük olsa bile büyük sorun yaratmayan düşük riskli bir ürün, bu yüzden böyle bir örnek mümkün oldu
Bu, “vibe coding” kavramının ihlali de değil. Yapı şu: yüksek seviyeli soyut fikirler veriliyor, gerçek kodu AI yazıyor
Claude Code, AI Level 7 düzeyinde (insan spesifikasyonu verir, bot kodu yazar) ve yazara göre Level 6 daha iyi
Herkesin ideal seviyesi farklı. Kimi için sınır Level 5 ve altıyken, kimi Level 2'nin üstünü bile riskli görüyor
Uygun seviye, alanın karmaşıklığına ve yeniliğine göre değişiyor
Mesela geliştirdiğim uygulamada algoritma kısmı Level 0, UI Level 7, middleware ise bunların arasında bir yerde
Asıl beceri, her kod alanı için doğru seviyeyi bulmak
Dinamik dillerde bunun üstü bana güvensiz geliyor. Eğer Level 7 ve üstüne çıkacaksam tamamen statik tipli bir dile geçmek daha mantıklı olur diye düşünüyorum
Kodlama artık demircilik gibi olacak; küçük bir kısmı kalacak, büyük kısmı otomatikleşecek
Ama bunun sayesinde bir kişi, eskiden tüm bir ekibin yaptığı işi yapabilecek
Nasıl çalıştığını tam anlamadan bir özelliği kabul etmenin cazibesi büyük
Bu yazının yazarı BitTorrent'in yaratıcısı. Sıradan bir blog yazarı değil
Claude Code'u en çok kod kalitesini iyileştirmek için seviyorum
İnsanın yapınca zaman kaybı gibi görünen işleri AI neredeyse bedavaya yaptığı için mantıklı oluyor
Tekrarlayan test pattern'lerini düzenlemek, JSON serialization tutarlılığını korumak, yinelenen kodu kaldırmak gibi
Sonuçta kod tabanı küçülüyor ve bakımı kolaylaşıyor. Bir tür büyük ölçekli linting gibi
Her modelin ürettiği sonucu çapraz doğruluyorum, sonunda da Opus son listeyi oluşturup düzeltmeleri yapıyor
Gereksiz değişiklik çok oluyor ama yakaladıkları problemler gerçekten işe yarıyor
“Dogfooding” açısından ilginç
Mesele kod kalitesi değil, kullanıcının AI çıktısını eleştirel biçimde değerlendirebilip değerlendirememesi
Deneyimli bir mühendisin muhakemesini koruyarak AI kullanması ile, muhakemeyi AI'ya bırakması tamamen farklı şeyler
Sorun şu ki araçlar bu ikisini ayıramıyor ve pazarlama ikinci gruba göre yapılıyor
‘Vibe coding’i savunanlar, LLM'lerin insandan çok daha hızlı iterasyon yapabildiğini, bu yüzden kod kalitesinin önemli olmadığını söylüyor
İnsanlarda her aşamanın (yazma–doğrulama–düzeltme) maliyeti yüksek ama LLM'lerde hızlı tekrar çoğunlukla sadece token maliyeti demek
Ama ben bu yaklaşıma şüpheyle bakıyorum. Gerçekte bozulan çok fazla örnek gördüm
Yine de LLM'ler daha da gelişirse belki onların dediği doğru çıkabilir
“Vibe coding” spektrumunda iki grup var
Biri teknik geçmişi olmayan ama bunu heyecan verici bulanlar, diğeri ise AI karşıtları
Bunların arasında sessiz ama üretken bir orta katman var. Bunlar iyimser ama aynı zamanda deneyimli
Ben de son 6 ayda Claude Code kredilerine yaklaşık $2500 harcadım; ürettiklerimin çoğu gerçekten deploy edilmedi ama yine de muazzam değer elde ettim
“Claude Code işe yaramaz” iddiasına katılmıyorum
Çoğu web uygulaması basit CRUD seviyesinde. Şirketlerin %99'unun 50 bin kullanıcısı bile yok
Çalıştığım bir şirkette verimsiz kod yüzünden programı günde 22 saat çalıştırmak zorundaydık
Bu olgu bana Clayton Christensen'in inovasyon teorisini hatırlatıyor
Mevcut şirketler, kârlı olan bugünkü ürünlerine odaklanıp yeni ve düşük kaliteli teknolojiyi görmezden gelir ama sonunda o teknoloji yeterince gelişip pazarı altüst eder
Claude Code da şimdiden “yeterince iyi” seviyesinde ve AI gelişmeye devam ederse sonunda elle yazılmış kodu geçecek
‘Vibe coding’ etrafındaki insanlar birkaç gruba ayrılıyor
① maddi çıkarı olanlar, ② kodlamaktan yorulmuş geliştiriciler, ③ ilk kez bir şey üreten yeniler
② yeni şeyler öğrenmek istemiyor, ③ ise gerçekten üretmenin keyfini yaşıyor
AI ile kodlama onlar için iyi bir giriş yolu olabilir
Ben de onlardan biriyim. 30 yıldır kodlamayı seviyorum ama hayal ettiklerimi hayata geçirmenin süresi çok uzundu
Şimdi o boşluk kapanıyor ve bu bana bir özgürleşme hissi veriyor. Hedefim kaliteyi koruyarak hızı artırmayı öğrenmek
Büyük şirketlerin problemlerini birebir taklit etmek yüzünden verimlilik düştü, yorgunluk arttı
Şimdi AI sayesinde bu karmaşıklığı görmezden gelip doğrudan sonuca ulaşabiliyoruz
Yeni bir framework ya da deployment yöntemi çıksa da dert etmeye gerek yok. AI hepsini hallediyor
Teknolojik kuşak değişimlerinde bu tür çatışmalar hep yaşanır