33 puan yazan GN⁺ 23 일 전 | 9 yorum | WhatsApp'ta paylaş
  • 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

 
koreacglee 23 일 전

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.

 
kurthong 23 일 전

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.

 
blacksocks 21 일 전

Yarım yamalak projeler ortalığı kaplıyor…
Programlamayı yarım bilen insanlar ise coşuyor…

 
qwertypotter 23 일 전

dogfooding'i tekelcilik olarak değil, daha çok dog pudding olarak görmek daha doğru olur.

 
caniel 23 일 전

dog食...

 
iolothebard 23 일 전

Başlıkla içerik farklı…?

 
summerpicnic 23 일 전

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.

 
euphcat 23 일 전

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.

 
GN⁺ 23 일 전
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ı

    • Gördüğüm çoğu ürün kodu da ilk bakışta şok ediciydi. BigCo'da da startup'larda da aynıydı
      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
    • Kötü kod kısa vadede iyi çalışır ama uzun vadede mutlaka sorun çıkarır
      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
    • “İyi kod kurallarını çiğnesen de başarılı olabilirsin” durumu aslında eskiden beri hep vardı
    • “Vibe coding”, insan müdahalesinin derecesine göre bir spektrum
      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

    • Benim çalıştığım computer vision alanında UI ya da uygulama kısmı Level 6~7 olabiliyor ama render pipeline ya da algoritmalarda AI müdahalesi daha çok engel oluyor
      Uygun seviye, alanın karmaşıklığına ve yeniliğine göre değişiyor
    • AI'yı iyi kullanmanın özü, parçalara göre farklı seviyeler uygulamak
      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
    • Ben yaklaşık Level 5'te çalışıyorum. TDD, tip güvenliği, spesifikasyon yazımı gibi birçok güvenlik önlemi koyuyorum
      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
    • Gelecekte en çok gelişecek kişiler, bu ölçeğin en üst seviyelerine kadar zorlayan geliştiriciler olacak
      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
    • Şirkette Level 4'teyim ama kişisel projelerde usul usul Level 6'ya çıkıyorum
      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

    • Bram'in yeniden bu tartışmalara katıldığını görmek güzel
    • Çoğu kişi BitTorrent'in ne olduğunu bile bilmiyor ama yine de galiba o ‘vibe’ı alıyor
    • Geçmiş kariyerini düşününce, iddiaları için biraz daha gerekçe göstermesi gerekirdi diye düşünüyorum
  • 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

    • Ben de benzer şekilde birden fazla modeli (Opus, GPT5.4, Gemini) paralel çalıştırıp bug tespiti ve kod iyileştirme yaptırıyorum
      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

    • “Verimlilik artışı”nı nasıl ölçtüğünü soranlar var. Nicelleştirmesi zor ama hissedilen fark çok net
  • “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

    • Kurumsal uygulamalarda kullanıcı sayısı az olabilir ama CPU ya da DB yükü çok daha fazladır
      Çalıştığım bir şirkette verimsiz kod yüzünden programı günde 22 saat çalıştırmak zorundaydık
    • “Kullanıcı” ile “ücretli kullanıcı”yı ayırmak gerekir. Aynı şey değiller
    • Aslında 100 kişiye deploy etmek bile başlı başına cehennem gibi bir iş. ‘Citizen developer’ çağı bence gelmeyecek
  • 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

    • AI gelişimi dursa bile, bugünkü modeller etrafında yeni tooling ve pattern'ler üretmeye devam edeceğiz
    • Ama şu anki hava fazla iyimser. Yönetimin testleri ve code review'yu kaldırmayı düşünmesinden bile söz ediliyor. Riskler küçümseniyor gibi
  • ‘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

    • Bir grup daha var: kodlamayı seven ama daha fazlasını üretmek isteyen yüksek performanslı insanlar
      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
    • Ben de çok iyi mühendislerin AI'yı aktif biçimde kullanırken standartlarını düşürmeden daha fazla sonuç ürettiğini gördüm
    • Aslında son 10 yıldaki yazılım sektörü gereksiz karmaşıklık çağı gibiydi
      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
    • Ama belki de senin “öğrenmek istemeyen insanlar” diye tarif ettiğin kişiler değil, tam tersine yeni şeyler öğrenen insanlar söz konusu
      Teknolojik kuşak değişimlerinde bu tür çatışmalar hep yaşanır
    • Kişisel olarak bugünlerdeki özensizlik (sloppiness) yüzünden ilgimi kaybetmeye başlıyorum