Code generation konusunda nereden nereye geldik…
- Üniversite yillarinda CASE araclari ile UML modelleri hazirlar ve tüm interface, dto ve entity gibi siniflarin otomatik olarak olusturulmasini saglardik.
- Corba ve IDL ile servis arayüzlerini (interface) tanimlardik, ORB üzerinden remote object ile iletisim icin gerekli lokal proxy stub kodu otomatik olusturulurdu.
- 2000 öncesi EJB döneminde local ya da remote interface siniflari olustururduk, implementasyonlarini EJB compiler/container kendisi yazip, kostururdu.
- AOP (Aspect Oriented Programming) ile aspektler yazardik, gerekli baglantilari olusturmak icin aop derleyicisi kod olusturdu ve derledi.
- Spring ile tüm konfigürasyonu xml dosyalarinda olustururduk, proxy implementasyonlarini ve enjeksiyonu Spring IOC container yapardi. Daha sonra anotasyonlar kullanmaya basladik, arka planda gerekli kod yine build ya da runtime icinde olusturulurdu.
- Mapstruct ile entity – dto mapping icin gerekli kodu yazmaya gerek kalmadi.
- Lombok ile tüm get/set metotlarindan kurtulduk.
Kodu generate ettirmek icin kod yazarken, simdilerde kod yazmadan gen ai ile tüm kodun olusmasini seyrediyoruz.
Bundan sonra ne gelecek?
Makina kodu yazmanin ne kadar zor oldugunu hatirlayalim. Assembly ile programcilikta büyük bir sicrama yasandi. Bu da yetmedi ve Fortran, C ve Java gibi diller ile daha yüksek bir soyutluk seviyesine cikildi.
Böyle bir sürecin aynisi yapay zeka kullanimi icin yasanabilir. Artik yapay zekanin ürettigi koda hakim olamayan programcilar icin yeni araclar gelistirilecek. Onlar yardimi ile yapay zeka kullanimi daha da soyutlanacak ve kontrol edilebilir hale gelecek.
Sistemsel olarak imperatif programlama ile yapay zekaya kodu nasil yazilacagini söylemek ayni seyler. Bu detaylarda kaybolmak anlamina geliyor. Oysaki deklaratif tarzda ne yapilacagini söylememiz yeterli. Gerisini kullandigimiz programlama dili, arac ya da yapay zeka halletmeli. Gelecekte daha cok imperatif araclar kullanarak kod yaziyor olacagiz.