Bilim etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Bilim etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

3 Mart 2026 Salı

Devrim Dersleri - 2: Yazılımın Temelleri

Hiç daha önce, detaylarına hâkim olmadığınız bir konuyla alakalı bir soru sorulduğunda kendi kendinize çıkardığınız sonucu sanki teyit ederek edindiğiniz doğru bir bilgiymiş gibi, gayet kendinizden emin bir şekilde cevap namına söylediniz mi? Hatta belki soru sormaya bile gerek kalmadan, ilgili konuya tamamen hâkim olduğunuzu ya da sanki başkasının bilmediğini bildiğini gösterme adına durduk yere yaptınız mı bunu?

“Evet yaptım. Ve bunu çok yapıyorum” diyorsanız, bilgisayar bilimlerinde yapılanı görmeden kendinize bu kadar haksızlık etmeyin derim. Çünkü doğası gereği bilgisayar bilimleri, kendi kendine sonuçlar çıkarıp bunu başkasına doğru bir bilgiymiş gibi anlatmanın, muhtemelen, en fazla yaşandığı alandır, tabii ki de siyaset dışında. Neden doğası gereği?

Çünkü bilgisayar bilimlerinde uzmanlaşma tamamen bilgi birikim üzerine dayanır, beden gücüne ya da aile bağlarına ya da ne bileyim, fiziksel görüntüye değil. Ve çalışan bir mekanizmayı ortaya çıkarmanın da korkunç bir bilgi birikim istiyor olmasından kaynaklı en fazla soru sorulan ve aynı oranda cevap verilmeye çalışılan yani yardımlaşmanın, etkileşimin olduğu alan da burasıdır. Onun için çıkardığı sonucu doğru bir bilgiymiş gibi söyleme doğal olarak en fazla bu alanda görülür.

Elbette cevabını bilmese de iyi niyetli bir şekilde çıkardığı sonucu cevap namına söyleyebilir insan. Yanlış da olabilir bu cevap ama illaki yanlış olacak diye bir kural da yoktur elbet. Büyük ihtimalle doğru da çıkıyordur. Doğru ise ne güzel, yardımcı da olunmuştur. Fakat bazen insanlar bilmediğini söylemek yerine, soru sorulmasını “daha fazlasını bilen” insan görüntüsü verme fırsatı olarak görüp, çıkardığı sonucu doğru bir bilgiymiş gibi söyleyebilmektedir, doğru mu yanlış mı olduğunu umursamadan. Ya da aslında kendisinin de anlamadığı, daha önceden verilmiş ama aslında yanlış olan cevabı, aynı öncekilerin yaptığı gibi kendisinden son derece emin bir şekilde tekrarlayabilmektedir. Bu gibi bir durum için elbette iyi niyetten bahsedemeyiz ama sorun bu değil. Çünkü ne olursa olsun, ister iyi niyetli olunsun, isterse de olunmasın eğer verilen bilgi yanlışsa ve bu doğru gibi söylenmişse, her iki durum için de cevap arayan insanların yanlış yönlendirildiği gerçeği değişmez.

Sonucunda da bu kadar farklı kaynaktan aynı yanlış cevabı duyan insan da sorunun kendisinde olduğunu, herkesin anlamayı başardığı şeyi kendisinin anlayamadığını düşünebilmektedir, büyük bir moral bozukluğu ile. Bunun sonucunda da ya vazgeçen olmaktadır ya da verilen hatalı cevaplar karşısında anlamış gibi yapan insan topluluğu bir kişi daha kazanmaktadır. Hatta, o da zamanla o hatalı cevapları tekrarlayarak başkalarını yanlış yönlendirecektir, belki. Ama sanıyorum o topluluk bu fakiri kazanamadı, çok şükür.

Devrim Dersleri – 2: Yazılımın Temelleri serisinin hikayesi şöyledir:

1999 sonu 2000 başı... Her mahalleye birer ikişer internet kafe açılmış ve biz de ilk defa klavyenin tuşlarına dokunmuşuz, web sitesi tıklamayı öğreniyoruz. Paralelinde de Matrix filmi çıkmış onu izlemişiz. Kendi aramızda da hacker efsaneleri anlatmaya başlamışız. Ve bu gazla üniversiteye başlamış, programlama dersine de girmişiz. Gizemli bir hacker olmamız an meselesi artık derken, hoca kara tahtanın önünde bir grup sayıyı küçükten büyüğe sıralamayı gösteriyor. Bu ne yahu?

Aslında işin özü oydu ama bunu görebilmek bile ne mümkündü o dönemde. Kara tahta önünde hiç kategorize etmeden yapılan anlatım tekniği sebepli, anlatılanları anlamak ne kadar zordu. Daha yolun çok başında olduğumu ve yolun çok uzun olacağını anlamıştım.

İnternete ulaşmanın pek de kolay bir şey olmadığı, ulaşılsa bile günümüzde erişilebilen bilgi birikiminin milyonda birinin dahi olmadığı o yıllarda, internet kafelerde bir şeyler okumaya çalışıyorduk. Ama C ile biraz biraz kod yazmaya da başlamıştım. Konsoldan kullanıcının 2 sayı girmesini istemek ve toplamını konsola basmak... C programlama dili ile ilk böyle başladık programlamaya. Koşullamalar yazmam gerektiğini anlamıştım en azından. Sonra C++ diye bir şey duyduk. Allah Allah farkı neydi ki? “C++ dili nesneye yönelik bir dildir”. Cevap buydu. Peki nesneye yönelik dil ne demek, nesne ne demekti?

Bir hocaya sordum. Mantığını sorduğumu anladı, geçiştirdi. Zaten dünya üzerinde kime sorsam geçiştirecekmiş. Çünkü bunu anlamanın yolu zekâ kavramını anlamaktan ve zekânın nesne kavramı ile bağını keşfetmekten geçiyordu ki -biraz da yanlış isimlendirilen- nesneye yönelik programlama denilen programlama tekniğini zekânın tam tanımlarını vererek ve o tanımlarla uyumlu olacak şekilde anlatan, sanıyorum tarihteki ilk çalışma Devrim Dersleri – 2: Yazılımın Temelleri: Kod adı ile encodeum kanalında 2026 yılında yayınlanmış oldu.

Sormaya devam ettim. Programlama bildiği düşünülen başka bir kişiye sordum bu nesneye yönelik programlama denilen şeyi. Efsane bir cevap vermiş o zaman: “Hani, görsel programlama var ya”, kullanıcı arayüzü olan Windows uygulamalarından bahsediyor, “İşte nesneye yönelik programlama o” dedi. Şimdi düşündüğümde, “Vay canına neyi nereye bağlamış” diyorum. Doğru kabul etsem ve yıllarca üzerine gitmesem, sözde hem nesneye yönelik programlamanın hem de kullanıcı arayüzü hazırlamanın ne demek olduğunu anlamış gibi yapacağım ben de. Bir iki kişi ile daha konuştum onlar da ezbere cevap verdi. Baktım anlayamıyorum, konuyu erteledim. Vazgeçmedim ama erteledim. Ta ki 2006 yılına kadar. 2006 yılından sonra internet bağlantısına kavuşmam ve sonrasında da korkunç bir okuma sürecine girmem ile bir şeyler belirmeye başladı. Tam mantığını ise “COM” diye kısaltılan Component Object Model konusunu anlamam ile çözmüş oldum.

Hatta şöyle olmuştu: Bir gün yolda yürüyorum aynı zamanda bu konuyu düşünüyorum: “Bir fonksiyona bir arayüzü parametre olarak geçiriyoruz. O arayüzün metodunu fonksiyon içinde çağırıyoruz. Ve çalışma zamanında, o arayüzden türetilen hangi nesne gelirse gelsin kod o nesnenin metodunu çağırmış oluyor. Çünkü derleyici her sınıf için ‘v-table’ denilen fonksiyon işaretçilerini içeren bir tablo hazırlıyor. Ve aslında fonksiyona onu geçirmiş oluyoruz, sınıfın verileri ile birlikte. Yani nesnenin geçirildiği o fonksiyon, aynı arayüzden türeyen nesnelerin içindeki fonksiyon işaretçileri üzerinden dinamik metot çağırımı ile nesneleri birbiri yerine kullanmış oluyor. Derleyici metot çağırımı için metodu adrese bağlama işini derleme anında yapmıyor. Dinamik olarak yapıyor dolayısıyla çalışma zamanında gelebilecek farklı nesneleri birbiri yerine kullanmış oluyor. ‘Birbiri yerine kullanma’ mı dedim az önce?  Aaa bir saniye, zekâ da alet kullanabilme yeteneğiydi. Ha nesneler ile zekâyı gerçeklemişler yahu. O zaman zekâ da aslında alet kullanma değil, aletleri yani nesneleri birbiri yerine kullanma yeteneği. Hah tamam şimdi oldu” demiştim o zaman. Bütün taşlar yerine oturmuştu.

Fakat süreç burada değil, çok ilginç bir yerde bitti.

Askere gittim 2009 Aralık’ta. Bir sabah içtimadayız. Sağ olsun, tabur komutanımız askerlere nasihat ederken zekânın o zamana kadar ilk defa duyduğum farklı bir tanımını söyleyip, ardından kendi çıkardığı yanlış sonucu ekledi sözlerine. Şu minvaldeydi söyledikleri: “Arkadaşlar zekâ çevreye uyum sağlama yeteneğidir. Burada ortama, arkadaşlarınıza uyum sağlayacaksınız”. 

Muhtemelen zekânın tanımını bir yerde okudu. O tanımın orijinalinde geçen “environment” ifadesinin Türkçeye “çevre” olarak çevrilmesini birçok insan gibi yanlış anlayarak bunun arkadaş çevresi, insanın bulunduğu ortam olduğunu falan sandı ve bunu doğru bilgiymiş gibi insanlara aktarmaktaydı. Elbette kötü niyetli değildi ama insanları yanlış yönlendiriyordu. Ama bir kişi hariç, yine bu fakir. Ben o anda, zekâ için söylenen “çevreye uyum sağlama yeteneği” tanımını, “aletleri birbiri yerine kullanma yeteneği” tanımı ve nesneye yönelik programlama kavramları ile eşleştirip, ikinci uyanmayı yaşamıştım. Ve o tanımı da izlemiş olduğunuz gibi, 2026 yılında yayınladığımız Devrim Dersleri – 2: Yazılımın Temelleri: Kod isimli videoya eklemiş oldum.

İşte, “Bu ders neden bir devrim dersi?” diye soracak olursanız, “Bu ve bunun gibi açıklamaları içerdiği için devrim dersidir” derim.

Zaten encodeum çatısı altında yayınlanan çalışmaların kalitesinin ne seviyede olduğunun farkında olan encodeum’un sıkı takipçileri, mevcut Matematik müfredatının yanlış olduğunu anlattığımız Devrim Dersleri – 1: Matematiğin Temelleri isimli çalışmadan 13 yıl sonra, Yazılımın Temelleri serisinde yazılım ile ilgili klasik bir anlatım yapmayacağımızı tahmin etmişlerdir. Sıra dışı bir şeyler beklemişlerdir.

Peki, bu kadar mı yazılım konusu ile ilgili yapacaklarımız?

Bu kadar olur mu yahu! Daha yeni başladık. Yolumuz uzun. Daha, bitirmemin yıllar sürdüğü bu devasa şekli adım adım tamamlayacağız inşallah. (Not: Üstüne tıklayarak 4k çözünürlüklü haline ulaşabilirsiniz.)

Yazılımın Temelleri

Belki de 1. Devrim Dersi serisi ile tarihin en önemli Matematik dersi ortaya çıktı, naçizane. Eğer öyleyse, bu 2. Devrim Dersi serisi ile de, inşallah başarabilirsek, tarihin en önemli yazılım dersi serisini çıkarmayı planlıyoruz.

Senior Developer’dan tut da Software Architect’e kadar bir dolu unvanı olup da temel konularda eksikleri olan, bir şeylerin oturmadığının farkında olan ama soramayan, belki eksikleri olduğunun farkında bile olmayan arkadaşlar varsa merak etmesinler, bu seri ile sessiz sedasız hepsini işleyeceğiz inşallah, mantıklarını anlata anlata.

Hatta, eksiğinizin olup olmadığı hususunda hemen şimdi ufak bir test de yapabilirsiniz kendinize. Şöyle: Az önce ilk bu konuları öğrenmeye başladığım zamanlarda, edindiğim bir bilgi olarak, C++ Programlama Dilinin C Programlama Dilinden farkı bağlamında C++ dilinin nesneye yönelik bir programlama dili olduğunu söyledim, sanki C değilmiş gibi. Siz de okudunuz ya. Eğer bu bilgiyi yadırgamadıysanız, evet, bu, temel konularda eksikleriniz olduğunu göstermektedir. Çünkü doğru bir bilgi değildi o. Daha doğrusu, yanlış bir yönlendirme içeriyordu.

Durun, bir meydan okuma yapayım o zaman, heyecan katsın Devrim Dersleri – 2 sürecine. İki soru:

1. İlk soru şu olsun: C ile C++ programlama dilinin farkı nedir? (İpucu: İşletim Sistemi çekirdeğinin çalışma mekanizması ve programlama dillerinin neleri soyutladığı konularına bakın.)

2. Sınıf içine koyduğumuz erişim belirleyicileri ne işe yarar? Hani “public”, “protected”, “private” erişim belirleyiciler var ya. En temel konulardan... Bunlar ne işe yarar? (İpucu: Bu ders için yayınladığımız şekilde nereye koyduğumuza dikkat edin.)

Siz bunların cevaplarını düşünürken ben bir de bu konunun teolojik boyutuna gireyim. Çünkü buraya kadar anlattıklarımız, bu konunun teknik kısmıydı. Bu konu o kadar derin ki, işin bir de teolojik boyutu var. Şimdi biraz da konunun o boyutunu konuşalım.

Hatırlarsanız, “Müslüman Olmak Nedir? Ne Değildir?” yazısında insanı oluşturan teolojik parçaları ve yine etkileşim halinde olduğu teolojik varlıkları çizmiş ve 2 parçanın eksik olduğunu söylemiştik. İşte o parçalardan biri zekâ idi. Zekâyı ekleyememiş olmamın nedeni, o yazıyı yayınladığım zaman henüz 2. Devrim Dersini yayınlanmamış olmamdı. Devrim Dersleri – 2 sürecini başlattığımıza göre artık ekleyebilir ve üzerine konuşabiliriz. Yazının linkine tıklayarak şeklin en güncel haline ve zekâ kavramının teolojik açıklamasına ulaşabilirsiniz.

Sadece Türkiye'de değil, tüm dünyada akıl ve zekâ sözcüklerinin birbiri yerine kullanıldığını ve böyle bir genel bir kanı oluştuğunu görüyorum. Hayır bu doğru değildir. Zekâ ve akıl birbirinden farklı 2 kavramdır. Hem az önce linkini verdiğimiz yazıda gördüğünüz gibi hem de ikinci Devrim Dersi serisinin ilk çalışmasında işlediğimiz gibi zekâ aklın dışında farklı bir işleve sahip ayrı bir parçadır. Akıl mantık kurma işini yapar. Dolayısıyla insanınkine kıyasla çok basit olsa da hayvanlarda da akıl vardır. Onlar da mantık kurabilirler (Örneğin: Pavlov'un Köpek Deneyi). Zekâ ise aletleri birbiri yerine kullanabilmemizi sağlar. Bu ise sadece insanda vardır. Onun için akıl ve zekâ sözcüklerini birbiri yerine kullanılamayacak 2 farklı şeyi temsil etmektedir.

İngilizcede zekâ için “Intelligence” sözcüğü kullanılırken, akıl için “Mind”, “Reason” gibi sözcükler kullanılıyor ama bunların hepsi çok fazla birbiri yerine de kullanılıyor. 

Akıl için İngilizce sözcük kullanmamamın nedeni Mind veya Reason sözcüklerinden birini kullanma konusunda kararsız kalmam ve Intelligence sözcüğünün de bu manada kullanılıyor olmasıdır. O zaman buradan bir sonuç daha çıkıyor ki, sanırım encodeum çatısı altında anlattıklarımızı sadece Türklere değil, tüm dünyaya anlatmamamız gerekiyor.

Bitirmeden önce, “Müslüman Olmak Nedir? Ne Değildir?” yazısında gördüğünüz şekilde eksik olan son parçayı soracak olursanız, o da inşallah Devrim Dersi – 4’te.

29 Kasım 2013 Cuma

Devrim Dersleri - 1: Matematiğin Temelleri

Devrimcilik...

Bazı insanların ne kadar kolay kullandığı bir sıfat olmuş devrimcilik. Kendisini ya da örgütlü ise grubunu bu sıfatla anan bu kadar çok insan olduğunu görünce gerçekten hayret ediyorum. Hayret ediyorum, devrimin ne demek olduğunu biliyor olsa, böylesi bir cesareti kolay kolay gösteremez bir insan çünkü.

Devrim: İnsanların hiç bilmediği, yada tamamen yanlış bildiği şeyleri gösterme faaliyetidir.

Devrimci: Devrim yapabilecek bilgi birikime ulaşmış insan demektir.

Ne kadar ağır tanımlar...

Devrimcilik, bir insanın kendi kendisine takacağı veya kendisini bu şekilde ifade edeceği bir sıfat olamaz. Yani, çok büyük bir sorumluluğu alma demek olan, çok çok uzun yıllar kafa yorma sürecini de içinde barındıran -çünkü hiç bilinmeyen ya da tamamen yanlış bilineni bulmak gerekiyor-, üstelik sürecin sonunda da -dünyevi- her şeyini kaybedebilmeyi göze almış olmayı da gösteren bu sıfatı biz kendi kendimize takmayacağız. Biz çalışmalarımızı yapıp, sorumluluk alarak yaptıklarımızı insanların istifadesine sunacağız yani devrim için teşebbüslerde bulunacağız. Eğer başarmışsak devrimci sıfatı bizi bulur zaten. Ama bu ne cesarettir ki, hiçbir teşebbüste bulunmadan, insanlar kendi kendisine bu devasa sıfatı yakıştırabiliyorlar. Sanıyorum, devrim ve devrimciliğin siyasi jargona ait -belki alelade- bir tanımlama olduğunu zannediyorlar da, üstüne almaya kalkacak insanı, -eğer bir şeyler ortaya koymamışsa- ezip geçebilecek böyle bir sıfatı hiç sorun etmeden kullanabiliyorlar.

Sen yapabiliyorsan, -ki yapabilecek durumdasın da yapmıyorsan zaten büyük vebal taşırsın- insanlara yeni şeyler göster. Yanlışlarını düzelt. Elbette insanlar sana çabanın sonunda o sıfatı yakıştıracaklardır, o en kolayı. Yeter ki aklını, vaktini, hayatını insanların yararına harca, yepyeni keşiflerle insanların karşısına çıkmış ol. Ama öbür türlü, tüm bunlar, sorumluluk almanın o koca yükü zor gelmiş de yine kendine devrimci sıfatını yakıştırabiliyorsa bir insan, o zaman bu cesareti ancak cehaletinden kaynaklanıyor demektir. 

Tabii, bu işin püf noktası da o ya: Önemli olanın sıfatlar değil, faaliyetler olduğu bilincinde değilsek, aklımız kapanmış demektir. O zaman keşif yolları yani devrim yolları da kapalı olacak demektir. Yani süreç başlamadan bitmiş demektir.


Dört işlem Matematiğin, -her işlemin teker teker tanımı yapılarak- aslında beş işlem olduğunu ve bu yeni 5 işlem Matematik kavramı üzerinden, tüm alt dalları ile birlikte, matematiğin, evrenin işleyişini nasıl ifade ettiğini, geniş bir matematik ağacı çıkarılarak anlatan Devrim Dersleri serisinin ilk çalışması: Matematiğin Temelleri aşağıdadır.

Yaklaşık bir saatlik, matematiği anlamlandırma çabası, yukarıdaki ifadelerle, ilk devrim teşebbüsüm.

Bağlantı Adresi: https://www.youtube.com/watch?v=YV9zu4iEaSQ

Yararlanılan kaynaklar:

1. Understanding Digital Signal Processing (2nd Edition), Richard G. Lyons, Prentice Hall
2. Who Is Fourier? A Mathematical Adventure 2nd Edition, Transnational College of Lex
3. Wikipedia

5 Mart 2007 Pazartesi

Geri Kalmışlığın Nedenleri ve Tarihi

Bu yazıyı insanlığa faydası dokunacak hizmetler yapmadığı -ki aslında bu da şart değil, zararı dokunmasa yeter-, ilim öğrenmenin, meseleleri anlamanın zorluğuna katlanmadığı hali ile kendisine devamlı olarak aydın, çağdaş, ilerici, âlim ya da Allah dostu gibi sıfatlar yakıştıran ve yakıştırılan insanlara hitaben yazıyorum. Aldananın hep başkası olduğu ama kendisinin doğru yolda olduğunu sananlara… Kendi hayal dünyasında, başkalarına kötü olma rolü biçip, kendisine iyiliği, belki kahramanlığı biçenlere... Geri kalmışlığın nedenleri, kaybedişimizin nedenleri hep başkaları üzerindedir diye kabul etmiş hiç üzerine alınmayan âlimimiz, ilericimiz, aydınımıza...

Peki, nedir bu gerilik, nedendir? Ne zaman başlamıştır, ne zaman bitecektir?

Bir kesime göre dine yakınlaşmaktan, daha doğrusu din olduğunu zannettiği şeye yakınlaşmaktan, bir kesime göre ise dinden uzaklaşmaktan, yine daha doğrusu din olduğunu zannettiği şeyden uzaklaşmaktan kaynaklanmaktadır. İki taraf da ne geri kalmışlığın nedeni ne de dinin ne olduğunu biliyor değil. Ama hep aynı psikoloji, kötü olan başkası kesinlikle ben değil.

Neyse...

Geri kalmışlığın matematiksel ve mühendislik temellerini yani gerçek nedenlerini 4 ana başlık altında toplayarak anlatmaya çalışalım.

1-) Kompleks (Karmaşık) Sayılar
2-) Sanayi Devrimi
3-) Yarıiletken teknolojisi(Koşulun, mantığın benzetimi)
4-) Kitap Okuma Haftası

1-) Kompleks Sayılar


Kompleks Sayı nedir?(50 PUAN) Rus bilim adamları sorarmış bu soruyu öğrencilerine. Hoş bu soruyu içeren bir sınavdan bizim mühendislik fakültelerinde okuyan kaç kişi geçer o muallakta. Ama %92-96 arasında değişeceğini tahmin ediyorum başarısızlığın. İşin daha da kötüsü bu soruya verebilecek “ya i^2 = -1 iste” tanımından başka hiçbir cevabi olmayacak kaç tane akademisyen mevcut acaba mühendislik fakültelerinde?

Kompleks sayıların tarihi belli değil, kimin ilk düşündüğü de muallakta ama her şey Euler ile başladı diyebiliriz. Ne kadar ilginç değil mi; kompleks sayıların tarihi yüzlerce yıl öncesine dayanıyor ama hala daha Kompleks sayının ne olduğunu tam olarak biliyor değiliz ve bu halimizle diploma almaya devam ediyoruz.

Euler öyle bir denklem bulmuş ki bu denklemden faydalanarak Laplasın geliştirdiği dönüşüm ardından Laplasın dönüşümünü modifiye eden Fourier bizim kaybedişimizin başlangıç noktası olmuş. Kompleks sayılara ya da dönüşümlerle ilgili teknik bilgi bu makalenin içeriği olmasa da çok yalın bir şekilde bu adamların neyi tasarladığını ve tasarladıkları şeyin nelere temel teşkil ettiğini göstermek için biraz bilgi vermekte fayda var.

Kompleks sayılar 2 boyut içerir onun için adi komplekstir zaten. ”Karmaşık” diye Türkçe çevirisi bu işin vahametini ortaya koymaktadır. Daha kompleks sayının adını bile koyamamışız. Kompleks sayılar bize 2 boyutlu çözüm sunarlar. Daha doğrusu kompleks sayının diğer sayılardan farkı onun nicelik değil konum belirtmesidir. Konum belirtmek önemlidir. Çünkü bu artık denklem çözerken skalar çözüm yapmak yerine vektörel çözüm yapabileceğimiz anlamına geliyor. İşte Laplace, fonksiyonları kompleks düzleme taşıyarak fonksiyonların çok daha kolay çözüleceğini göstermiş ayrıca Laplace’ın dönüşümünü şekillendiren Fourier’in dönüşümü ile birçok şeyden oluşan fonksiyonları o çok şeylerin sıklığını gösteren bir fonksiyona dönüştürebilmeyi sağlamıştır.

Bu yazılanlar sizin için bir anlam ifade etmiyorsa söyle düşünebilirsiniz. Mühendisliğin temeli kompleks analizdir ve kompleks analizin temeli kompleks sayılar ve bunların babaları ise yukarda saydığım Euler, Laplace ve Fourier’dir. Mühendisliğin temelini daha doğrusu mühendislik çözümünün temelinin mantığını kafasında oluşturamamış insanlar ile neyi üretebilir, neyi tasarlayabilirdik ki? Bu bizim tarihte ve geri kalmışlığımızın tarihinde kaçırdığımız ilk trendi. Mühendislik üretiminin matematiksel temelleri bizde yoktu dolayısıyla tasarlayamadık, üretemedik ve hala daha tasarlamaktan ve üretmekten uzağız.

2-) Sanayi Devrimi

Newton ile başlayan, Maxwell ile devam eden, 1900’lü yılların başında Kuantum Fiziğinin keşfi ile doruğa çıkan –daha ismini söylemediğimiz çok saygın onlarca bilim adamı ve matematikçinin keşiflerini yayınladıkları- evreninin işleyişini keşfetme süreci batıda sanayi devrimini beraberinde getirmişti. Makineleşme, elektriğin mühendislik uygulamaları, yapılaşma ve şehirleşme ile batı medeniyetinin temelleri atılırken, doğu ne yazık ki yerinde sayıyordu.

3-) Yarıiletken Teknolojisi (Koşul ve mantığın benzetimi)

Yukarıda saydığım bu 2 temel olaydan sonra batıda 2 bilim adamı koşul oluşturabilecek bir yapı, bir malzeme üretmeyi başarmışlardı. Doğada yalnızca döngü vardır. Koşul oluşturmak, oluşan koşullara göre secim yapmak, karar vermek bizim beynimize hastır. İşte bunu bir malzemeye yaptırabilmek( p-n-p eklemi), doğaya koşul eklemek, karar verebilme yeteneğine sahip bir mekanizma oluşturmak demekti. Bu konuda da teknik detay vermenin anlamı yok bu konu için ama biraz bahsedeyim.

Bu adamların bulduğu şey en yalın hali ile şöyle çalışır. Malzemenin ortasından akim gelir ise (-se’ye dikkat) üstteki akim transistörden geçer. Gelir ise(if)… İste adamlar karar verme yeteneği olabilecek, programlanabilecek, geliştirilebilecek(programlama vasıtası ile) bir malzeme bulmuşlar ve hemen üretmeye başlamışlar ve sanayideki her şeyi buna entegre etmeye başlamışlar. Tırnağınız kadarlık yere bunlardan 500 milyon tane yerleştirerek ve bunu üretecek teknolojiyi geliştirerek ve bu gelişim sürecine paralel olarak yazılım teknolojilerini de geliştirerek öyle bir pazar oluşturmuşlar ki dünyanın en büyük 2 firmasını çıkarmış bu süreç. Hatta tek başına bu teknoloji silikon vadisini (Kaliforniya\Amerika) çıkarmış. Ve Kaliforniya tek başına bir ülke olsa dünyanın en güçlü 4. ülkesi olacak kadar büyük güç kazandırmış batıya.

4-) Kitap Okuma Haftası

Ne alaka acaba?

Kitap okumanın amaç olarak algılandığı bir coğrafyadayız. Kitap okumak ile harf seslendirmenin ayni şeyler olduğuna inanılan bir coğrafyadayız. Kitap okumanın bir amaç değil hedeflerinize ulaşmadaki bir araç olduğunu anlatmak zor. Bilgiye ulaşmak için bir araç. Hele ki öyle hayatta hedefleri yoksa adamın, hiç olmamışsa nasıl anlatacaksın ki bu durumu? Hedefsiz, amaçsız bir insan niye kitap okur ki? Harf seslendirmek yeterli oluyor mu?

Eğitim sistemi ezberciymiş. Daha problemin adını koyamıyorlar çünkü problem kendilerinde, farkında değiller. İşte bu farkında olamayan insanlara karsı o kadar sinirliyim ki… Sinirliyim çünkü kendilerine sıfat takıp duruyorlar. Sen ortaya insanların faydasına dokunacak düzgün bir şeyler koymayı başar. O güzel sıfatlar seni bulur zaten.

Ezberci eğitim değil amaçsız eğitim.

Kitap okuma haftasıymış. Kitap okumanın yozlaşması... Ne için yapıldığının unutulması... Harf seslendirmenin yeterli olduğunun sanılması…

İşte bu 4 neden etrafında toplanmış yaşanan süreçler, zaman kayıpları doğunun geri kalmışlığının sebepleridir ne yazık ki...

Bir Yazılımcının Gözünden Evrim Fikri

Tesadüf diye bir şey canlılığın ortaya çıkış sürecinde yaşandı mı, yaşanmadı mı? Ne kadar kritik bir soru değil mi? Cevabına göre ya yaratılış ya da ateizm için yolun sonu gözükecek. Cevabını bilemiyoruz. Bilememek bizi inanmaya sevk ediyor. İnanmak cehaletin bir sonucuymuş. İspat edemediğin şeylere inanırmışsın. Öyle derler. Bizler cehaletimizin sonucu olarak Allah’ın varlığına ya da yokluğuna inanıp inanmama çizgisinde gider gelirmişiz. Belki de gidip geldiğimizi zannederiz. Belki Allah'ın varlığına inanıp inanma diye bir sınanma aslında hiç yoktur. Aslında herkes Allah'ın varlığını kabul ediyordur. Biz bilgisizliğimiz ve yanlış çıkarımlarımızın sonucu olarak bu konudan sınandığımızı zannediyoruzdur. Belki de sınanma başka bir konu üzerinedir. Ne olursa olsun sorular, şüpheler, cevaplar, tuzaklar hep karşımızdadır. Kalbimiz meydana bırakılmış bir tüy tanesi gibi bir oraya bir buraya savrulmaktadır.

İşte bu savruluş sırasında "Neden varız?" sorusuna cevap bağlamında günümüz insanı iki iddia ile karşılaşmaktadır: Evrim ve Yaratılış. Günümüz insanı dedim çünkü geçmişte bunun neredeyse hiç konusu açılmamış. Çünkü tesadüf diye bir şeyin varoluş sürecinde rol alabileceği hiç düşünülmemiş. Fakat günümüzde bu görüş gündemi fazlasıyla meşgul etmektedir. Neden?

Nedenine geleceğiz ama bilimsel bilgi üzerine konuşalım biraz.

Bilimsel bilgi evrenin çalışma mekanizmasının nasıl işlediğini anlatan bilgiler topluluğudur. Evrenin çalışma mekanizması da aslında sayısız alt mekanizmadan oluşur. Bilimsel bilgi işte bu mekanizmaların neden var olduğundan ziyade mekanizmaların kendisi ile ilgilenir ve çalışmalarını açıklar. Sen ise doğadaki mekanizmaları açıklayan bu bilgiler topluluğuna bakar, kendince yorum yaparsın neden var olduğu ile ilgili. Yorum yapanın sıfatı ne olursa olsun, yapılan yorumlar bilimsel bilgi değildir. Yani senin bir fosile bakıp ya da devenin göz yapısına bakıp "Bunlar tesadüfen bu hale gelmiştir" ya da "Yaratılışımızın bir sonucudur" demen senin bakış açını yansıtır. Bunların hiçbirisi bilimin sınırları içinde değildir. Bilimsel bilginin şahsi olarak yorumudur.

Yaratılış ya da tesadüf...

Yaratılış, yalnızca bir sefer ve doğaüstü bir şekilde olmuştur. Doğası gereği, olağanüstü bir şekilde gerçekleşmiş bir şeyi bilimsel bir düzleme oturtma diye bir şey zaten mümkün değildir. Hatta yaratılışın bilimsel bilgi gibi sunulması dini açıdan da doğru olmaz. Bu noktada, çok yapılan bir hatayı kısa bir not olarak düşmek isterim. "Din bilime aykırıdır" iddiasına cevap verme adına yaratılışın bilimsel bilgi olarak ifade edilebileceği söyleyen insanlar olabiliyor. Şahsi bir görüş olarak söylüyorum: Bunu yapanlar iyi niyetli olsalar da bu yapılan yanlış bir iddiaya yanlış bir cevap vermekten başka bir şey değildir ne yazık ki. Dediğimiz gibi bilimsel bilgi mekanizmaların işleyişini açıklar, nedenini değil.

Peki tesadüf bilimin sınırları içinde mi?

İşte Evrim Teorisi bunu yapma çabasıdır. Evrim, canlılığın ortaya çıkışını ve bu noktaya gelişini evrenin çalışma mekanizmasının sonucu olduğunu söyler. Yani tesadüf iddiasına bilimsel bir kılıf sunar. Daha doğrusu sunma iddiasındadır. Bu teorinin bu kadar popüler olmasının nedeni de budur. Yoksa teori olduğu iddia edilen evrim fikri canlılığın var olma nedenini ispatlayabiliyor diye değil. Dine, daha doğrusu din adına hareket eden bazı kötü niyetli insanlara tepkili insanların, din adına hareket eden o kötü insanlardan ayrı olduklarını gösterebilmek için tutundukları daldır Evrim Teorisi. Aslında tamamen psikolojik, tepkisel bir durumdur evrim fikrinin bu kadar tutmuş olması. Yoksa korkunç bir iddiadır bu. Sadece canlılığı işin içine katarak söylüyorum: Düşünebiliyor musunuz, bu kadar korkunç karmaşık bir yapı var karşınızda, hatta bu karmaşık yapı, sayısız karmaşık yapıların birleşiminden oluşuyor ve hepsi uyum içinde çalışıyor. İnsan tekil olarak karmaşık yapıların karşısında mı dehşete kapılsın yoksa bu kadar karmaşık olup da üstüne bir de birbirleri ile uyum içinde sorunsuz bir şekilde çalışıyor olmalarına mı kapılsın karar veremezken, biri çıkıyor ve tüm bunların nedeninin tesadüf olduğunu ve bunu bilimsel olarak ispat edeceğini iddia ediyor. Dediğim gibi korkunç bir iddiadır bu.

Ha, tabii şu da var, sen bol keseden bunu iddia edersen, ben de hani nerede hiçbir şüpheye yer bırakmayacak deneylerin, kanıtların derim. Eğer eksiksiz cevap veremezsen, üzgünüm ama düşeceğin durum karşısında elbette bu iddianın tepkisel bir şey olduğunu, bilimsel çalışmaların sonucu olmadığını söylerim.

Ama böyle olması bu konu üzerine çalışmalar yapılmasın demek değildir. Bu konuda üniversitelerde çalışmalar yapılsın. Yapılan çalışmalarda her şeyin tesadüfen var olduğu bir ön kabul olsun. Zaten tesadüf temelli görüşün yaratılış temelli görüşten ayrıldığı da nokta budur. Tesadüf kavramı, ucu açık bir çalışma alanı sunar. Bu çalışmalar yapılsın ve finanse de edilsin. Ama laboratuvar ortamında testlerle birlikte canlılığın nasıl oluştuğunun ispatının evrim üzerinden yapılacağı güne kadar da ateizmin tanımı gereği, ateist olma diye bir şeyin mümkün olmadığı da kabul edilsin.

Bu uzun girişten sonra gelelim konu başlığımıza. Evrime bir yazılımcı gözüyle bakmaya.

Her şey bir denge içindedir. Evrende, vücudumuzda, ruhani tabiatımızda hep bir denge vardır. Evrimi de buradan konuşmaya başlamalıyız. Evrendeki dengeden, düzenden başlayarak… O zaman bu noktada sormamız gereken soru şudur: Evren değişime açık mı? Evrende değişim var mı?

Hayır, yoktur desem... "Ama doğduğunuzdan beri her şeyin değiştiğini görüyoruz ve insanlar her şeyin bir değişim içinde olduğu söylenmektedir" diye düşünerek itiraz eder misiniz bu dediğime? İtiraz ederseniz hata yaparsınız. Çünkü canlılık değişime açık bir yapıya sahip değildir.

Madem başlıkta yazılımcı gözü ile anlatacağız dedik öyle yapalım.

İlk kodlamaya başladıklarında mühendisler her şeyi tek bir Çalıştırılabilir Dosyanın (exe’nin) içine koymuşlar. Her defasından kodu tekrardan yazmak… Of, ne can sıkıcı… Kodun yeniden kullanılabilirliği (reusable) yalnızca kopyala-yapıştır işleminden ibaretmiş.

Bakmışlar böyle olmayacak, "Biz en iyisi kodumuzu dinamik olarak bağlayabileceğimiz kod dosyaları haline(DLL) getirelim ve sınıflarımızı da oraya koyalım oradan istediğimiz sınıfın istediğimiz fonksiyonuna ulaşırız" demişler. Böylelikle komponentler (DLL dosyaları) haline getirdiğimiz bir kodu her defasında tekrar tekrar yazmak zorunda kalmaz, o DLL'e bağlanır kullanırız. Üstelik DLL'lere koyacağımız sınıflarda yapacağımız herhangi bir değişiklikten de exe’miz yani çalışan kodumuz da etkilenmez, diye düşünmüşler. Hmm… 2 tane farklı yerdeki kod birbiri ile etkileşim halinde bir tarafı değiştireceksin ve öteki taraf etkilenmeyecek ha? Öyle kolay değil o işler.

Bu durumun çöküşü çok da uzun sürmemiş. Çünkü öncelikle DLL'deki kodlarda kullanılan Function Overloading için kullanılan isim türetme (name mangling) mekanizması farklı marka derleyicilerde farklı olması, ikincisi ve en önemlisi sınıfta yaptığın değişiklik ile oluşan nesnelerin boyutunun artması -örneğin exe 8 byte veri beklerken ve o kadar geleceğini tahmin ederek ona göre yer ayırırken örneğin 16 byte gelmesi- işleri bozmuş. Bakmışlar bu işler böyle olmuyor 2 farklı kodu birbiri ile uyum içinde çalıştırmak öyle kolay bir şey değil. Önce COM teknolojisini tasarlamışlar sonra aslında onun bir ileri basamağı olarak düşünülen Java\.NET teknolojilerini üretmişler. Bu teknolojilerin detayları her ne kadar konumuz olmasa da aklımızda tutmamız gereken şey çalışan 2 kodu birbiri ile uyum içinde çalıştırmanın zorluğu. Hele ki yalnızca tek taraflı bir değişimin diğer taraftaki kodu nasıl etkilediği ve sistemi çökerttiği... Buffer overflow atakları da stackteki IP(Instruction Pointer) üzerine ekstra veri yazılmasından kaynaklanmaz mı zaten... Her şey birbiriyle uyumlu olmak zorunda ne kadar veri geleceğini sistem bilmek zorunda ki ona göre yer ayırsın. Bunu tek taraflı değiştiremezsin. Değiştirirsen bedelini ödersin. Ki bugüne kadar defalarca ödemişler…

"Eee, bunun evrimle ne alakası var?"

Evren bir koddan ibarettir, daha doğrusu milyarlarca, trilyonlarca... kodun birleşmesinden. Canlı, cansız var olan bütün mekanizmalar hem kendi içinde hem de birbiri ile uyum içindedir. İşte problem burada, sen uyum içindeki bir kodu tek taraflı değiştiremezsin. Hemen bir örnek verelim: Hava bir koddur havadaki oksijen oranı da bir koddur bunu alıp kullanacak vücudumuz da bir koddur. Vücudumuz belirlenmiş bir oranda oksijenin varlığına kullanabilecek şekilde tasarlanmıştır. Bundan azını fazlasını göndermenin bedeli sistemin çökmesidir.

Yani canlılık değişime açık değildir. Doğada ise değişim yoktur. Daha doğrusu olmamalıdır. Zaten devamlı olarak değişime engel olmaya çalışmaz mıyız? Ozonu yeniden dikmeye çalışmamız, buzulları eritmeme çabamız…

"Ama yapraklar düşüyor vs. her şey değişim içinde?"

Hayır, hiçbir şey değişim içinde değil her şey bir döngü içinde. Buna değişim demek yanlıştır. Bu periyodik değişimdir yani döngüdür.

Aslında bilimsel bilgi de içinde periyodikliği barındırdığı zaman anlamlıdır. Çünkü o zaman matematiksel olarak ifade edilebilir hale gelmiş olmaktadır. Her şey döner ama her şey. Sinüs döner, elektronlar döner, gezegenler döner.

Matematikte, Karmaşık Analizin en önemli konusu: Fourier Dönüşümü. Fourier serisine açma yalnızca periyodik fonksiyonlar için geçerlidir periyodik olmayan fonksiyonları ne yaparız? Onları da sonsuzda periyodikmiş gibi düşünür, tabi bazı özel şartlar altında, ondan sonra Fourier dönüşümünü alırız. Yani fonksiyonlar mühendislik matematiği için periyodik olmak zorundadır. Periyodik değilse onu sonsuzda periyodik olarak düşünmelisin.

Bir şey periyodik olduğu zaman matematiksel anlamda değerlidir. Değişe değişe bu hale geldiğimizi iddia eden evrimi bu hali ile bilimsel ve matematiksel bir zemine oturtmak oldukça zordur. Bilimsel zemine oturtamazsın çünkü gözlem, deney yapamazsın. Matematiksel zemine oturtamazsın çünkü ortada bir döngü yok. Üstelik burada birbirinden bağımsız cevaplanması gereken 2 farklı sorun var evrim açısından. 

Birincisi, türler arası geçişi ispatlamak. Elbette doğada, bir tür içinde güçlülerin hayatta kalma olasılığının zayıf olana nazaran çok daha fazla olduğu doğal seleksiyon mekanizması da vardır, büyük bir kısmı zararlı olmak şartı ile mutasyon da vardır. Ama bunların hiçbirisi türler arası geçişin olduğunu ispat edemez.

İkincisi ise, eğer evrimi ateizm için delil olarak sunacaksan, türler arası geçişin "tesadüfen" olduğunu ispatlamak. Bu ise birinci problemden çok daha farklı bir sorundur. Çünkü türler arası geçişin ispatı yapılsa bile bir insan buna yine yaratılış diyebilir. Tesadüf demek tamamen bireysel yorumdur. Ve ispatlaması türler arası ispatlamaktan bile daha zordur. Çünkü tesadüfen olmuş demektesin. Tesadüfün mekanizmasını nasıl ortaya koyacaksın? Ucu o kadar açık ki. Ama eğer evrim fikrini ateizm ile bağdaştıracaksan bunu yapmak zorundasın.

Elbette yaratılışı da ne bilimsel ne de matematiksel bir zemine oturtmazsın çünkü ne deney ne de gözlem yapabilirsin. Çünkü yaratılış tek seferde olağanüstü bir şekilde olmuştur. Ama türler arası geçişin ve bunun tesadüfen gerçekleştiğinin ispat edilemiyor olması yaratılış fikrini delillendirmiş olur. Bunu da görmek gerekiyor.

Toparlarsak...

Evrim bağlamında türler arası geçiş şu an için bir iddiadan öte geçememektedir. Bunun tesadüfen olduğu iddiası ise bu konuda bağımsız apayrı bir iddiadır. Çünkü dediğimiz gibi, evrim ve yaratılış birbirine zıt olmak zorunda değildir. Çünkü eğer evrim fikri altında tesadüf denilen her şeye yaratılış dersen, evrim ile yaratıldığımızı iddia bile edebilirsin. Evrim fikri buna da izin verir. Evrimi ateizm ile bağdaştırmak ise başlı başına başka bir meseledir. O zaman şunu diyebiliriz ki: Eğer ateizm her şeyiyle bilimsel bir disipline oturmuş olsaydı buna izin vermemesi gerekirdi. Ama maalesef öyle olmamaktadır. Onun için buradan, ateizm iddiasının bilimsel çalışmaların sonucu değil, aslında din adına hareket etme iddiasındaki kötü niyetli kimi insanların yaptıklarına tepki olarak çıktığı sonucuna rahatlıkla ulaşabiliriz.