- antirez, AI desteğiyle yazılım geliştirme sürecini “Automatic Programming” olarak tanımlıyor ve bunun yakında yazılım geliştirmenin standart yöntemi olacağını öngörüyor
- Aynı LLM kullanılsa bile, insan sezgisi, tasarım ve sürekli yönlendirme sonuçları büyük ölçüde değiştirebiliyor
- Vibe coding, fazla anlayış olmadan işi AI’a bırakma yaklaşımıyken; otomatik programlama, geliştiricinin net vizyonunu ve kontrolünü temel alıyor
- AI tarafından üretilen kod da insanların biriktirdiği ön eğitim verileri ve yargıları temelinde oluşuyor; ortaya çıkan ürünün sahipliği geliştiriciye ait
- Programlama giderek otomatikleşse de, fikirler ve vizyon hâlâ insanın alanı olarak kalıyor
Automatic Programming kavramının tanımı
- AI desteğiyle yazılım yazma süreci Automatic Programming (Otomatik Programlama) olarak adlandırılıyor
- Bu yaklaşımın yakında yazılım geliştirmenin standart süreci hâline gelmesi bekleniyor
Vibe coding ile farkı
- Vibe Coding, sürece neredeyse hiç katılmadan AI ile yazılım üretme yöntemi
- İstenen şey çok genel terimlerle anlatıldığında, LLM eğitim verilerine ve o çalıştırmadaki örnekleme özelliklerine göre doğal olarak aklına gelen ilk fikir/tasarım/kodu üretir
- Vibe coder en fazla çalışmayan ya da beklentiden farklı olan kısımları bildiren kişi olur
- Otomatik Programlama, yüksek kaliteyi hedefleyen ve üreticinin yazılım vizyonuna sıkı sıkıya bağlı kalan bir yaklaşım
- Bu vizyon çok katmanlıdır: belirli bir işin tam olarak nasıl yapılacağından, belirli bir fonksiyonun AI’a nasıl doğrudan yazdırılacağına kadar uzanır
- Ne yapılacağı da temel unsurlardan biridir
İnsan unsurunun önemi
- Aynı LLM ile bile, süreci yöneten insanın sezgisi, tasarımı, sürekli yön vermesi ve yazılım fikri doğrultusunda sonuçlar büyük ölçüde farklılaşır
- “Claude bu yazılımı vibe coding ile yaptı” ifadesi uygun değil
- Neler olup bittiğini bilerek gerçekten yazılım üreten süreç söz konusuysa, bu sizin ürettiğiniz yazılımdır
Kod sahipliğine bakış
- Ön eğitim verileri, LLM’in öğrendiği tek şey olmasa da (RL de büyük bir paya sahip), sonuçta insanlar tarafından üretilmiştir
- Dolayısıyla burada başka bir şeyin mülk edinilmesi söz konusu değildir
- AI tarafından üretilen koda “bizim” diyebiliriz ve bunu söyleme hakkına sahibiz
- Ön eğitim, birçok kişinin tek başına asla yapamayacağı şeyleri yapabilmesini sağlayan kolektif bir armağandır
- Bir bakıma bir kolektif zihin ile bağlı olmak gibidir
- Otomatik programlama ile üretilen kod sizin kodunuz, sizin çıktınız, sizin üretiminizdir ve bununla gurur duyabilirsiniz
Redis örneği
- Redis’te teknik olarak çok fazla şaşırtıcı yenilik yoktur
- İlk aşamada, yetkin herhangi bir sistem programcısının yazabileceği temel veri yapıları ve ağ kodunun birleşiminden ibarettir
- Buna rağmen çok faydalı bir yazılım hâline gelmesinin nedeni, içinde taşıdığı fikir ve vizyondur
Sonuç
- Programlama artık otomatikleşti, ancak vizyon henüz otomatikleşmedi
1 yorum
Hacker News görüşleri
Sektörde 30 yılı aşkın deneyimim var; son dönemde özellikle spec-driven development (spesifikasyon odaklı geliştirme) yaklaşımına iyice kaptırdım
Claude Code ve GPT-5.2 (CoPilot) kullanarak gereksinimleri üretiyor, birden çok tur self-review (öz değerlendirme) ile spesifikasyonu inceltiyorum
Ortaya çıkan spesifikasyondan Claude Code uygulama planını ve kodu yazınca, ana işlevler 20 dakika içinde tamamlanıyor
Bu bana geçmişte savunma sanayisinde gördüğüm waterfall yaklaşımını hatırlatıyor, ama yapay zeka sayesinde çok daha hızlı ve rafine bir “augmented cascade” yaklaşımı mümkün hale gelmiş gibi geliyor
Agile ise bu koşulların mümkün olmadığı şirketlerin hayatta kalmak için ürünü hızlıca çıkarma ihtiyacına verdiği bir yanıttı
Örnek alınabilecek herkese açık iyi spesifikasyon örnekleri var mı merak ediyorum. Önceki kuşağın John Carmack’in Quake koduna hayranlık duyması gibi, sonraki kuşak da harika spesifikasyonları yüceltecek gibi geliyor
İnsanlar tüm karmaşıklığı ve istisna durumlarını önceden öngöremez. Bir şeyi gerçekten yapınca mutlaka “bunu düşünmemişiz” denilen noktalar çıkıyor
Gereksinimler zaten netse buna pek gerek yoktur
Farkı, alt ekipler yerine LLM kullanılması
İlgili kaynaklar: Design by Contract (Goodreads), orijinal PDF
“Pre-training insanlığın kolektif hediyesidir” ifadesine katılmıyorum
Çalınmış bir şeyse hediye değildir
LLM’in ürettiği kodu ben sahiplenip yönetiyorsam, onu kendi kodum sayarım
Sorun, yazanın sorumluluktan kaçmasıyla başlıyor
Claude Code ve Opus 4.5 kullanırken ben de benzer bir sonuca vardım
Ben buna “zen coding” diyorum. Kod tabanına bir Zen bahçesi gibi davranıp, spesifikasyonu ince ince tasarlıyor ve satır satır gözden geçiriyorum
Yapay zeka tasarımcı değil, araç olarak çalışmalı
Elinde net bir spesifikasyon olan kişi, yapay zekadan çok daha yüksek kaliteli kod alabiliyor
Vibe coding sezgisel deneyciliktir, Zen coding ise bir ustalık disiplini
“Claude verdi” gibi ifadeler duyunca bunun hâlâ taslak hissi veren bir kod olacağını düşünüyorum
Aracı suçlamaya ya da özür dilemeye gerek yok; ürünü daha iyi hale getirmek yeterli
“Pre-training insanlığın hediyesidir” ifadesi rahatsız edici geliyor
Birçok açık kaynak geliştiricisi kodunun LLM eğitiminde kullanılmasını istemiyordu
LLM’in ürettiği bazı kodlar, gördüğüm kitap veya blog kodlarını neredeyse aynen kopyalamıştı
En azından kaynağı belirtmek etik olarak gerekli bence
Eğer GPL koduyla LLM eğitildiyse, ortaya çıkan çıktının da GPL olarak yayımlanması gerektiği yorumu yapılabilir
Örneğin Kafka, el yazmalarının yakılmasını istemişti ama bugün onlar edebiyat klasiği sayılıyor
1950–60’lardaki “automatic programming” aslında derleyicileri ifade ediyordu
1980’lerin 4GL yaklaşımı, alan odaklı yüksek seviyeli dillerdi; bugünün LLM’leri ise doğal dilde yazılmış spesifikasyonlardan taslak üretme aşamasında
Sonuçta insanlar hâlâ iteratif düzeltmeler ve tasarım değişiklikleri ile kaliteyi yükseltmek zorunda
Belki de şu an artisanal coder denilen usta geliştiricilerin son kuşağını izliyoruz
Antirez gibi ustalar, insan sınırlarını aşan kavramlarla uğraşıp Redis gibi sade ama zarif yazılımlar üretiyor
Yapay zeka insanların yapamayacağı hızda kod üretiyor ama bu, fırça ve tuvalin yerini tutmuyor
Yeni kuşak tamamen farklı türde zanaatkârlar olacak
Ben de korkuyorum ama bu yeni araçları kabul ederek yeni bir zanaat çağını deniyorum
Sadece buna ek olarak yapay zekayı iyi kullanma becerisi gerekiyor; mevcut bilgi gereksiz hale gelmiyor
Antirez’in yazısında “vibe coding ile automatic programming arasındaki farkı” net biçimde ayırması etkileyiciydi
Bu, mimarların çizimleri elle yaptığı dönemden BIM ve CAD dönemine geçişe benziyor
Yapay zeka çağındaki geliştirici daha az kod yazmıyor; sadece değerin odak noktası değişiyor
“vibe coding vs automatic coding” bir ikilik değil, bir spektrumdur
Aynı proje içinde bile farklı aşamalarda bu yaklaşımlar karıştırılabilir
Asıl önemli olan, aracı eleştirel biçimde kullanmak ve sürekli iyileştirmektir
Bazıları buna “spec strumming” diyor