Vibe Kodlama
Vibe Kodlama Nedir?
Vibe kodlama 2024/2025’te Andrej Karpathy tarafından tanıtılan yapay zeka destekli bir programlama yöntemidir. Vibe kodlama ile ne istediğinizi doğal dil istemleriyle tarif edersiniz ve genellikle büyük dil modelleri (LLMs) çalışır durumda olan kodun çoğunu, hatta çoğu zaman tamamını sizin için üretir. Zamanınız varsa, vibe kodlamanın yolu hakkında daha fazla bilgi edinmek için Rick Rubin tarafından uyarlanan Vibe Kodlama Sanatı’na göz atın.
Bu yeni yöntemin büyük bir avantajı erişilebilirliktir; çünkü hiç kod deneyimi olmayan kişiler bile projeler oluşturabilirken, deneyimli geliştiriciler de yeni fikirleri tam olarak taahhüt etmeden hızlıca prototipleyebilir. Bu özellikle startuplar için faydalıdır. Dezavantajı ise, geliştiricilerin muhtemelen üretilen kodun nasıl çalıştığını tam olarak anlamayacağıdır. Küçük yan projeler için bu sorun olmaz, ancak üretim düzeyinde yazılımlar için bu uzun vadede sorunlara ve teknik borca yol açabilir.
Vibe kodlamayı daha sorunsuz hale getiren pek çok araç var. Cursor IDE, Claude Code CLI, GitHub Copilot, Loveable, Replit, v0 ve diğerleri yapay zeka ile doğrudan ortamınızda çalışmanıza izin verir veya vibe kodlama için özel arayüzler sunar. Ben şahsen bu projeler için çoğunlukla Cursor IDE ve Claude Code CLI ile çalıştım.
Ama işin şöyle bir tarafı var. Bu araçlar ve modeller maliyetlidir. Geleneksel kodlamada çoğunlukla zamanınızla ödeme yaparsınız. Vibe kodlamada ise cüzdanınızla ödeme yaparsınız. Ve ne yaptığınızı bilmiyorsanız, hem cüzdanınızla hem de zamanınızla ödeme yaparsınız. Bu sayfadaki her bir proje oluşturmak için yaklaşık $10 ile $20 arasında maliyetli oldu. Çok fazla deniyorsanız bu birikir. Modeller geliştikçe ve daha verimli oldukça maliyetin zamanla düşeceğini düşünüyorum. Şimdilik, vibe kodlamanın projeniz için mantıklı olup olmadığına karar verirken göz önünde bulundurulması gereken bir şey.
Nelerin mümkün olduğunu merak ederek, vibe kodlamayı kendim denedim ve bu ilkeleri gerçek projeler üzerinden keşfetmek için bu sayfayı yaptım. Sadece ürünler inşa etmiyorum; vibe kodlamanın gerçekten neler yapabileceğini test ediyor ve gösteriyorum. Bu sadece eğlence amaçlı ama bu modeller geliştikçe kodlamanın gelecekte nasıl görünebileceğine dair bir fikir sunuyor.
Sonsuz Maymun Teoremi
Sonsuz Maymun Teoremi adını duydunuz mu? Bu, sonsuz sayıda maymuna sonsuz daktilo ve sonsuz zaman verirseniz, sonunda rastgele tuşlara basarak birinin Shakespeare‘in tüm eserlerini üreteceğini söyleyen felsefi bir düşünce deneyidir.
Saçma geliyor, değil mi? Ama işin vahşi tarafı şu: vibe kodlama buna biraz benziyor; maymunlar yerine AI modellerimiz, daktilolar yerine programlama dilleri ve Shakespeare yerine çalışan yazılımlarımız var.
Düşünün. Büyük dil modelleri milyarlarca satır kod, desen ve örnek üzerinde eğitilir. Bir LLM’ye bir istem verdiğinizde, bir insan geliştiricinin yaptığı gibi adım adım sorun üzerinde “düşünmez”. Bunun yerine eğitim sırasında öğrendiği desenlere dayanarak bir sonraki en olası token’i tahmin eder. Özetle, istatistiksel olarak doğru görünen şeylere dayanarak kod üreterek bilinçli tahminlerde bulunur.
Ve bir şekilde, çoğu zaman işe yarıyor. Model, gerçekten derlenip çalışan, sorunuzu çözen kodu çıktı olarak veriyor. Anlayarak değil, ama son derece büyük ölçekli istatistiksel desen eşleştirmesi yoluyla. Sanki evrenin en sofistike rastgele metin üreteci “doğru” cevabı bulmuş gibi. Ama burada fark hızdır. O maymunlar gerçek sonsuzluğa ihtiyaç duyardı. Sizin AI’niz? Buna saniyeler veya dakikalar içinde ulaşıyor.
Yani bir bakıma vibe kodlama kullandığınızda, çözümler üretmek için milyonlarca satır kod desenini modelde yoğunlaştırılmış halde kullanıyorsunuz. Bu bilinçli problem çözme değil, istatistiksel bir sihir. Ve tam da bu yüzden çok güçlü ve itiraf etmek gerekirse, üretilen kodun aslında ne yaptığını anlamanın hâlâ önemli olmasının sebebi budur.
Soru, Cevaptan Daha Önemlidir
Çoğu zaman göz ardı edilen önemli bir şey var. Vibe kodlama herhangi bir cevap almakla ilgili değil, doğru soruyu sormakla ilgilidir. Otostopçunun Galaksi Rehberi’ndeki Deep Thought Süperbilgisayarını düşünün. Hayatın, evrenin ve her şeyin nihai sorusunun cevabını hesaplamak için milyonlarca yıl harcadı ve yalnızca 42 sayısını verdi. Cevap teknik olarak doğruydu, ama işe yaramazdı çünkü asıl sorun hangi soruyu sormanız gerektiğini bulmaktı.
Vibe kodlama aynı şekilde çalışır. İstemleriniz her şeydir, ama bağlam yönetimi de öyledir. Belirsiz bir istem size belirsiz kod verir ve doğru dosyaları, belgeleri veya örnekleri bağlam olarak sağlamazsanız model gerçekten neye ihtiyacınız olduğunu anlamaz. Kod, mimari ve sistem tasarımını anlayan biriyseniz, modeli mükemmel çözümlere yönlendirmek için ayrıntılı istemler oluşturabilir ve doğru bağlamı seçebilirsiniz. Ancak ne isteyeceğinizi veya hangi bağlamı sağlamanız gerektiğini bilmiyorsanız, AI da bilemez.
Aslında bu yüzden vibe kodlama deneyimli geliştiriciler için bu kadar güçlüdür. İyi kodun nasıl görünmesi gerektiğini biliriz, tuzakları anlarız ve modeli bunlardan uzaklaştıracak istemler yazabiliriz. Teknik geçmişi olmayan acemiler için bu gerçek bir sınırlama haline gelir. Çalışan kod alabilirsiniz, ama neyin yanlış olduğunu veya sonraki adımda ne isteyeceğinizi anlamadan sıkışıp kalırsınız.
Vibe Kodlama Yeterli Olmadığında
En yeni AI modelleri etkileyici ama her şeyi çözen bir sihirli değnek değiller. Vibe kodlama üretimde işe yarayabilir, ama sadece ciddiyetle yaklaşıyorsanız. Sağlam birim testlerine ihtiyacınız var. Sisteminizin ne yapması gerektiğine dair net doğruluk kaynaklarına ihtiyacınız var. İşler bozulduğunda veya sapma olduğunda bunu yakalamanız gerekiyor. Ve hacker zihniyeti gerekiyor. Kutunun dışında düşünün ve vibe kodlanmış projenizi beklenmedik şekillerde kırmayı deneyin. Hangi uç durumları düşünmediniz? Hangi güvenlik açıkları birisi tarafından kötüye kullanılabilir? İşte bu, sadece çalışan kod ile gerçekten sağlam olan kodu ayıran şeydir.
Ama şunu unutmayın. AI sizi sahiplenmez. Siz AI’ye sahipsiniz. Ürettiği şeyi olduğu gibi kabul etmeyin. İnceleyin. Test edin. Kırın. Ve dürüst olmak gerekirse, kod tabanınızın belirli bölümleri için eski usül kodlamaya geri dönmeniz gerekecek. Odaklanın, derin düşünün, kendiniz yazın. Vibe kodlama işleri hızlandırır, ama önemli olduğunda gerçek programlamanın yerine geçmez.
Öğrendiğim başka bir şey daha var. Bazen AI ile bir oturumu sonlandırıp yeni bir oturuma başlamak gerekir. Konuşma geçmişiniz büyüdükçe modelin performansı bozulur. Daha fazla hata yapar, daha az tutarlı kod üretir ve daha sık halüsinasyon üretmeye başlar. Bunu yakalamaz ve durmazsanız, bu hatalar birbirini katlayarak işleri gittikçe daha kötü hale getirir. Bu, defalarca fotokopi çekilmiş bir belgeyi okumaya çalışmak gibidir. Yeniden başlamak işleri temiz ve keskin tutar.
Vibe Kodlanmış Projeler
Aşağıda vibe kodlama metodolojisini kullanarak oluşturduğum iki proje, stairs (repo) ve transcendental (repo) yer alıyor. Çoğunlukla istemlerden üretilmiş, manuel çalışma ise bağlam sağlama, hata ayıklama ve GitHub Pages‘a dağıtım ile sınırlıydı. Bunlar, yaratıcı fikirleri vibe kodlama ile kodu birleştirdiğinizde nelerin mümkün olabileceğini gösteren eğlenceli statik site deneyleri. Her ikisi de GitHub‘de barındırılıyor.