Dennis Ritchie: Makinenin Dilini İnsanlığın Ortak Diline Çeviren Adam
Bir Programlama Dilinden Daha Fazlası
Dennis Ritchie'nin adını bugün çoğu insan bilmez.
Oysa şu anda bu yazıyı okuduğunuz telefonun, bilgisayarın, sunucunun, işletim sisteminin ve sayısız dijital cihazın arkasında onun bıraktığı izin parçalarını bulabilirsiniz.
Belki kullandığınız cihaz doğrudan C ile yazılmadı.
Ama kullandığınız teknolojinin bir yerinde C'nin, Unix'in veya onların mirasından doğan fikirlerin bulunma ihtimali oldukça yüksek.
Ritchie, Ken Thompson ile birlikte Unix'in geliştirilmesinde ve C programlama dilinin ortaya çıkmasında belirleyici rol oynadı. C, 1970'lerin başında Unix için bir sistem programlama dili olarak gelişti. 1973'te Unix çekirdeğinin büyük ölçüde C ile yeniden yazılması ise işletim sisteminin farklı donanımlara taşınabilmesinin önünü açtı.
Bugün bunu sıradan bir teknik ayrıntı gibi okuyabiliriz.
Oysa değildi.
Çünkü o dönemde yazılım büyük ölçüde belirli makinelerin içine sıkışmış durumdaydı. Bir makine için yazılan programın başka bir makinede çalışması çoğu zaman yeniden yazılmasını gerektiriyordu.
C bu ilişkinin arasına bir katman koydu.
İnsan ile makine arasında.
Makinenin doğrudan dilini konuşmak zorunda kalmadan, yine de makineye yeterince yakın kalabilen bir dil.
Belki de Ritchie'nin asıl mirası burada yatıyor.
Makinenin gücünü insana biraz daha yaklaştırmak.
Ve bu hikâyeyi yalnızca teknik bir başarı olarak okumak bana artık yeterli gelmiyor.
Çünkü Dennis Ritchie'nin yaptığı şey, yalnızca bir programlama dili tasarlamak değildi.
Bilginin nasıl üretileceği, nasıl paylaşılacağı ve bir makinenin ne kadar insana ait olabileceği konusunda, kendisinden sonra gelecek dünyayı da etkiledi.
Önce Bir Düzeltme Yapmak Gerekiyor
Dennis Ritchie hakkında yazarken kolayca yapılabilecek bir hata var.
Onu bugünkü anlamıyla "açık kaynak hareketinin öncüsü" veya "yazılım patentlerine karşı çıkan bir aktivist" gibi anlatmak.
Bunu yapmayacağım.
Çünkü elimizde Ritchie'nin böyle bir siyasi programı olduğuna dair yeterli tarihsel kanıt yok.
Unix de başlangıcından itibaren bugünkü anlamıyla özgür ve açık kaynak bir yazılım değildi. İlk dönemlerinde kaynak kodunun akademik çevrelere ve çeşitli kurumlara dağıtılması, dönemin Bell Labs ve AT&T koşulları içinde gerçekleşen daha karmaşık bir tarihsel sürecin parçasıydı. Daha sonraki yıllarda Unix'in farklı lisanslama ve ticarileştirme biçimleri ortaya çıktı.
Dolayısıyla Ritchie'nin omuzlarına bugünün "açık kaynak" düşüncesini olduğu gibi yüklemek doğru olmaz.
Ama burada daha ilginç bir şey var.
Bir insanın kişisel olarak savunmadığı veya hiç formüle etmediği bir düşüncenin, yaptığı işin tarihsel sonuçlarından biri olması mümkündür.
Ritchie'nin yaptığı tam olarak böyle bir kapı açtı.
Unix ve C, daha sonra akademisyenlerin, öğrencilerin, araştırmacıların ve bağımsız geliştiricilerin oluşturduğu devasa bir teknik kültürün temel taşlarından biri hâline geldi.
Bu kültürün içinden BSD, Linux ve daha sonra bugün "açık kaynak" dediğimiz çok daha geniş dünya çıktı.
Burada Ritchie'yi bugünün siyasi kavramlarıyla yeniden etiketlemek yerine, daha basit bir soru sormayı tercih ediyorum:
Bir insanın ürettiği teknolojinin kendisinden çok daha büyük bir ortak kültür yaratması bize ne anlatıyor?
Makineye Yakın, İnsana Uzak Değil
C'nin en ilginç taraflarından biri, sadeliği ile makineye yakınlığı arasındaki dengedir.
Ritchie'nin kendi tarihçesinde de anlattığı gibi C, küçük bir programlama ortamının ihtiyaçlarından doğdu. B dilinin üzerine veri türleri ve yeni sözdizimi özellikleri eklenerek gelişti ve 1970'lerin başında Unix ile birlikte şekillendi.
C ne tamamen insanın soyut dünyasında yaşayan bir dil oldu ne de makinenin çıplak diline teslim oldu.
İkisinin arasında durdu.
Bu yüzden C ile yazılan bir program, donanımın nasıl çalıştığını anlayan bir insan için hâlâ oldukça doğrudan bir şey ifade edebilir.
Aynı zamanda uygun bir derleyiciyle farklı makinelerde çalışabilir.
Bu basit görünen özellik, bilgisayar tarihinin yönünü değiştirdi.
Çünkü yazılımı donanımdan bir miktar bağımsızlaştırdı.
Bir anlamda bilgi, makinenin kendisinden ayrılmaya başladı.
Ve bence burada felsefi bir taraf var.
Bilgi bir makinenin içine hapsedildiğinde, o makineye sahip olan kişi aynı zamanda o bilginin kullanım alanını da belirleyebilir.
Ama bilgi farklı makinelerde çalışabilecek bir biçime dönüştüğünde, onun dolaşım alanı genişler.
İşte C'nin tarihsel etkisini yalnızca "iyi bir programlama dili" olarak görmememin nedeni bu.
O, yazılımın belirli donanımlara bağımlılığını azaltan bir araç oldu.
Ve yazılımın dolaşımını kolaylaştıran her araç, ister istemez bilginin dolaşımını da kolaylaştırır.
Unix: Bir İşletim Sisteminden Fazlası
Dennis Ritchie'nin hikâyesini C'den ayırmak mümkün değil.
Ama C'yi Unix'ten ayırmak da mümkün değil.
Unix, 1969 yılında Bell Labs'ta Ken Thompson ve arkadaşları tarafından geliştirilmeye başlandı. Ritchie kısa süre içinde projeye katıldı ve işletim sisteminin gelişiminde merkezi bir rol üstlendi.
Unix'in belki de en önemli özelliklerinden biri, küçük ve belirli işleri yapan araçların bir araya getirilerek daha karmaşık işlemler gerçekleştirebilmesiydi.
Her şeyi yapan devasa bir program yerine, farklı işleri yapan küçük programlar.
Birbirleriyle konuşabilen araçlar.
Birbirlerinin yerine geçebilen parçalar.
Bu yaklaşım bana yalnızca yazılım mimarisini değil, bilgiye bakış biçimini de düşündürüyor.
Çünkü büyük ve kapalı bir sistemde kullanıcı çoğu zaman yalnızca tüketicidir.
Sistemin nasıl çalıştığını bilmek zorunda değildir.
Hatta bilmesi çoğu zaman istenmez.
Unix kültürünün önemli bir kısmında ise tam tersine, sistemin parçalarını anlamak, değiştirmek ve yeniden birleştirmek teşvik edildi.
Bu, daha sonra bilgisayar kültüründe çok güçlü bir düşünceye dönüşecekti:
Bir sistemi yalnızca kullanmak zorunda değilsiniz. Onu anlayabilir, değiştirebilir ve yeniden kurabilirsiniz.
Bunun bugün bana özgürlük fikrini çağrıştırması kaçınılmaz.
Ama yine aynı yerde duruyorum.
Bu, Dennis Ritchie'nin kişisel politik manifestosu değildi.
Benim bugün onun yaptığı işin sonuçlarına bakarak çıkardığım düşünsel bir bağlantı.
Bilginin Mülkiyeti Üzerine
Bugün yazılım dünyasında çok büyük bir ekonomik mücadele yaşanıyor.
Bir tarafta kapalı sistemler, patentler, lisanslar, özel algoritmalar ve dev teknoloji şirketleri var.
Diğer tarafta açık kaynak, özgür yazılım, ortak geliştirme ve bilginin paylaşılması fikri bulunuyor.
Bu iki dünya arasındaki gerilim yalnızca teknik bir mesele değil.
Aslında çok eski bir sorunun dijital hâli:
Bilgi kimin malıdır?
Bir insanın bulduğu matematiksel yöntem mülk olabilir mi?
Bir algoritmanın kendisi ne kadar sahiplenilebilir?
Bir programcı tarafından yazılan kod, başkasının üzerinde sonsuza kadar hak iddia edebileceği bir mülk müdür?
Ve daha önemlisi:
Bir teknolojiyi geliştirmek için insanlığın ortak bilgi birikiminden yararlanıyorsak, ortaya çıkan bilginin tamamını tekrar özel bir mülkiyete dönüştürmek ne kadar doğrudur?
Ben bu soruların kesin cevaplarını vermeye çalışmıyorum.
Ama Dennis Ritchie'nin hikâyesi bana bu soruları sormak için çok iyi bir yer açıyor.
Çünkü C'nin kendisi daha sonra dünyanın dört bir yanındaki geliştiricilerin üzerinde yeni şeyler inşa ettiği ortak bir teknik mirasa dönüştü.
Bugün Linux çekirdeğinden işletim sistemlerine, gömülü sistemlerden derleyicilere kadar sayısız teknolojinin arkasında C'nin izi bulunuyor.
Bir kişinin yaptığı iş, milyonlarca başka insanın yaptığı işin başlangıç noktası hâline geldi.
Belki de teknolojinin en güzel taraflarından biri bu.
Bir fikir, sahibinden ayrıldıktan sonra insanlığın ortak hafızasının parçası olabilir.
Ritchie'nin Sessiz Devrimi
Dennis Ritchie hiçbir zaman teknoloji dünyasının en gösterişli figürlerinden biri olmadı.
Steve Jobs gibi sahneye çıkıp dünyaya gelecekten söz etmedi.
Bill Gates gibi kişisel bir teknoloji imparatorluğu kurmadı.
Bilgisayar tarihinin popüler anlatılarında çoğu zaman adı, yaptığı işin büyüklüğünden çok daha küçük bir yerde kaldı.
Belki bunun nedeni yaptığı işin doğasıydı.
Ritchie bir ürün satmadı.
Bir sosyal medya platformu kurmadı.
Bir tüketici markası yaratmadı.
Bir bilgisayarın dış görünüşünü değiştirmedi.
O, bilgisayarların içindeki dili değiştirdi.
Ve bazen tarihin en büyük değişimleri tam olarak böyle gerçekleşiyor.
Kimse manşet atmıyor.
Kimse alkışlamıyor.
Bir laboratuvarda birkaç insan bir problemi çözmeye çalışıyor.
Sonra o çözüm, yıllar içerisinde dünyanın üzerine yayılıyor.
Bir gün fark ediyorsunuz ki milyarlarca insanın kullandığı sistemlerin altında o küçük laboratuvarın kararları yatıyor.
Ritchie'nin mirası bana bunu hatırlatıyor:
Bazen bir devrim, kendisini devrim olarak ilan etmez.
Patentler, Tekeller ve Benim Pusulam
Burada kendi bulunduğum yeri biraz daha açık söylemek istiyorum.
Ben bir yazılım geliştiricisiyim.
Her gün başkalarının yazdığı kütüphaneleri, araçları, işletim sistemlerini ve programlama dillerini kullanıyorum.
Bir başkasının yıllar önce yazdığı kod, benim bugün bir şey üretmemi mümkün kılıyor.
Ben de yarın yazdığım şeyin başka birinin işine yaramasını istiyorum.
Bu yüzden yazılımın tamamen kapalı kutulara dönüşmesi fikri bana hep rahatsız edici geldi.
Çünkü yazılımın doğasında tuhaf bir özellik var:
Bir fikri paylaşmak, onu tüketmek anlamına gelmiyor.
Bir matematik formülünü başkasına verdiğinizde sizdeki formül kaybolmuyor.
Bir programlama tekniğini öğrettiğinizde onu kaybetmiyorsunuz.
Bir algoritmayı anlattığınızda eliniz boşalmıyor.
Bilgi, maddi mallardan farklı olarak paylaşıldıkça azalmak zorunda değil.
Hatta bazen tam tersine, paylaşıldıkça büyüyor.
Benim özgür yazılım ve açık kaynak kültüründe değerli bulduğum şey de tam olarak bu.
İnsanların aynı şeyi tekrar tekrar sıfırdan üretmek yerine, birbirlerinin üzerine inşa edebilmesi.
Bu bana ekonomik bir sistemden çok daha önce bir insanlık davranışı gibi geliyor.
Ve belki de bu yüzden, Dennis Ritchie'nin hikâyesinde kendi dünya görüşümle bir bağ kuruyorum.
Ritchie'nin benimle aynı politik düşüncelere sahip olduğunu iddia ederek değil.
Onun yaptığı işin, benim özgür bilgiye bakışımı besleyen bir dünyanın kurulmasına katkıda bulunduğunu kabul ederek.
Bir Kod Satırının Ardındaki İnsan
Ritchie'nin hayatına bakarken bir başka şey daha dikkatimi çekiyor.
Bilgisayar tarihini çoğu zaman makinelerin tarihi gibi anlatıyoruz.
Transistörler.
Çipler.
İşlemciler.
İşletim sistemleri.
Programlama dilleri.
Fakat bunların tamamının arkasında insan var.
Merak eden, hata yapan, tekrar deneyen, bazen başarısız olan insanlar.
Dennis Ritchie de bunlardan biriydi.
Onu yalnızca "C'nin yaratıcısı" olarak hatırlamak, insanı yaptığı işe indirgemek olur.
Ada Lovelace'de karşı çıktığım şey tam da buydu.
Alan Turing'de de.
John von Neumann'da da.
Bir bilim insanını yaptığı çalışmadan ibaret görmek kolaydır.
Çünkü yaptığı çalışma ölçülebilir.
İnsanın kendisi ise çok daha karmaşıktır.
Ritchie'nin hayatının son dönemlerinde yaşadığı sağlık sorunları ve 2011 yılında hayatını kaybetmesi, bütün bu teknik mirasın arkasında sonunda ölümlü bir insan bulunduğunu yeniden hatırlatıyor.
Bir insan ölüyor.
Ama düşüncesinin üzerine inşa edilen sistemler yaşamaya devam ediyor.
Belki insanın teknoloji karşısındaki en tuhaf paradokslarından biri de bu.
Kendimiz geçiciyiz; ürettiğimiz bazı fikirler ise bizden çok daha uzun yaşayabiliyor.
C'den Bugüne Uzanan Yol
Bugün yapay zekâ modellerinin çalıştığı devasa veri merkezlerine baktığımızda, Dennis Ritchie'nin dünyası ile bizim dünyamız arasında uçurum varmış gibi görünüyor.
Bir tarafta 1970'lerin Unix makineleri.
Diğer tarafta trilyonlarca parametreyle çalışan yapay zekâ modelleri.
Ama aralarında görünmeyen bir zincir var.
Unix'in tasarım felsefesi.
C'nin taşınabilirliği.
C ile yazılmış işletim sistemleri.
C'den etkilenen diller.
Bu dillerle yazılmış yazılımlar.
Ve bütün bunların üzerine inşa edilen modern bilgisayar dünyası.
Bugün yapay zekânın çalıştığı donanımlara kadar uzanan bu zincirin her halkasında Ritchie'nin mirasının izlerini görmek mümkün.
Bu nedenle Ritchie'nin hikâyesi benim için Ada Lovelace'ın hikâyesinden de farklı bir şekilde aynı soruya geri dönüyor:
Makineyi yaptığımızda aslında neyi değiştiriyoruz?
Yalnızca makineyi mi?
Yoksa kendimizi de mi?
Belki de Asıl Miras C Değil
Ritchie'nin en büyük mirasının C olduğunu söylemek kolay.
Ve teknik olarak bundan daha doğru bir şey söylemek de zor.
Ama ben onun mirasını yalnızca bir programlama diliyle sınırlamak istemiyorum.
Çünkü C'nin kendisinden daha büyük bir şey oldu.
İnsanlar C'nin üzerine yeni diller yazdı.
Yeni işletim sistemleri geliştirdi.
Yeni donanımlar tasarladı.
Yeni fikirler üretti.
Ve sonunda Ritchie'nin kendisinin bile öngöremeyeceği kadar büyük bir teknoloji ekosistemi ortaya çıktı.
Bir insan bir araç üretmişti.
İnsanlık o aracın üzerine yeni bir dünya inşa etti.
Belki teknolojinin gerçek gücü tam da burada.
İyi bir teknoloji, yalnızca kendisini kullandırmaz.
Başkasının da yeni bir şey yapabilmesine izin verir.
Ve benim için özgürlük fikrinin teknoloji dünyasındaki en güzel karşılıklarından biri de bu.
Son Söz
Ada Lovelace bize makinenin yalnızca hesap yapmayabileceğini düşündürdü.
Alan Turing, makinenin düşünmesinin ne anlama gelebileceğini sordu.
John von Neumann, hesaplamanın ve makinenin gücünü bambaşka bir ölçeğe taşıdı.
Dennis Ritchie ise makinenin insanla konuşabileceği dili inşa edenlerden biri oldu.
Ve bu yolculuk henüz bitmedi.
Bugün kullandığımız yapay zekâlar, bütün bu geçmişin üzerine kuruluyor.
Biz onları "yapay zekâ" olarak adlandırıyoruz.
Ama onların altında onlarca yıllık matematik, elektronik, bilgisayar bilimi ve programlama kültürü yatıyor.
Bir anlamda bugün yapay zekâ ile konuşurken, geçmişte yaşamış binlerce insanın düşüncelerinin üzerine kurulmuş bir makineyle konuşuyoruz.
Dennis Ritchie de o zincirin en önemli halkalarından biri.
Onun hikâyesinden benim çıkardığım ders ise teknik olmaktan biraz daha farklı:
Bilgi, yalnızca sahip olduğumuz bir şey değil; üzerine yeni şeyler inşa edebildiğimiz bir ortak miras.
Onu tamamen kapatırsak, yalnızca başkalarının erişimini engellemeyiz.
Kendisinden sonra doğabilecek fikirlerin de önünü keseriz.
Belki bu yüzden teknolojinin geleceğini tartışırken yalnızca makinelerin ne kadar güçlü olacağını değil, insanların o güce ne kadar erişebileceğini de konuşmalıyız.
Çünkü geleceğin en güçlü bilgisayarına sahip olmak kadar önemli bir başka şey var:
O bilgisayarla ne yapabileceğini başkalarının da öğrenebilmesi.
Dennis Ritchie'nin bize bıraktığı mirasa bugün buradan bakıyorum.
Bir programlama dilinden.
Bir işletim sisteminden.
Bir bilgisayar tarihinden.
Ama en sonunda yine insana dönüyorum.
Çünkü makineleri biz yapıyoruz.
Ve onları ne kadar özgür bırakacağımızı da yine biz belirliyoruz.
Bülent Barut
Kaynakça
— Dennis M. Ritchie — The Development of the C Language, Bell Labs.
— Dennis M. Ritchie — The Evolution of the Unix Time-sharing System, Bell Laboratories.
— Brian W. Kernighan & Dennis M. Ritchie — The C Programming Language, Prentice Hall.
— Brian W. Kernighan — UNIX: A History and a Memoir, Independently published.
— Eric S. Raymond — The Cathedral and the Bazaar, O'Reilly Media.
— Free Software Foundation — GNU ve özgür yazılım hareketinin tarihçesi.
— Computer History Museum — Dennis Ritchie ve Unix/C tarihi üzerine arşiv materyalleri.
— Bell Labs — Unix ve C programlama dili üzerine tarihsel arşiv.