19 puan yazan GN⁺ 2025-03-24 | 9 yorum | WhatsApp'ta paylaş
  • Son dönemde Andrej Karpathy'nin şu sözleri gündem oldu: "Kendinizi vibe'a bırakın, üstel büyümeyi kabul edin ve hatta kodun var olduğunu bile unutun."
  • "Vibe Coding", net bir plan veya doğrudan kod yazımı olmadan problem çözümünü AI araçlarına devretme eğilimini ifade eder
  • LLM (büyük dil modeli) ajanları üzerinden doğal dille komut verildiğinde kod üretmek ve değiştirmek mümkün hale geldi
    • 2022: ChatGPT'de kod kopyalama ve düzenleme mümkündü
    • 2023: IDE ile entegre Copilot üzerinden kod inceleme ve düzenleme mümkün oldu
    • 2024~2025: Projedeki birden fazla dosyayı değiştirme, kendi kendine test etme ve düzeltme mümkün hale geldi

"Vibe Coding" nasıl çalışır

  • Hem teknik hem de teknik olmayan kullanıcılar, LLM tabanlı ajanlar aracılığıyla proje kurulumu yapabilir
  • Basit komutlarla web sitesi veya uygulama oluşturulabilir (ör. "bir kayak merkezi web sitesi oluştur")
  • İlk kurulumdan sonra otomatik düzeltme ve test yapılabilir
  • Örnekler:

    • Cursor, GitHub Copilot Agent Mode vb. araçlar dosya düzenleyebilir ve komut çalıştırabilir
    • Otomatik düzeltme ve test yapılır → tutarsızlık nedeniyle hatalar oluşabilir

Ajanların özerklik sorunu

  • Ajanlar işleri otomatik olarak yapabilir, ancak tam anlamıyla özerk değildir
  • Kullanıcı onayı olmadan çalıştırıldığında risk doğabilir (ör. YOLO modunda komut yürütme)
  • Kod kalitesi ve doğruluk sorunları ortaya çıkabilir
  • Başlıca sorunlar:

    • Mevcut kodu yeniden kullanamama → aynı bileşeni tekrar tekrar oluşturma
    • İstemci tarafında sunucu tarafı mantığını çalıştırmaya çalışma
    • Hatalı kod düzeltmesinden sonra hata oluşması → düzeltme sırasında başarısız olma
    • Unit test yazamama veya kodu bozma

Gerçekçi sınırlamalar

  • Claude 3.7 Sonnet gibi modeller eğitim verisinin sınırlarını aşamaz
  • Kod tabanında bağlam kaybolduğunda tutarlı değişiklik yapmak mümkün olmaz
  • Kod büyüdükçe performans düşer ve bağlamı korumak zorlaşır
  • LLM'in bağlam penceresi aşıldığında tutarlılık sorunları ortaya çıkar
  • Somut sorun örnekleri:

    • TypeScript arayüzlerini kopyalama
    • İstemcide sunucu mantığını çalıştırma
    • Yinelenen bileşenleri düzeltmede başarısız olma
    • Unit test yazmada başarısız olma
    • Kod refactoring sonrasında hataları düzeltememe

Sorunu çözme girişimleri

  • Claude Plays Pokémon: ajan gerçek zamanlı etkileşimle oyunu oynar
  • Belleği koruma ve tekrar eden hataları düzeltmede başarısız olur
  • Uzun vadeli bellek kurmada başarısız olur → sürekli hatalar ortaya çıkar
  • İyileştirme olasılıkları:

    • MCP (Model Context Protocol) ve bellek yönetiminin geliştirilmesi gerekir
    • Kod düzenlerken LLM'in önceki değişiklikleri doğru biçimde yansıtması gerekir
    • Alana özgü bellek ve görev geçmişinin korunması gerekir

Sonuç

  • "Vibe Coding", işlevsel bir kavramı hayata geçirmede %80 seviyesine kadar ulaşabilir; ancak güvenilir ve güvenli bir ürün üretmek için deneyimli insanların emeği gerekir
  • AI ajanları, yetkin kişilerin bağımsız olarak daha fazlasını üretmesini sağlayabilir; ancak deneyim ve sezgi gerektiren zor problemleri çözebilen insanları ikame edemez
  • Mevcut seviyede "Vibe Coding"in gerçekten kullanışlı bir ürüne dönüşmesi zordur ve yetkin geliştiricilerin yardımı şarttır
  • "Vibe Coding", kod yazımının yalnızca yardımcı bir aracıdır; tam bir ikame değildir

9 yorum

 
nicewook 2025-03-25

Özellikle "mevcut seviye" kısmı dikkatimi çekiyor. Acaba LLM'lere insanın zaman kavramıyla mı bakıyoruz?

 
ng0301 2025-03-24

Yapay zeka ile kod yazarken hissettiğim şey şu: Yapay zekaya kodun yalnızca bir kısmını verseniz bile bağlamı anlayabilmesini sağlamak için, tek sorumluluk ilkesi + TDD tarzı birimlere bölme yaptığınızda, büyük bağlamı okumasına gerek kalmadan, parçanın bağlamıyla da yeterince kavrayabilmesi gerekiyor.

 
ifmkl 2025-03-24

Benim yapay zekayı hobi amaçlı en çok kullandığım alan web oyunu geliştirme ve buna katılıyorum. Ölçek belli bir seviyenin üstüne çıkınca, bir noktadan sonra yapay zekanın odaklanma diyebileceğim bazı kısımlarda belirgin biçimde zayıfladığını fark ediyorsunuz. Ben bunu şu şekilde kullanıyorum: Oyunun içindeki tüm ağaç yapısını ve kaynak kodunu, TOC dahil tek bir dosyada birleştiriyorum; sonra yeni bir thread oluşturup o dosyayı yüklüyor ve çalışmaya devam ediyorum. Ayrıca soru sorarken her zaman mevcut projenin adını açıkça belirterek yanıt vermesini istiyorum. Buna rağmen hâlâ tatmin edici olmayan kısımlar var ama... geçmişte gerçek hayatın yoğunluğu yüzünden başlamayı bile göze alamadığım hobilerimi, nispeten kısa bir sürede tamamlıyor olmaktan çok memnunum.

 
pcj9024 2025-03-24

Kabaca yapıp geri kalan detayları sonradan düzeltme kalıbı gerçekten hoşuma gidiyor

 
psguny9 2025-03-24

Çeşitli denemeler yapılıyor ama bellek sınırlarının net olduğu da ortada. PoC düzeyinde iyi. Olasılık/kullanılabilirlik açısından hızlı ilerlemek için iyi.

Asıl sorun, daha da fazla uzmanlık gerektirmesi.

 
colus001 2025-03-24

Kodlamada zamanın büyük kısmının debug yapmak ve kod okumakla geçtiğini düşünürsek, bunun oldukça abartılı olduğunu düşünüyorum. Yapay zeka yapanlar hep bu tonda konuşuyor ama en azından mevcut duruma bakınca öyle görünmüyor. İnsan eli gerekmeyen bir noktaya gelinirse, özellikle kodlamaya neden ihtiyaç olsun ki? API açıklamasını verip LLM’i backend olarak kullanmak daha iyi olmaz mı?

 
reagea0 2025-03-24

Pratikte şema ayarlayıp alarak çoğunlukla bu şekilde kullanıyoruz.

 
nowdoit7 2025-03-24

Katılıyorum. Başlarda neredeyse büyüleyici bir geliştirme hızı gösteriyor, ancak ölçek büyüyüp dosya sayısı arttıkça bunu yöneten sorumlu kişi (burada insan) bunu etkili şekilde yönetemezse, elinize yalnızca hantallaşmış ve hatalarla dolu bir çıktı geçiyor. İş artık geri döndürülemez bir noktaya gelirse, sadece kredi (Windsurf) ya da istekleri (Cursor) boşa harcamış oluyorsunuz. Zamanla daha iyi hale gelecektir ama şu anda AI koduna %100 güvenmemek gerekir.

 
GN⁺ 2025-03-24
Hacker News görüşü
  • "Yapay zeka abartısı vs. gerçeklik" arasındaki büyük fark, insanların sıkça dile getirdiği üretkenlik rakamlarında yatıyor. Örneğin, YC partnerleri bir şirketin kodlama performansında "100 kat hız artışı" iddiasını aktarıyor. Böyle bir iddia dış gözlemciler için açıkça görünür olurdu; dolayısıyla öz-bildirime ihtiyaç duyulmazdı.

    • YC yaz dönemi 84 gün sürer ve Demo Day ile biter. 100 kat hız artışı, bir ekibin bir günden kısa sürede Demo Day seviyesinde özelliklere sahip bir uygulama yapmasıyla eşdeğerdir. Eğer 100 kat doğru olsaydı, partnerler yeni dönemin "müşteriyle kahvaltı yapıp, yeni bir şey öğrenip, ilham alıp aynı gün uygulamayı baştan yazdığını ve ortaya çıkan sonucun Demo Day seviyesinde özelliklere sahip olduğunu" söylerdi. Ama böyle hikâyeler yok; dolayısıyla 100 kat doğru değil.
    • 10 katlık bir artış bile olsa, partnerler "bu dönemde insanlar 1. haftada Demo Day seviyesinde bir uygulamayı production'a alıyor" derdi. Partnerlerin, ekiplerin ne kadar işi hangi sürede tamamladığına dair büyük bir örneklemi var. Bu yüzden 10 kat da gerçek değil.
  • Şu anda outsourcing furyasının peşinden gidiyoruz. Tüm bu abartılı iddialara rağmen gerçeklik farklı. LLM kodlama ajanlarına dair tartışmaları ayırt etmek zor.

  • Bu, Go topluluğunun bilgisayarların insan Go oyuncularını yenemeyeceğini söylemesine benziyor. Daha iyi sıralama bulan modellere dair örnekler zaten var. Uygun teşvik ve zaman verilirse bilgisayarlar bizi geçecek.

    • "Vibe coding" henüz gerçek değil. Hataları düzeltmek ve yönlendirmek için deneyim ve beceri gerekiyor. Ancak gelişim yönünü görmek mümkün.
  • Kodlama LLM'leriyle ilgili yeni bir sorun paylaşılıyor. Offshore geliştiriciler ekibe tamamen entegre durumda. Ancak LLM kullanımı kontrolsüz ve dağınık olduğu için gönderilen pull request'ler bir kâbusa dönüşüyor.

    • Kod yazarken yardımcı olması için LLM kullanıyorum ama çok dikkatli kullanıyorum. Zaman kazandırıyor, fakat kaliteyi artırmıyor. Doğru şekilde nasıl istek verileceğini bulmaya harcanan zaman, çıktıyı doğrulama süresi ve küçük bug'ları düzeltme süresi kazanımı dengeliyor.
    • "Vibe coding" yapmayın ve işinizi kaybetmemeye dikkat edin.
  • "Vibe Coding", fikrin %80'ini hayata geçirebilir. Ancak güvenilir, güvenli ve değerli bir şey üretmek için deneyimli bir insan gerekir.

    • En iyi ihtimalle o %80 bir proof of concept'tir. O %80, QA'in bara girmesine benzer.
  • Yakın zamanda Claude ve OpenAI o3-mini kullanarak Matlab kodunu Python'a çevirmeye çalıştım ama performans çok kötüydü. Neredeyse her önemli satırda hata vardı. Otomasyon gerektiren bir işti ama başarısız oldu.

  • Test hiç olmamasındansa "Vibe-TDDing" yapmak daha iyi. Kodlama ve test konusunda anlayışınız varsa, LLM kullanarak olumsuz dış etkileri azaltabilirsiniz.

  • SaaS nasıl kurulur diye paylaştıktan sonra tuhaf şeyler oldu. API anahtarı kullanımı tavana vurdu, abonelikler atlatıldı ve veritabanında rastgele şeyler oluştu. Bu muhtemelen bir şaka.

  • Birçok mühendisin AI kodlama araçlarının yeteneklerini ve üretkenlik etkisini küçümsediğini görmek, mesleğim için bana güven veriyor. Cursor'ı bırakmayacağım.

    • AI araçlarının iyi olduğu şeyler: tekrarlayan kod yazımı, karmaşık DSA işleri, basit ve sıkıcı görevler, sınırlı refactoring
    • AI araçlarının kötü olduğu şeyler: ürün/iş ihtiyaçlarını koda eşlemek, büyük ölçekli refactoring
    • Kod kalitesi sorun değil. AI hâlâ üretkenliği artırmada büyük yardım sağlıyor.