1968 Temmuz Computer And Automation dergisinden, günümüz tartışmalarına çok benzer bir makalenin çarpıcı geniş özeti;
Kişisel Yorumum: Bu kod-yazan-kod meselesi günümüzün değil 1950’lere kadar uzanan bir mazisi var, her zaman tartışma konusu olmuş ama yazılımcılara her zaman ve daha fazla ihtiyaç olmuş. Ve şahsı kanaatimce ileri de kıymeti daha da artacaktır.
Otomatik kod yazan araçlar ne kadar iyi?
Otomatik kod yazan programlar, bir uçta bilgisayar kullanıcılarının sorunlarının çoğunu çözecek bir panzehir olarak görülmüştür… diğer uçta ise gerçekten yetenekli programcılar için sinir bozucu ve işe yaramaz araçlar olarak değerlendirilmiştir. Gerçek değerleri ise bu iki uç arasında bir yerde gibi görünmektedir. Peki ama nerede?
1. Giriş: Neden Program Oluşturucular?
- 1960’ların sonunda bilgisayar kullanımı patlama yaşıyordu.
- Aylık 1000’den fazla bilgisayar kurulumu gerçekleşiyordu.
- Ancak bu sistemleri programlayacak yeterli insan kaynağı yoktu.
- Çözüm olarak “program generator” (program oluşturucu) adı verilen otomatik kod üretme sistemleri gündeme geldi.
- Kimileri bu sistemleri sihir gibi görürken, kimileri tamamen gereksiz ve sinir bozucu buluyordu.
2. Program Oluşturucular Nedir?
- “Program generator”, bir makro ya da şablon üzerinden otomatik olarak kod üreten sistemdir.
- Klasik programlamadaki “tek tek adımları yazmak” yerine, bu araçlarla makro seviyede işlevler çağrılır.
- Örnek: Bir raporun tüm çıktı düzeni tek bir makro ile üretilebilir.
3. Makro Fonksiyonlar ve Uygulama Alanı
Genellikle ortak işler için geliştirilmiştir:
- Dosya düzenleme, sıralama, çıktı alma gibi tekrar eden işlemler.
Kullanıldığında:
- Program geliştirme süresi %50–80 azalabilir.
- Hatalar azalır, standartlaşma artar.
4. Dil Değil, Teknik
- Program oluşturucular bir programlama dili değildir, bir tekniktir.
- Oluşturulan kodlar yine derleyici ya da assembler tarafından çalıştırılır.
- Yani yardımcı bir katmandır.
5. Hata Ayıklama ve Gelişmiş İzleme
- Oluşturucuların karmaşık olduğu nokta: Hatalar çıktığında kullanıcıların derleyici bilgisine ihtiyaç duymasıdır.
- Yazarın çalıştığı BEST sistemi, çok katmanlı izleme (trace) ve dump olanakları sunarak bu açığı kapatmaya çalışmış.
6. Acemiler ve Uzmanlar için Kullanım
Acemi programcılar:
- 1–2 hafta eğitimle üretken olabilir.
- Sistem tasarımı ve veri yapısını doldurarak çalışabilirler.
Uzman programcılar:
- Kodlamaya harcanan süre azaldığı için daha çok tasarıma odaklanabilir.
- Genellikle BEST gibi bir sistemle %80 kodu oluşturucu ile, geri kalan %20’sini elle yazarlar.
7. Dokümantasyon Disiplini
- Oluşturucuların bir diğer avantajı, zorunlu dokümantasyon kültürü getirmeleridir.
- Her işlem form bazlıdır, süreç baştan sona belgelidir.
- Bu sayede sistematik hata ayıklama ve yeniden kullanım kolaylaşır.
8. Performans ve Elle Kodlama Karma Kullanımı
- Tüm işin oluşturucuyla yapılması yerine kritik kısımların elle yazılması daha hızlı veya işlemci açısından verimli olabilir.
- Genelde: giriş/çıkış, sıralama gibi işler için oluşturucu; hesaplama/karar mantığı için elle yazım tercih edilir.
9. Performans Verileri ve Vaka İncelemeleri
NCR Los Angeles ofisinde:
- 150’den fazla program BEST ile yeniden üretildi.
- 5 kişi, 1 haftalık eğitimle sistem değişimini 90 günde tamamladı.
- Verimlilik %80’e yaklaştı.
Bir perakende mağazasında:
- 45 programın %96’sı BEST ile oluşturuldu.
- 5 kişilik ekip 5 haftada sistemi kurdu ve 11 adam/günde debug işlemi tamamlandı.
Günümüz hikayelerine ne kadar da çok benziyor değil mi :)
10. Sonuç: Gerçekçi Bir Değerlendirme
- Program oluşturucular her derde deva değillerdir, ama ciddi bir açığı kapatırlar.
- Yazılım kalitesi, her zaman olduğu gibi, aracın değil onu kullanan kişinin becerisine bağlıdır.
- Hem deneyimli programcılar hem yeni başlayanlar için doğru yerde büyük fayda sağlar.
Tarihin Döngüsü
1968’den bugüne kadar aynı tartışmalar, aynı umutlar ve aynı endişeler. Program generators’tan GitHub Copilot’a, ChatGPT’den Claude’a… Araçlar evrildi ama temel mesele değişmedi: Otomatik kod üretimi ne kadar yararlı?
Cevap hâlâ aynı: Doğru ellerde, doğru projede, doğru ölçekte kullanıldığında çok yararlı.
Tags
Uğur Toprakdeviren
Cryptographer, security researcher, and systems engineer with over two decades of experience building secure systems. Currently focused on Apple internals, decentralized messaging protocols, ARM64 architectures, and the philosophical implications of digital privacy.
Learn more about me