Hayatımızda büyük pratik önem taşıyan bilgisayar, aslında felsefi bir sorunu çözmek için icat edildi.
Bilgisayar çok pratik bir alet olarak düşünülüyor, fakat “pratik insanlar” bilgisayarın önemini kavramakta hep zorlandılar. Kapitalist dünyada teori aşağılanıyor, pratik yüceltiliyor. “Sadece bir teori” lafı hep dilimizde; sanki teori hayatımızda anlamsız bir hobi gibi.
Bilgisayarın icadı arkasında yatan felsefi sorunu anlamak için biraz da olsa matematik tarihine bakmamız gerek.
17. yüzyıl Alman matematikçi (ve hesap makinesinin mucidi) Gottfried Leibniz’in rüyası, bütün insanlığın bilgisini sembolik hale getirmekti. Yani bugün bildiğimiz bilgisayar kayıtları ya da matematiksel bir formül gibi. Onun amacı, her bilimsel tartışmayı hesap makinesi kullanarak “kimin haklı olduğunu görmek için vakit kaybetmeden hesaplamak”tı. Leibniz, tartışılmaz bir mutlak doğru peşindeydi.
1900 yılında Paris’te bir kongrede Alman matematikçi David Hilbert, “yeni yüzyılda çözülecek 23 önemli matematiksel sorun”u ortaya koydu.
Bu 23 sorunun ikincisi “aritmetiğin çelişkisizliğini ispat etmek”. Yani sorulan soru şu: Matematiğin doğru olup olmadığını nasıl bilebiliriz? Bu aslında felsefi bir soruydu.
Hilbert, Leibniz’in rüyasını paylaşıyordu; matematiği tamamen sembolik hale getirmek ve bütün teoremleri belli mantık kuralları uygulayarak sonlu yöntemlerle sonlu bir aksiyom (prensip) setinden çıkartmak. Bu yaklaşımın zor noktası şuydu: Alıştığımız mantık yöntemlerini kullanarak bir teoremi ve aynı zamanda onun tersini ispat edebilirsek hiçbir şeyin anlamı kalmıyor.
Böyle bir çelişkinin nasıl bir şey olabileceğini anlayabilmek için şöyle bir şey düşünelim: “Mahallede kendilerini tıraş etmeyen erkekler, (erkek) berber tarafından tıraş ediliyor.” Ardından “berberi kim tıraş eder” sorusuna cevap vermeye çalışalım. Eğer kendisini tıraş etmiyorsa, berber (yani kendisi) tarafından tıraş ediliyor. Yani aynı anda “berber, berberi tıraş ediyor” ve “berber, berberi tıraş etmiyor” önermelerinin ikisi de doğru oluyor. Matematiksel bir sistemde böyle bir önerme ilginç bir bilmece değil, bir felaket olur.
Sembolik halde ifade edilen benzer bir çelişki, Gottlob Frege’nin aksiyomatik sistemini çökertti. Frege’nin sistemindeki çelişkiyi bulan Bertrand Russell, çelişkisiz bir sistem kurmaya çalıştı. Hilbert’in sorusu böyle çözümlerin başarılı olup olmadığına ilişkindi. Aritmetik için çeşitli aksiyomatik sistemler kurulmuştu. Hilbert böyle aksiyomatik sistemlerin çelişkisiz olduklarını gösteren bir ispat istedi.
1928 yılında Hilbert, matematiğin temelleriyle ilgili bir sorun daha ortaya koydu. Aksiyomatik bir matematiksel sistemde yazılabilen bir cümlenin ispatının olup olmadığını tespit etmek için efektif bir yöntem talep etti. Bu “karar sorunu” ya da Entscheidungs problem “efektif yöntem”in tarifini açık bıraktı.
1930’da Kurt Gödel, bildiğimiz tamsayı aritmetiği içeren bir aksiyomatik sistemde doğru ya da yanlış olduğu ispat edilemeyen cümleler olacağını ispat etti. İkinci bir teoremle sistemin çelişkisizliğinin sistem içinde ispat edilemeyeceğini de ispat etti. Yani Hilbert’in sorusuna “böyle bir ispat olamaz” diye cevap verdi.
Entscheidungsproblem daha da önem kazandı. Onun çözümü varsa en azından ispat edilemeyen cümleleri bilip boşu boşuna uğraşmaktan kurtulurduk. Matematiğin son çaresi bu sorunu çözmek.
Princeton’dan Alonzo Church, Cambridge’ten Alan Turing başta olmak üzere bir dizi matematikçi bu “karar” sorunuyla uğraşmaya başladı. İlk işleri “efektif yöntem” için iyi bir tanım önermekti. Church ve Turing farklı birer öneride bulundu. Church’un önerisi, modern fonksiyonel programlama dillerine benzeyen Lambda Calculus, Turing’in önerisi ise modern bir bilgisayara benzeyen kavramsal bir makine idi.
Kendi “efektif yöntemler”ini referans alarak hem Turing hem de Church, Hilbert’in sorduğu soruya olumsuz bir cevap verdi. Böyle bir karar verilemeyeceğini ispat ettiler. Church’un makalesi daha önce yayınlandı. Geç kalmak 24 yaşındaki Turing için bu büyük bir hayal kırıklığı oldu. Turing’in doktora tezi danışmanı hemen Church’a yazıp durumu anlattı. Church, Turing’i Princeton’a davet etti. Rekabet etmek yerine Church ve Turing beraber çalıştılar. Turing, Church’un Lambda Calculus’ü için bir dizi önemli sonuç çıkarttı. Church, Turing’in makinesini “Turing Machine” olarak vaftiz etti. Turing, Lambda Calculus için “daha zarif ve düzgün bir çözüm” yazdı. Church de Turing’in makinesi için “daha ikna edici” dedi.
Daha da önemlisi, her iki “efektif yöntem”in de aynı hesaplama gücüne sahip olduğunu ispat ettiler. Yani Lambda Calculus ile yapılabilen ve yapılamayan hesapların Turing Machine’inkilerle aynı oluğunu ispat ettiler.
Bu ispatlar sırasında Turing iki önemli adım atmak zorunda kaldı. İlk önerdiği makine, hesap yapmak için sonsuz bir hafıza üzerinde çalışan, bir çeşit özel tasarımlı sonlu makine idi. Entscheidungsproblem ispatını yapmak için “Evrensel Makine”yi icat etti. Evrensel Makine herhangi bir sonlu makine tarifini hafızasından okuyup o makinenin yaptığını yapabilen bir makineydi. Bu da programlanabilen bir bilgisayar oldu. Lambda Calculus ve Turing Machine’in eşitliğini ispat etmek için Turing, makinesi için Lambda Calculus cümlelerini değerlendiren bir program yazdı; yani çok yaygın kullanılan “interpreter” (yorumlayıcı) uygulamasının ilk örneğini.
Bu iki matematikçi ortaya “Church-Turing Tezi”ni çıkardı. Bu bir “teorem" değil; bir "manifesto” idi. Manifestonun iddiası, “hesaplanabilirlik” kavramının Lambda Calculus ve Turing Machine tarafından tarif edildiğidir.
Ortada henüz bir bilgisayar yokken Church ve Turing, felsefi bir sorunu çözmek için hem bilgisayarın kendisini hem de programlama dilini geliştirdiler.
İkinci Dünya Savaşı başladığında savaş yüzünden bilgisayar alanındaki çalışmalara ara verildi. Fakat savaşın ihtiyaçlarının yol açtığı öncelikler bilgisayarın yaratılmasında kullanılacak teknolojinin geliştirilmesi için önemli adımlar atılmasına yol açtı.
ABD’de savaşta kullanılan toplar (ve atom bombası) hesaplarını yapmak için Harvard Mark 1 isimli büyük elektro-mekanik bir hesap makinesi yapıldı. İngiltere’de şifre kırma işleri yapmak üzere Turing’in de yer aldığı çok gizli bir projede Colossus gibi bir dizi özel elektronik hızlı hesap makinesi yapıldı.
İkinci Dünya Savaşı’ndan hemen sonra hem ABD’de hem İngiltere’de matematikçiler, elektronik bilgisayar yapmak için kolları sıvadı. 1945 yılında Turing, ilk elektronik bilgisayarın inşası için ayrıntılı bir belge hazırladı. ABD’de matematikçi John von Neumann da benzer bir öneri sundu.
Turing ve Von Neumann’ın önerdiği makineler Turing’in Evrensel Makinesi’ne benziyordu. Bu evrensel (programlanabilirlik) niteliği, bilgisayarların hayatımızın kopmaz bir parçası olmasının en önemli faktörüdür; aynı zamanda Entscheidungsproblem’in çözümünün gerektirdiği bir niteliktir.
İngiltere’de işler hızlı ilerledi. Manchester Üniversitesi’nde Turing’in yer aldığı bir çalışmada önce dünyanın ilk programlanabilir elektronik bilgisayarı “Baby”, ardından “Mark 1” yapılarak çalıştırıldı. Cambridge Üniversitesi Matematik Laboratuvarı’nda Von Neumann’ın çalışmasından ilham alan EDSAC Baby Haziran 1948’de ilk programını yürüttü. 1949 Mayıs ve Haziran aylarında hem Mark 1 hem EDSAC çalışmaya başladı. Mark 1, Ferranti şirketi tarafından üretilen dünyadaki ilk ticari elektronik bilgisayar oldu.
ABD’de işler daha yavaş ilerleyecek ve pratik, teoriye engel olacaktı. 1946'da Eniac isimli Turing Makinesi’ne benzeyen, ama Turing’in evrensel niteliğini taşımayan bir elektronik makine çalışmaya başladı. Bu makineyi geliştirenler arasında yer alan Eckert ve Mauchley gerçek bilgisayar için adım atmaya hazırdılar. Ancak para ve politika engel oldu. Fikir mülkiyeti sorunları Eckert ve Mauchley’nin Pennsylvania Üniversitesi’nden ayrılmasını tetikledi. Kurdukları şirketin “komünist mühendis” çalıştırmakla suçlanması da bardağı taşıran son damla oldu. Hükümetten aldıkları ihaleleri kaybettiler. Ürettikleri Univac 1 isimli bilgisayar 1951 yılında, İngiltere’dekilerden çok daha sonra çalışmaya başladı.
Görece para ve politik engellerden daha özgür olan İngiltere’deki matematikçiler daha hızlı hareket edebildiler.
Toplumsal ve ticari ilişkiler bilgisayarın gelişmesine engel olmaya devam etti. Örneğin hem Von Neumann hem de Turing’in öngördüğü makinelerin onlu sistemle değil daha az devre gerektiren ikili sistemle çalışmasına rağmen, özellikle ABD’de 1950’lerde üretilen makinelerin neredeyse hepsi onlu sistem ya da onlu ikili sistem arasında bir uzlaşmayla çalıştılar. Bugüne kadar uzanan süreçte onlu sistem aritmetiği desteklenmeye devam ediyor. Bilgisayarınızdaki çip, “x86 mimarisi”ne sahipse (çoğu öyledir) çip içinde hala onlu sistemi destekleyen komutlar vardır. Ancak ABD’deki UC Berkeley Üniversitesi’nde icat edilen RISC mimarisiyle çalışan, ama İngiltere’de tasarlanan cep telefonunda bulunan ARM çipine gelindiğinde onlu sistemin yarattığı yükten kurtulduk.
Evrensel bir makine olduğu için aynı bilgisayar çipi çamaşır makinesinde, cep telefonunda, motorlu araçta, laptopta bulunabilir. Uygulamalar arasında fark eden tek şey çalıştırılan programdır.
Program ilginç bir metadır. Yazıldıktan sonra programın yeniden üretilmesinin maliyeti neredeyse sıfırdır. İster bir kopya olsun isterse milyarlarca; fark etmez. Bu, kapitalizmin doğasına aykırı bir durum. Program kopyalarının üretilmesine bakarsak bu süreçte “sermayenin organik bileşimi” sonsuz olur, çünkü değişken sermaye (emek) sıfırdır. Bu tekelleşmeye ve ilginç rekabet şekillerine yol açıyor. Örneğin dünyada fiilen iki önemli işletim sistemi var – Linux/Unix ailesi (Linux ve iOS) ve Microsoft Windows. Neredeyse bütün bilgisayarlar bu iki sistemden birini kullanıyor.
Windows tekeli, Karl Marx’ın öngördüğü gibi tekel sahibi için süper kar kaynağı oldu. Bill Gates dünyanın en zengin adamı. Microsoft ile rekabet etmek isteyen sermayeler, Microsoft’un tarifiyle “komünist”, kolektif bir çalışmayla geliştirilen Linux’vari çözümleri kullanmak zorunda kaldı.
Kapitalizm ve yazılım arasındaki gerilim devam ediyor. “Yazılım sorunu” fenomeni bir türlü çözülemiyor. Yazılım projelerinin en az %50’si başarısızlıkla sonuçlanıyor. İnanılmaz olan bu rakamı herkes kabul ediyor. Kapitalizmin dayattığı hiyerarşik iş ilişkileri iyi yazılım üretemiyor.
Tekellerin ürettiği işletim sistemi, ilişkisel veri tabanı, Office uygulamaları gibi büyük yazılımlarla ancak işbirliği içinde geliştirilen özgür yazılımlar rekabet edebiliyor.
Ve özgür yazılım dünyasının daha az hiyerarşik geliştirme modeli daha verimli oluyor. Şirketler bu düz geliştirme teknolojilerini yakalamaya çalışıyor. Örneğin Linux’un eşgüdümlü geliştirilmesi için sadece 12 sene önce Linux başyazarı Linus Torvalds tarafından yaratılan kod paylaşımı ve kontrol yazılımı “Git” bugün dünyadaki geliştiricilerin yüzde 70’i tarafından kullanılıyor. Microsoft da bütün işleri için “Git” kullanıyor. Hiçbir şirket böyle bir başarıya imza atamadı.
Bilgisayarın önemini ve yarattığı olasılıkları iş dünyası değil; bilimle, felsefeyle uğraşanlar keşfetti. Bilgisayarın gelişmesindeki ilk adımlar bu gerçeği açığa çıkarır. Bu evrensel, yüklenen program ile değişen makinenin yaygınlaşmasıyla büyük önem kazanan yazılımlarda başka bir sorun ortaya çıkıyor. Kapitalizmin dayattığı hiyerarşik iş ilişkileri yazılımın gelişmesine engel oluyor.
Temel bilimden çıkan bu evrensel makinenin getirdiği imkânları tam anlamıyla insanlığın yararına kullanabilmek için kâr değil, insanların ihtiyaçlarını ön plana çıkaran bir toplum gerekiyor.
Chris Stephenson Bilgi Üniversitesi'nde, Türkiye’nin ilk Bilgisayar Bilimleri Bölümü’nün kurucu başkanı oldu. Üniversite dışında binlerce lise ve ortaokul öğrencisinin yer aldığı bilgisayar eğitim projeleri yürüttü. Nesin Matematik Köyü’nün düzenli hocasıdır.
2017 Nisan ayında barış imzacısı olması gerekçe gösterilerek Yüksek Öğretim Kurulu tarafından çalışma izni iptal edilerek 18 senelik işine son verildi.
Çevirimiçi ve gayri resmi dersler vermeye devam ediyor.
Chris’in verdiği dersler aşağıdaki linklerden takip edilebilir.
http://vimeo.com/chrisstephenson
http://chrisstephenson.org?lang=tr
[1] Aksiyom, matematiksel bir sistemde bir varsayım. Örneğin Öklid’in “paralel çizgiler birleşmez” aksiyomu. Bunun “doğru” olup olmadığı matematikçileri ilgilendirmiyor. Örneğin Rus matematikçi Lobaçevski’nin geliştirdiği geometride bu aksiyom yok ve paralel çizgiler birleşebilir. Einstein’in genel rölativite teorisinde kullanılan geometri bu.
[2] Bu makale, ilk olarak Cumhuriyet Akademi'de yayımlanmıştır