Yazılım mühendisliğinin üçüncü altın çağı - Grady Booch
(youtube.com)The third golden age of software engineering – thanks to AI, with Grady Booch
Bu video, yazılım mühendisliğinin öncülerinden Grady Booch ile yapılan bir söyleşi üzerinden, yapay zekanın yükselişinin yazılım mühendisliğinin sonu anlamına geldiği iddiasını çürütüyor ve aksine artık 'üçüncü altın çağ'a girdiğimizi savunuyor. Yazılım mühendisliği tarihini soyutlama düzeyinin yükselişi olarak yeniden yorumluyor; geçmişteki teknik kırılma noktalarını bugünkü yapay zeka devrimiyle karşılaştırmalı olarak analiz ediyor. Böylece yapay zekanın, kodlama otomasyonunun ötesine geçerek mühendisliğin özü olan sistem düşüncesine ve karmaşıklık yönetimine geçişi hızlandırdığını öne sürüyor.
1. Giriş (Introduction)
Periyodik olarak gündeme gelen "yazılım mühendisliğinin sonu" endişelerine karşı Grady Booch, bugünkü değişimin sektörün yok oluşu değil evrimi olduğunu savunuyor. Yazılım mühendisliği yalnızca kod yazmak değil; fiziksel yasalar, ekonomik gerçekler, etik gibi statik ve dinamik güçler arasında denge kurarak en uygun çözümü inşa etme eylemi olarak tanımlanıyor. Bu yazı, 1940'lardan günümüze yazılım tarihini üç 'altın çağ' halinde sınıflandırarak inceliyor ve yapay zekanın getireceği değişimin özünü açıklıyor.
2. Yazılım mühendisliğinin evrimi (The Evolution of Software Engineering)
2.1 Birinci altın çağ: Algoritmik soyutlama (The First Golden Age)
- Dönem: 1940'ların sonu ~ 1970'lerin sonu
- Özellik: Donanım ile yazılımın ayrışmasının başladığı dönemdir. Başlangıçta makine dili ile donanım iç içeydi; zamanla yazılım, bağımsız endüstriyel değere sahip bir alan olarak görülmeye başlandı.
- Temel görevler: Matematiksel hesaplama ve iş süreçlerinin otomasyonu başlıca hedefti. O dönemin karmaşıklığı bugüne göre daha sınırlı olsa da, kısıtlı donanım kaynaklarını en iyi şekilde kullanmak temel sorundu.
- Soyutlama: 'Algoritmik Soyutlama (Algorithmic Abstraction)' baskındı. Dünyayı veri ve bu veriyi işleyen süreçler (prosedürler) olarak ayıran bakış açısı öne çıkıyordu.
2.2 İkinci altın çağ: Nesne yönelim ve platformlar (The Second Golden Age)
- Dönem: 1970'lerin sonu ~ 2000'lerin başı
- Arka plan: Yazılıma olan talep patlayıcı biçimde artarken, kalite ve verimlilik bunun gerisinde kaldı ve 'yazılım krizi (Software Crisis)' ortaya çıktı.
- Teknik dönüşüm: Karmaşıklığı yönetmek için veri ile süreçleri tek bir birimde toplayan 'nesne yönelimli (Object-Oriented)' paradigma ortaya çıktı. Bu, daha yüksek düzeyde soyutlamayı mümkün kılarak büyük ölçekli sistemlerin kurulmasının temelini oluşturdu.
- Genişleme: Kişisel bilgisayarların (PC) yaygınlaşması ve internetin gelişi, yazılımı iş dünyasının ötesine taşıyarak medeniyetin altyapılarından biri haline getirdi (interstitial spaces of civilization). Ayrıca açık kaynak ve platform işi (SaaS vb.) kavramları da bu dönemde şekillenmeye başladı.
2.3 Üçüncü altın çağ: Sistemler ve yapay zeka (The Third Golden Age)
- Dönem: 2000'ler ~ günümüz
- Mevcut durum: Zaten üçüncü altın çağın içinde yaşıyoruz. Bu dönemin ayırt edici yönü, tekil programların ötesindeki devasa sistemler, güvenlik, emniyet ve etik meselelerin temel mühendislik sorunları haline gelmiş olmasıdır.
- Yapay zekanın rolü: Yapay zeka araçları (LLM'ler, kodlama ajanları vb.) mühendisliğin yerini almıyor; doğal dili bir programlama dili gibi kullanarak soyutlama düzeyini bir kademe daha yükselten araçlar olarak işlev görüyor.
3. Yapay zekanın yazılım mühendisliğine etkisi (The Impact of AI)
3.1 Otomasyon ve soyutlamanın hızlanması
Yapay zeka, tekrar eden ve tipik kalıplara sahip kod üretimini otomatikleştirir. Bu, geçmişte assembly dilinin yerini yüksek seviyeli dillerin almasına benzer şekilde, mühendislerin düşük seviyeli uygulama ayrıntılarından uzaklaşıp daha üst düzey problem çözmeye odaklanmasını sağlar.
3.2 Dario Amodei'nin öngörüsüne itiraz
Anthropic CEO'su Dario Amodei'nin "12 ay içinde yazılım mühendisliği otomatikleşecek" öngörüsüne Booch güçlü biçimde karşı çıkıyor.
- Neden 1: Yapay zeka, önceden öğrenilmiş kalıpları kopyalamada başarılı olsa da, mühendisliğin özü olan 'tasarımsal karar verme'yi ve 'çeşitli kısıtlar (maliyet, fizik yasaları, etik vb.) arasında denge kurma' sorununu çözemez.
- Neden 2: Günümüz yapay zekası web merkezli kalıplara yatkın; fiziksel dünya ile etkileşen gömülü sistemleri veya karmaşık görev-kritik sistemlerin tamamını tasarlama konusunda yetersiz kalıyor.
4. Geleceğin mühendisinin temel yetkinlikleri (Future Competencies)
Kod yazmanın giriş bariyeri düştükçe, mühendislerden beklenen temel yetkinlik 'kod yazma'dan 'sistem düşüncesi (Systems Thinking)'ne kayacaktır.
- Sistem teorisi (Systems Theory): Karmaşık sistemleri anlamak ve tasarlamak için Herbert Simon ya da Santa Fe Institute'un karmaşıklık teorisi, Marvin Minsky'nin 'Society of Mind' gibi temel kuramlara hâkim olmak zorunlu hale geliyor.
- Sorumluluk ve muhakeme: Yapay zekanın ürettiği çıktıları doğrulamak ve sistemleri güvenlik ile etik açısından denetim altında tutmak için insan muhakemesi daha da önemli hale geliyor.
5. Sonuç (Conclusion)
Yazılım mühendisliği ölmedi; aksine hayal gücünün tek kısıt haline geldiği yeni bir genişleme dönemine girdi. Yapay zeka, uzman olmayanların da yazılım üretmesini mümkün kılarak yaratımın demokratikleşmesini sağlarken, profesyonel mühendislere de daha büyük ve daha karmaşık sorunları çözebilecek güçlü araçlar sunuyor. Tarihsel olarak teknik soyutlama sıçramaları yaşandığında, yeni teknolojiyi benimseyenler geride kalmak yerine daha yükseğe çıktı. Bu nedenle bugünkü değişimi bir kriz olarak değil, mühendisliğin sınırlarını genişletme fırsatı olarak görmek gerekir.
1 yorum
Kanıt ortaya çıkmadan önce yapılan tüm tartışmalar aceleci yargılardır