Kendi yarattığımız kavramlar altında ezilmekten ne zaman vaz geçeceğiz bilemiyorum. Aslında sistem belli bir örgüyü hep takip ediyor.
- Soyut test edilemeyen bir kavram oluştur
- Bu soyut kavrama hayati fonksiyonları yükle
- Bu soyut kavram olmadan somut işlerin olamayacağına kendini inandır
- Daha sonra bu soyut kavramın boyunduruğu altına gir
Bilkent Üniversitesinde yeni dönem ders planı için İpek hoca ile görüşmeye giderken etraftaki güvenlik görevlisi sayısı ve siyah üzeri ışıklı koruma arabaları -benim hep siyah takım elbise giyen bir iş adamının kafasına renli taç takmasına benzettiğim, maymun edilmiş güzelim arabalar- etrafta bir "Devlet Büyüğü" olduğunu fark(!) etmemi sağladı. Kim olduğunu bilmiyorum ve de çok da ilgilenmiyorum. Peki bu olayın yazılım ile ilgisi nedir?
Devlet kavramı insanlar tarafından oluşturulmuş bir soyut kavramdır. Bu soyut kavrama atanan somut görevleri yerine getirilebilsin diye başka soyut kavramlar oluşturulur. Bakanlıklar, kurullar, kurumlar, ünvanlar diye gider bu silsile. Bu soyut kavramlara da somut fonksiyonlar verilir bu fonksiyonları da yerine getirsin diye daha da somut insanlar görevlendirilir. Bu görevlendirilen somut insanların esas görevleri somut fonksiyonları yerine getirmektir. İşte tam da burda komik(!) olmaya başlıyor. Bu somut insanlar, aslında var olmayan soyut kavramların aslında hiç var olmayan soyut gücünü kullanarak kendilerini onları görevlendiren somut insanlardan farklılaştırırlar. Sonuç ise görevlendirilen somut insanlar, görevlendiren somut insanların, somut görevlerini yapmak için başka somut (ya da fayda sağlayabilecek soyut) ek isteklerde bulunurlar ve bir anda kendinizi bu şekilde görevlendirilmiş bir somut kişiden ikametgah ilmuhaberesi alırken (3 tl) bulursunuz. İşlere başlangıç noktası Türkiye için o noktadır.
Hayatı kolaylaştırdığına inanılan soyut kavramların somut eziyetine dönüşen bu döngüden çıkmak artık mümkün değil. En azından yaşadığınız sürece. Öldükten sonra yaşayacağınızı düşündüğünüz soyut inançlarınız var ise bir de onun ek somut yükünü de taşımak zorundasınız tabi.
Peki yazılımda durum farklı mı? Yazılımı da insanlar gerçekleştirdiği için bir adım ileri gitmiş olması çok fazla beklentiden öte değil. Örnek vermek gerekirse kurumsal java uygulamalarına bakabiliriz. Örneğin durum yönemli (Aspect Oriented) bir uygulama yazacaksınız ve kendinize en popüler olanlarından Sprin Framework'ünü seçtiniz. Önce "Aspect Oriented" diye bir kavram bulmanız lazım. Bunun olmazsa olmayacağına inanmanız gerekiyor. Bir JEE (kurumsal java uygulaması) onsuz olmaz düşüncesine iyice inandıktan sonra bu düşünceyi gerçekleştirmek için somut Sprin projesini kullanmaya karar veriyorsunuz. İşte o anda bu somut kod satırları sizi ele geçirmiş oluyor. Kendisi de IoC, webflow vs vs gibi bir sürü soyut kavramlara somut görevliler getirmeye başladıktan sonra, siz de artık ikametgah bilginiz elinizde o xml dosyası senin bu xml dosyası benim dolaşmaya başlıyorsunuz. Ya da bkz. Portal Uygulamaları :)
Tabi bu durumdan memnun olanlar, olmayanlar ya da ilgisiz kalanlar olacaktır. Kraldan fazla kralcı olanlar, o soyut kavram olmasa hiç bir işe yaramayacak olanlar, muhalefet edenler olacaktır. Bu nedenle hangi kavramı, ne sebeple yaratıp kullandığımıza dikkat etmek gerekir diye düşünüyorum. Bir anda projeniz dışında başka işler ile kendinizi uğraşırken bulmak çok uzak bir ihtimal değil. Özellikle artık yazılımlar framework kullanmadan geliştirmenin çok zor olduğu günümüz şartlarında.
"Happpiness in intelligent people is the rarist thing I know" - E. Hemingway
