GNU'ya Giden Yol
Richard Stallman, kendisini özgür yazılım dünyası için savaşmaya hazırlayan deneyimleri anlatıyor.
1983 yılı Nisan ayı civarında Stallman Mutlu Üstat - Bilgisayar Argo Sözlüğü'ne bir giriş yazdı. Girişte MIT YZ Laboratuvarı ve Lisp Makine Savaşları'ndaki deneyimlerinden bahsediyor. Ayrıca Emacs'ın nasıl geliştirildiğini de ayrıntılarıyla anlatıyor. Aşağıdaki metin, 1983 sonlarından, GNU'nun ilk duyurusundan kısa bir süre sonraki, güncellenmiş bir sürümdür.
İçindekiler
- Yapay Zekâ Laboratuvarı
- Laboratuvarın Başarılarından Bir Felsefe Ortaya Çıkıyor
- Yazıcınızın Adı Ne?
- Laboratuvar İhanete Uğradı
- Savaş Çıkıyor
- Şimdi Nereye Gideceğim?
Makine Odası Halk Dansları, Perşembe saat 20.00'de
Gelin Programlamanın Keyfini Kutlayın,
dünyanın En Zevkli Bilgisayarları ile.
Sadece beş kişi dans ediyorduk ama iyi vakit geçirdik.
Bilgisayarlarla ilk deneyimim, kamptaki danışmanlardan ödünç aldığım çeşitli dillerdeki kılavuzlarla oldu. Programlama kavramının büyüleyiciliğinden dolayı programları kağıt üzerine yazardım. Programların ne yapması gerektiğini düşünmek zorunda kaldım, çünkü programlamak istemem dışında bana bir amaç sağlayacak hiçbir şeyim yoktu. Çeşitli zamanlarda, çeşitli birleştirici dillerinde bir sayı tablosunun küplerini toplayan programlar yazdım.
Tanıştığım ilk gerçek bilgisayarlar, lisede öğrenciyken IBM New York Bilim Merkezi'nde bulunan IBM 360'lardı. Orada hızla dil tasarımına, işletim sistemlerine ve metin düzenleyicilerine ilgi duymaya başladım. Yazın Fortran'da sıkıcı bir sayısal analiz programı yazmak üzere işe alındım, birkaç hafta sonra bitirerek patronumu şaşırttım ve yazın geri kalanını APL'de bir metin düzenleyici yazarak geçirdim.
Ayrıca otoriteye gereken saygının eksikliğini de hızla gösterdim. Tüm merkezin binadaki IBM bilgisayarına erişimi engellenmişti ve Cambridge Bilim Merkezi'ne yavaş telefon bağlantılarını kullanmak zorunda kaldık. Bir gün bir IBM yöneticisi bize çeşitli IBM bilim merkezlerinin yapmakta olduğu çalışmaları anlatmak için geldi ve şunları söyledi: “Tabii ki burada yapılan önemli çalışmaları hepiniz biliyorsunuz.” Ona “Eğer işimiz bu kadar önemliyse, neden bu binadaki bilgisayarı artık kullanamıyoruz? diye sordum.” Toplantıdan sonra arkadaşlarım bana böyle bir şey söylemek istediklerini ancak misillemelerden korktuklarını söylediler! Neden? Sonuçta bana hiçbir şey olmadı. Gerçekte tehdit edilmediklerinde bile otoritenin önünde sinme alışkanlığını öğrenmiş görünüyorlar. Otorite için ne kadar hoş. Bu özel dersi öğrenmemeye karar verdim.
Yapay Zekâ Laboratuvarı
New York Bilim Merkezi tam da üniversiteye taşınacağım sırada kapandı. Cambridge Bilim Merkezi'nin benimle ilgilenmediğini fark ettim ki bu benim için bir şanstı çünkü bu beni çok daha üstün IBM dışı bilgisayarlara, özellikle de Digital'in PDP-10 ve PDP-11'ine karşı bilgisiz kalmaktan kurtardı. Artık tüm bilgisayarların eşit derecede eğlenceli olmadığı gerçeğinin farkına vardım, en eğlenceli olanları araştırdım ve onları MIT Yapay Zekâ (YZ) Laboratuvarı'nda buldum. Kendilerine “üstat” [çn. hacker, bkz. (1)] adını veren bir grup insan vardı. Özellikle bilgisayar üstatlığını kolaylaştırmak için tasarlanmış kendi zaman paylaşım sistemlerini, Uyumsuz Zaman Paylaşım Sistemi'ni (ITS) geliştirmişlerdi. ITS ve tüm yardımcı programlar (aynı zamanda HACTRN adı verilen “kabuk” olan hata ayıklama programı DDT dahil) tam da orada geliştiriliyor ve bakımları yapılıyordu. Sistemlerinin belgelerini bulmaya gelmiştim (ne kadar safım). Belgeleri olmadığı için herhangi bir belge olmadan ama onun yerine bir yaz işiyle ayrıldım. Bir mühendis/yönetici olan Russel Noftsker tarafından işe alınmıştım (işe bakın ki, daha sonra laboratuvarın yıkılmasında birincil rol oynayacak olan aynı adam). İş kalıcı hale geldi ve bugüne kadar sürüyor.
Yetkin olduğumu gösterdikten sonra, tüm işletim sistemi üzerinde tam yetkiye sahip oldum; çok az laboratuvarın ve hiçbir şirketin bana sağlayamayacağı bir öğrenme ve üretken olma fırsatına sahip oldum. Bilgisayar üstatlarının tutumu şuydu: “İyi bir iş çıkarabiliyorsan, kim olursan ol, devam et.”
YZ laboratuvarıyla karşılaştırdığımda, insanların başka yerlerde ne kadar az özgürlüğü olduğunu ve ne kadar çok gereksiz zorlukla karşılaştıklarını gördüm. IBM'de ve Harvard'da güç çok eşitsiz bir şekilde dağıtılmıştı. Birkaç kişi emir verir, geri kalanlar (eğer ben değilsem) emirleri alırdı. Profesörlerin kendi terminalleri vardı ve bunlar genellikle boştaydı, geri kalanımız ise çok az sayıda ortak terminal olduğu için çoğu zaman çalışamıyorduk. İnsanlar “Bunu nasıl yapacağınızı biliyor musunuz? Yararlı mı?” yerine “Bunu yapmaya yetkili misiniz?” diye soracaktır. Bir işin bilinmeyen bir dahi tarafından yapılmasındansa yetkili bir salak tarafından yapılmasını tercih ederler. MIT çok daha iyi olduğu için Harvard'ın bilgisayar laboratuvarına sık sık gitmeyi bıraktım. (Fizik alanında uzmanlaşıyordum; iyi bilgisayar üstatları arasında zorlayıcı programları hacklemek daha iyi bir eğitim olduğundan, doğal bir bilgisayar üstatının resmi bilgisayar dersleri almasına gerek yoktu).
YZ laboratuvarının tutumu farklıydı. Ofisindeki bir terminali kilitlemeye cesaret eden her profesörün kapısını kırarak açma geleneğimiz vardı. Açık bir kapıyla ve “Lütfen bu terminalin kilidini açarak zamanımızı boşa harcamamıza izin vermeyin.” yazan bir notla karşılaştılar. Terminaller kullanılmak için vardır ve boşta kalmaları halinde boşa giderler. Aynı tutumu bilgisayar zamanına da genişlettik. PDP-10 her saniyede 300.000 talimat yürütür. Hiçbir kullanıcı bunları istemezse, ne kadar süredir yapacak yararlı bir şeyin olmadığını saymaya harcar. Bunların herhangi biri tarafından herhangi bir yararlı amaç için kullanılması, israf edilmesinden daha iyidir. Bu nedenle, yolumuza çıkmadıkları sürece “turistlere”, “misafir kullanıcılara” izin verdik. Bilgisayar üstatı olup bize katılacak birkaç kişiyi arayarak onları sistem hakkında bilgi almaya teşvik ettik. Bu şekilde başlayan en az iki laboratuvar personeli ve bir MIT profesörü var.
Bilgisayar sistemlerinin kuruluşlar arasındaki tutum farklılıklarını yansıttığını buldum. Örneğin, çoğu bilgisayar sistemi, birkaç kişinin başkalarına ne yapıp ne yapamayacaklarını söylemesine olanak tanıyan güvenlik özellikleriyle tasarlanmıştır. Azınlığın gücü var ve kimse buna karşı çıkamaz. Biz üstatlar buna “faşizm” dedik; çünkü bu tür bilgisayar sistemleri gerçekten de totaliter polis devletlerinin toplumsal örgütlenmesine sahiptir.
Kullanıcıların güvenliği kapatmasını önlemek için sistem programlarının etrafına bir kale inşa edilmesi gerekmektedir. Duvarların içinden geçebilecek her yol korunmalı, yoksa ezilen kitleler gizlice içeri girecek. Bilgisayarın, duvarlardan gizlice geçmek ile insanların işlerini yapmak için sıklıkla yapmak zorunda kaldıkları diğer birçok faaliyetleri birbirinden ayırmasının imkansız olduğu ortaya çıkıyor. Güvenliği sağlamak iş yapmaktan daha önemli olduğundan bu tür faaliyetlerin tümü yasaktır. Sonuç olarak elitlerden birinden, yapmanıza izin verilmeyen bir şeyi sizin için yapmasını sık sık istemek zorunda kalırsınız. Eğer senden veya seninle ilgili herhangi bir şeyden hoşlanmıyorsa veya rüşvet istiyorsa, hiç çaba harcamadan işini olması gerekenden iki kat daha zorlaştırabilir.
Astların bir “truva atı”nı gizlice sokmaması için yalnızca elitlerin herhangi bir sistem programını değiştirmesine veya kurmasına izin verileceği kabul ediliyor. Güvenliği kapatmak için. (Bu kısıtlama “dosya koruması” kullanılarak uygulanır.) Sistem programları üzerinde çalışan bir turistin kendisini yararlı kılmaya ve bir bilgisayar üstatı olmaya başlaması anlamına geldiği YZ laboratuvarının tam tersi. Böylece daha az insan sistemin iyileştirilmesine katkıda bulunabilir ve kullanıcılar sistem eksikliklerine karşı kaderci ve umutsuz bir tutum benimserler. Bir kölenin zihinsel bakış açısını öğrenirler.
Digital Equipment gibi bir yerde, işi sistemi geliştirmek olan insanlar bile o kadar çok bürokrasi ile uğraşmak zorunda kalıyor ki, etkinlikleri ve moralleri yarıya düşüyor. Robert Townsend'in “Organizasyonu Yücelt” kitabında söylediği gibi; çoğu kurum çalışanlarının işlerini iyi yapmalarını engelleyerek morallerini bozuyor ve potansiyellerini boşa harcıyor. Güvenlik ve ayrıcalıklar bir bilgisayar sisteminde yapılma şeklidir.
Çoğu insan bu tür rejimleri kabul ediyor çünkü işlerin külfetli olmasını bekliyorlar ve işlerinden para dışında hiçbir şey beklemiyorlar. Ancak bilgisayar üstatları için bilgisayar üstatlığı “sadece” bir iş olmaktan çok daha fazlasıydı, bir yaşam biçimiydi. Orijinal bilgisayar üstatları, sistemin tasarımından güvenlik ve dosya korumasını çıkararak bu tür sorunlarla karşılaşmayacaklarından emin oldular. Sistemimizin kullanıcıları sorumlu davranmaları istenen özgür insanlardı. İktidar elitleri yerine, öğrenmeye güdülenmiş bilgi elitleri vardı. Bizim makinemizde hiç kimse diğerlerine hükmedemediği için laboratuvar bir anarşi gibi çalışıyordu. Bunun gözle görülür başarısı beni anarşizme dönüştürdü [1]. Çoğu insan için “anarşi” “savurgan, yıkıcı düzensizlik” anlamına gelir; ama benim gibi bir anarşist için bu, kurallara değil, hedeflere vurgu yapan ve tekdüzelik uğruna tekdüzelik konusunda ısrar etmeyen, gerektiğinde gönüllü örgütlenme anlamına gelir. Anarşizm, herkesin kıran kırana rekabetini savunmak değildir. Amerikan toplumu zaten herkesin kıran kırana rekabet ettiği bir toplumdur ve kuralları onu bu şekilde sürdürmektedir. Bu kuralları yapıcı işbirliğiyle değiştirmek istiyoruz.
Çoğu bilgisayar sistemindeki dosya koruması, dosyalarınıza kimin ne yapabileceğini nasıl kısıtlayabileceğinize büyük önem verildiği anlamına gelir. Kullanıcılara, çalışmalarının her gün yok edilmesiyle aralarında duran tek şeyin dosya koruması olduğunu beklemeleri öğretiliyor. Biz üstatlar yıllarca dosya koruması olmadan mutlu bir şekilde yaşadık ve “paranoya” olarak adlandırılan hiçbir şeyi kaçırdığımızı hissetmedik. Sistemdeki her şeyin erişilebilir olması son derece yararlı oldu; bu, düzeltmenize izin verilmeyen bir dosyada bir hatanın gizlenemeyeceği anlamına geliyordu.
Bu tutumlarımızı programlama dili tasarımına da taşıdık. “GOTO'yu yasakla” platformuyla birlikte “Yapılandırılmış programlama” hareketini düşünün. Bu insanlar, “Tüm programcıların hepsi değil de az sayıdaki biz yeter[siz]iz dediler. Nasıl programlamanız gerektiğini biz biliyoruz. Sizi bu şekilde programlamaya zorlayacak diller tasarlayacağız, sonra da bu dilleri kullanmaya zorlayacağız.” Biz bilgisayar üstatları, programlama dillerini geliştirmenin daha uygun bir yolunun, kullanımı daha kolay yapıları belirleyip sağlamak olduğunu hissettik; kullanıcının kötü bir program yazması durumunda onu rahatsız etmek yerine iyi programlar yazmasına yardımcı olmak. Ve kullanıcıların bizim sunduklarımızı beğenmemeleri durumunda kendi yapılarını oluşturabilmeleri için olanaklar sağladık.
Laboratuvarın Başarılarından Bir Felsefe Ortaya Çıkıyor
YZ laboratuvarının tutumları, en iyi bilinen çalışmam olan EMACS tam ekran düzenleyicisinin (Guy Steele ve diğerlerinin de katkıda bulunduğu) temel bir parçasıdır. Günümüzde tam ekran düzenleyiciler (“kelime işleme” programları) yaygındır ve her ev bilgisayarında bulunur. 1973'te ekran terminalleri yazıcılardan daha pahalıydı, bu nedenle çoğu insan hâlâ yazdırma terminallerini kullanıyordu ve ekran terminalleri olanlar genellikle bunları sanki yazdırma terminalleriymiş gibi (yani “CAM TTY”ler gibi) kullanıyorlardı. YZ laboratuvarında ekranlar vardı ancak henüz ekran düzenleyici yoktu.
EMACS, güçlü ve genişletilebilir olması nedeniyle ekran düzenleyiciler arasında alışılmadık bir durumdur. EMACS, diğer düzenleyicilerin sahip olmadığı komutları sağlamak için kullandığım ve kullanıcıların benim onlara vermediğim komutları sağlamak için kullandıkları kendi programlama olanağını içerir. Kullanıcılar komutlardan oluşan kütüphaneler oluşturup paylaşabiliyor ve iyi bir iş çıkardıklarında kütüphaneler sadece kılavuza dahil edilerek standart EMACS sisteminin bir parçası haline geliyor.
Diğer birçok düzenleyicinin “makro” araçları vardı. EMACS, düzenleyici komutları yazmaya yönelik, alışılagelmiş düzenleme dilinden tamamen ayrı bir programlama diline sahiptir. Bir düzenleme dili olması gerekmediği için çok daha iyi bir programlama dili olabilir, karmaşık programlar yazmak için iyidir. İkinci unsur uygulayıcı ve kullanıcı arasında ayrım yapmamaktır. Neredeyse tüm “yerleşik” ürünler; EMACS komutları tıpkı kullanıcı uzantıları gibi yazılır. Her kullanıcı bunları değiştirebilir veya kendisi değiştirebilir.
EMACS'ın gelişimi laboratuvarın doğasını gösteren bir yol izledi. Laboratuvara geldiğimde düzenleyici, diğer düzenleyicilerden biraz daha fazla programlama olanağına sahip bir baskı terminali düzenleyicisi olan TECO'ydu. Kullanıcı birçok komuttan oluşan bir komut dizisi yazacak ve ardından TECO bunu yürütecekti. TECO, bir ekran terminalinde, her komut dizisinden sonra dosya metninin nasıl yeniden görüntüleneceğini biliyordu. Ekran düzenlemeyi sağlamanın doğal yolu, onu TECO'ya eklemek ve mevcut yeniden görüntüleme mekanizmasını uyarlamaktı.
Başlangıçta ekran düzenleyici TECO'nun komutlarından yalnızca biriydi. Gücü çok sınırlıydı ve dosyayı diske kaydetmek veya bir karakter dizisi aramak gibi süslü bir şey yapmanız gerekiyorsa, ekran düzenleyiciden çıkıp bir süre normal TECO'yu kullanıyordunuz. Daha sonra bir kullanıcı, kullanıcının kayıtlı bir TECO komut dizisine veya “makrosuna” bağlanabileceği birkaç ekran düzenleyici komutu sağlamamı önerdi. Bunu uygularken, kullanıcının ekran düzenleyici komutlarından herhangi birini kayıtlı bir TECO komut dizesiyle değiştirmesine izin vermenin de aynı derecede kolay olduğunu keşfettim.
Bu bir patlamaya neden oldu. Cümbür cemaat genellikle yapmaktan hoşlandığı her şey için bir komut olan, yeniden tanımlanmış ekran düzenleyici komutlarından oluşan kendi koleksiyonunu yazıyordu. İnsanlar bunları başkalarına aktarıp geliştirerek daha güçlü ve daha genel hale getireceklerdi. Yeniden tanımlamaların derlemesi yavaş yavaş kendi başlarına sistem programları haline geldi. Kapsamları genişledi ve gerçek düzenleme için TECO'yu kullanmak için giderek daha az neden oluştu. Sadece düzenleyici yazmak için bir programlama dili haline geldi. Ekstra bir özellik olarak programlamaya sahip bir düzenleyici olarak değil, zihinsel olarak bir programlama dili olarak sınıflandırmaya başladık ve bu, onu diğer düzenleyiciler yerine diğer programlama dilleriyle karşılaştırmak anlamına geliyordu. Sonuç, diğer programlama dillerinin sahip olduğu birçok özelliğe olan talepti. Diğer üstatlar yeni özellikleri kullanarak TECO'da yazdıkları düzenleyicileri geliştirirken ben TECO'yu bu şekilde iyileştirdim.
Yaklaşık iki yıl süren bu çılgın evrimin ardından Guy Steele, diğerlerinin en iyi fikirlerini birleştirecek bir düzenleyici yazma zamanının geldiğine karar verdi. Birlikte başladık ama çok geçmeden diğer ilgi alanlarına yöneldi. “Makroları düzenlemek için EMACS düzenleyicisini aradım.” Ayrıca yeni düzenleyicinin isminin tek harf kısaltması olmasını ve “E” halihazırda kullanılmayan harflerden biriydi.
Bu nedenle, standart EMACS komut dili, birçok kullanıcı bakımcısının kendi düzenleyicileri üzerinde yıllarca süren deneylerinin sonucuydu; bu, yalnızca genişletilebilirlik ve YZ laboratuvarının kullanıcıları sisteme ekleme yapmaya teşvik etme tutumu sayesinde mümkün oldu. Kullanıcılara kendi ekran düzenleyicilerini yeniden tanımlama yetkisi verdiğim o önemli günde, bunun dünyayı sarsacak yeni bir düzenleyiciye yol açacağını bilmiyordum. Kullanıcıya daha fazla güç vermenin her zaman iyi olduğuna dair YZ laboratuvarının zihinsel kestirmesini takip ediyordum. YZ laboratuvarının tutumları daha sonra kullanıcıları gücü kullanmaya ve bu sayede ürettiklerini paylaşmaya teşvik etti.
EMACS üzerinde yaklaşık beş yıl çalıştım ve EMACS'in gelişmesine yardımcı olmak için, yaptıkları tüm uzantıları geri vermeleri koşuluyla herkese özgürce olarak dağıttım. Bu düzenlemeye “EMACS topluluğu” adını verdim. Paylaştığım gibi paylaşmak, birbirlerine karşı çalışmak yerine birlikte çalışmak onların göreviydi. EMACS artık en iyi üniversitelerin bilgisayar bilimleri bölümlerinde ve diğer birçok yerde kullanılıyor. Ayrıca yaklaşık on kez taklit edilmiştir. Ne yazık ki bu taklitlerin birçoğu EMACS'ın gerçek özü olan genişletilebilirliğinden yoksundur; bunlar, yalnızca yüzeysel görünümü taklit eden “ersatz EMACS'lardır”.
Günümüzde EMACS kullanıcıları neredeyse hiç TECO ile düzenleme yapmıyor ve çoğu TECO'yu bilmiyor bile. Aslında TECO ile nasıl düzenleme yapacağımı unuttum. TECO ile programlama açısından düşünmeye o kadar alışmıştım ki, birkaç nadir durumda onunla düzenleme yapmam gerektiğinde bir dakika kadar ne yapacağımı şaşırırdım. Reflekslerin hepsi gitmişti.
Düzenleyicideki iyileştirmenin değerli olduğunun bir işaretinin, onu birkaç hafta kullandıktan sonra onsuz nasıl yapacağımı unutmam olduğunu fark ettim. Bu, işleri eski yöntemle yapmayı pratikte sürdürmenin büyük bir çaba gerektirdiğini kanıtlıyor.
EMACS gibi bir şeyin ticari olarak geliştirilebileceğini düşünmüyorum. İşletmelerin tutumları yanlış. Ticari dünyanın kullanıcılara yönelik temel aksiyomu, onların beceriksiz olduğu ve sistemleri üzerinde herhangi bir kontrole sahip oldukları takdirde onu alt üst edecekleridir. Temel amaç onlara şikayet edecekleri özel bir şey vermek değil, onlara kendilerine yardım edebilecekleri bir araç vermek değil. Bu, FDA'nın yanlışlıkla bir ilacı piyasaya sürerek bir kişiyi öldürmek yerine, ilaçları piyasadan uzak tutarak bin kişiyi öldürmeyi tercih etmesiyle aynı şeydir. İkincil amaç ise yöneticilere kullanıcılar üzerinde güç kazandırmaktır, çünkü hangi sistemi satın alacaklarına kullanıcılar değil yöneticiler karar verir. Bir kurumsal düzenleyicinin genişletilebilirlik için herhangi bir yolu varsa, muhtemelen yöneticinizin sizin için karar vermesine izin verecek ve size hiçbir kontrol vermeyecektir. Bu iki nedenden dolayı bir şirket, MIT kullanıcılarının yaptığı gibi kullanıcıların deney yapabileceği bir düzenleyiciyi asla tasarlamazdı ve bir EMACS üretmek için deneylerin sonuçlarını temel almazdı. Ayrıca şirket size kaynak kodunu vermek istemez ve o olmadan uzantı yazmak çok daha zordur.
Yazıcınızın Adı Nedir?
Laboratuvardaki bir lazer yazıcı sistemine EMACS kılavuzu için yeni bir yazı tipi yüklerken, başlatma menüsünün, her kullanıcının çıktısının kapak sayfasında görünen, yazıcının adını değiştirmek için bir yuva içerdiğini fark ettim. (Birden fazla yazıcınız varsa ve çıktınızı hangisinin ürettiğini bilmek istiyorsanız bu özellik önemliydi.) Yazıcımızın şirin ve anlamsız bir adı vardı: “Tremont”. Bir üstat olarak onu daha eğlenceli bir şeyle değiştirmek benim görevimdi. Ben “Kafka”yı seçtim, rahatsız edici çağrışımları gündeme getirmek için. (Bir sabah lazer yazıcı olarak uyanan adamı duydunuz mu?)
Sonraki birkaç gün boyunca diğer üstatlar yeni isim hakkında konuşmaya devam etti ve ek eğlenceli isimler önerdiler (“Treemunch”, “Thesiscrunch”, “Cthulhu” …). Daha fazla öneri toplarken birkaç gün boyunca her ismi denedim. Hemen hemen herkes için çok eğlenceliydi. Bunun tek istisnası, bana bunu yapmaya yetkili olmadığımı ve durmam gerektiğini söyleyen bir profesördü. Sonuç olarak insanların eğlendiğini ilk elden bildiğimi ve bu nedenle en azından öneriler geçerli olduğu sürece devam etmem gerektiğini söyledim. Sonunda ona sert ve resmi bir dille, üstatlığın izinsiz olduğunu söyleme yetkisinin olmadığını söyledim.
Zavallı adam işin burada bitmesine izin vermedi. “Yazıcıyı yeniden adlandırmanın bu kadar eğlenceli olduğunu düşünüyorsanız neden PDP-10'ları yeniden adlandırmıyorsunuz? dedi.” Bu gerçekten harika bir fikirdi ve buna minnettarım. Ertesi gün, DM PDP-10'a (Zork'un evi), “Dinamik Modelleme” yerine “Zindan Modellemesi” adı verildi. (Matematik araştırmaları ve tıbbi karar vermede kullanılan) ML PDP-10'a “Matematik Laboratuvarı” yerine “Tıbbi Sorumluluk” adı verildi. MC PDP-10 “MACSYMA Konsorsiyumu ” yerine “Maksimum Karışıklık” dendi. ve AI PDP-10'a “Yapay Zekâ”yerine “Uluslararası Anarşistler” adı verildi. Bir daha şikayet duymadım.
Laboratuvar İhanete Uğradı
Halen MIT Yapay Zekâ Laboratuvarı diye bir kurum var ve ben de orada çalışıyorum ama eski erdemleri kalmadı. Bir yan şirket tarafından ona ölümcül bir darbe indirildi ve bu onun doğasını temelden ve (sanırım) kalıcı olarak değiştirdi.
Yıllar boyunca, yalnızca biz YZ laboratuvarında ve diğer birkaç laboratuvarda yazılımın en iyisine değer verdik. Lisp'in erdemlerinden söz ettiğimizde, diğer programcılar, ne hakkında konuştuklarını pek bilmeden, bize güldüler. Biz onları görmezden gelip işimize devam ettik. Fildişi kulede olduğumuzu söylediler.
Sonra “gerçek dünyanın” bazı kısımları; Lisp konusunda başından beri haklı olduğumuzu fark etti. Lisp'e büyük bir ticari ilgi ortaya çıktı. Bu sonun başlangıcıydı.
YZ laboratuvarı, çok büyük Lisp programlarını çalıştırabilmesi için geniş bir sanal adres alanına sahip kişisel bir bilgisayar olan Lisp makinesi adı verilen bir bilgisayarı yakın zamanda geliştirmişti. Artık insanlar herkesin sahip olabilmesi için makinenin ticari olarak üretilmesini istiyordu. Lisp makinesinin mucidi, baş üstat Richard Greenblatt, yavaş ama istikrarlı bir şekilde büyüyecek, abartı kullanmayacak ve standart Amerikan şirketlerinden daha az obur ve acımasız olacak, alışılmadık bir üstat şirketi için planlar yaptı. Amacı, yalnızca kârı en üst düzeye çıkarmak yerine, bilgisayar üstatlarını ve bilgisayar üstatlığını desteklemenin alternatif bir yolunu sağlamak ve dünyaya Lisp makineleri ve iyi yazılımlar sağlamaktı. Yatırımcılar geleneksel yöntemlerde ısrar edeceği için bu, çoğu şeyi dış yatırım olmadan yapmak anlamına geliyordu. Bu şirket, genellikle LMI olarak adlandırılan Lisp Machines Incorporated'dır.
Lisp makinesi projesindeki diğer kişiler bunun işe yaramayacağını düşündüler ve Greenblatt'ın iş tecrübesi eksikliğini eleştirdiler. Buna yanıt olarak Greenblatt, birkaç yıl önce sanayide çalışmak için laboratuvardan ayrılan arkadaşı Noftsker'ı işe aldı. Noftsker'in iş dünyasında deneyimli olduğu düşünülüyordu. Bu izleniminin doğruluğunu iş hayatına uygun bir şekilde sırttan bıçaklamayla hızla gösterdi: o ve diğer bilgisayar üstatları Greenblatt'ı başka bir şirket kurmak için bıraktılar. Planları büyük miktarlarda yatırım bulmak, mümkün olduğu kadar hızlı büyümek, büyük bir sıçrama yapmak ve bu yoğunlukta boğulan herkesin canı çıksın. Her ne kadar üstatlar şirketin yapmayı planladığı servetin yalnızca küçük bir kısmını elde edecek olsa da, bu kadarı bile onları zengin yapacaktı! Daha fazla çalışmalarına gerek bile yoktu. Eskiden olduğu gibi başkalarıyla işbirliği yapmayı bırakmak zorunda kaldılar.
Bunun sonucunda iki rakip Lisp makinesi şirketi ortaya çıktı: Greenblatt'ın LMI'sı ve Noftsker'in Symbolics'i (YZ laboratuarında genellikle “Slime” veya “Bolix” olarak anılır). YZ laboratuvarındaki tüm üstatlar bunlardan biriyle bağlantılıydı, benim dışımda, çünkü LMI bile benim bulunmak istemediğim ahlaki tavizler içeriyordu. Örneğin Greenblatt, özel mülk işletim sistemi yazılımına karşıdır ancak özel mülk uygulama yazılımlarını onaylamaktadır; Her iki program türünü de paylaşmayı reddetmek istemiyorum.[2]
Symbolics milyonlarca dolarlık yatırım elde etmek için doğrudan ilerledi ve MIT'de işi bitmemiş herkesi sürekli işe aldı. Greenblatt, laboratuvardaki travmayı en aza indirmek için insanların yarı zamanlı olarak LMI'da ve yarı zamanlı olarak YZ laboratuvarında çalışmasını öngörmüştü. Symbolics çıkar çatışması suçlamalarında bulunarak LMI çalışanlarını da MIT'den ayrılmaya zorladı. Bir anda son üstat oldum ve bir kişi yeterli değildi. Laboratuvar ölüyordu.
YZ laboratuvarının yok edilmesinin kasıtlı bir eylem olduğundan kesinlikle şüpheleniyorum. Bir iş adamı altın yumurtayı aldığında, tekeline sahip olduğundan emin olmak için kazı öldürür.
O dönemin anılarını hatırlamak benim için acı verici. Laboratuvarda kalan kişiler, sistemin veya donanımın bakımını bilmeyen veya bilmek istemeyen profesörler, öğrenciler ve üstat olmayan araştırmacılardı. Makineler bozulmaya başladı ve asla tamir edilemedi [3]; bazen de çöpe atılıyorlardı. Yazılımda gerekli değişiklikler yapılamadı. Bilgisayar üstatları olmayanlar ise faşizmi ve lisans anlaşmalarını getiren ticari sistemlere yönelerek buna tepki gösterdi. Laboratuvarda, eskiden dolu olan boş odaların arasında dolaşıp şöyle düşünürdüm:“Aman tanrım zavallı YZ laboratuvarı, ölüyorsun ve seni kurtaramam.” Herkes daha fazla üstat eğitilirse, Symbolics şirketinin onları işe almasını bekliyordu, bu yüzden denemeye bile değmezdi. Laboratuvar yönetimi bizi toparlamak için hiçbir çaba göstermedi ve MIT yönetimi, kâr amacı güden bir şirket gibi paragöz davranarak insanların moralini daha da bozdu.
Geçmişte üstatlar zaman zaman gitmişti ama kalanlar tarafından onların yerini alacak yenileri eğitilmişti. Artık tüm kültür silinmişti, yeni bir insan modeli oluşturacak yeterli şey kalmamıştı ve en iyi insanları buraya çekecek büyüklük kalmamıştı. Örneğin, bilgisayar üstatları her gün birlikte akşam yemeği (genellikle Çin yemeği) yerlerdi. Hiç kimse her gün orada değildi ama akşam birlikte yemek yiyecek başka insanlar bulacağınıza güvenebilirdiniz. Artık bu uygulama bozuldu ve insanlar artık birlikte yemek yiyecek başkalarını bulamadıkları zaman, normal zamanlarda aç bir şekilde gelmeyi planlayamadılar, bu da etkiyi daha da arttırdı.
YZ laboratuvarının tamamında ortak bir telefon numarası ve genel seslendirme sistemi vardı. (Telefonun dahili numarası 6765'ti ve 6765 20'nci Fibonacci sayısı olduğu için “6765” veya “20” nin Fibonacci'si diye yanıtlardık.) Herkesi aramak ve herkese ulaşmak kolaydı. Artık insanların ve terminallerin çoğu 6765'in ulaşamadığı diğer katlara taşındı ve laboratuvarın özgün merkezi olan 9. kat makinelerle doluyor. Bu değişiklik laboratuvarın sosyal uyumunu daha da azaltıyor. Artık arayıp kimsenin aç olup olmadığını bile öğrenemiyorum ve kimse bana telefonla ulaşamıyor.
Böylece sosyal ağımı, kariyerimi dürüst bir şekilde sürdürme fırsatımı ve inşasına katkıda bulunduğum şeylerin çoğunu bir anda kaybettim. Hayatımı anlayışsız yabancılar arasında geçirmeye mahkum, soyu tükenmiş bir kabilenin hayatta kalan son üyesi olduğumu hissettim. Mevcut ve önceden sağlıklı olan bir laboratuvarın baskıya dayanamaması durumunda, YZ laboratuvarının iyi niteliklerine sahip yeni bir laboratuvar inşa etme şansı pek fazla değildi. Bilgisayar endüstrisi, altın kuralın gerektirdiği gibi, diğer bilgisayar üstatlarıyla paylaşmama izin vermez. Bilgisayarlarla ilgili olmayan yeni bir kariyer aramaya başladım, ancak bulmayı beklemiyordum ve muhasebe programları veya (ben dahil) hiçbir bilgisayar üstatının ilgilenmeyeceği diğer şeyler üzerinde çalışmaktan başka bir gelecek görmüyordum. Anlamsız bir hayat, ama en azından yaptıklarımı istemezlerse diğer bilgisayar üstatlarıyla paylaşmayı reddetme utancına sahip olmayacaktım. Bunun doğrudan bir intihar biçiminden daha iyi olduğundan emin değildim.
Yaklaşık bir yıl boyunca LMI, Symbolics ve YZ laboratuvarının kalıntıları vardı. Lisp makinesinin işletim sistemi üçü tarafından da paylaşılıyordu. Symbolics üstatları zaman zaman bir hata raporuna şunu söyleyerek yanıt veriyorlardı: “Bu, mevcut sistemde düzeltilemez. Yeni makinemizi bekleyin.” Bu, yeni makinenin daha iyi bir gelişme gibi görünmesini sağlamak içindi. Kısa bir süre sonra hatayı zaten düzelttiğimi duyurmak benim için çok eğlenceliydi.
Savaş Çıkıyor
Ancak işler daha da kötüye gidecekti, çünkü LMI Symbolics'in açıkça öngördüğü başarısızlık değildi. Lisp makineleri üretip satıyordu ve bunları, telafi edilmesi gereken devasa bir yatırımı ve ödenmesi gereken çok fazla maaşı olan Symbolics'den çok daha ucuza satıyordu. Yaklaşık bir yıl sonra, Symbolics iyi reklamı yapılan kaçınılmaz zaferinin daha şiddetli önlemler olmadan gerçekleşemeyeceğini fark etti. Planları yazılım iyileştirmelerinin üç yönlü paylaşımına son vermekti. LMI çok daha küçük olduğundan, LMI'ın onlara ayak uyduramayacağını umuyorlardı. (YZ laboratuvarının artık önemli bir katkıda bulunduğu düşünülmüyordu.)
Symbolics, YZ laboratuvarının yeni şartlara uymasını talep etti: Symbolics tarafından yapılan iyileştirmeleri kullanmak ancak bunları LMI [4] ile paylaşmamak. Bu talep, aldatıcı bir tarzda, büyük bir cömertlik eylemi olarak duyuruldu. Aslında MIT'in iyileştirmelerini kullanmaya devam etmesine izin vermek bile laboratuvarı kilitlemek için tasarlanmış başka bir taktikti, böylece onlara hata raporları ve demolar sağlayacak ve yalnızca onlardan satın alacaktı. Bu alışılmadık bir motivasyon değil. Birçok şirket sırf bu nedenle yaptıkları bilgisayarları MIT'e bağışlıyor. Ama genellikle MIT'in işbirliğini zor yoldan dayatmak yerine cömertlikle kazanmaya çalışıyorlar.
Symbolics şüphesiz laboratuvarın hemen teslim olmasını ve tamamen kendi yazılım markasına geçmesini bekliyordu. Ama teslim olmayı reddettim, LMI'ya karşı Symbolics'e yardım etmek üzere görevlendirilmeyi reddettim. LMI yardımıma daha layıktı. Artık tarafsız kalmama izin verilmediğinden, beni savaşmaya zorlayanlara karşı savaşacaktım [5].
Symbolics'in geliştirmelerini kullanmak yerine, son paylaşılan sistemde benzer iyileştirmeler yaptım. Laboratuvar kullanıcılarının çoğu MIT sistemini kullanmaya devam etti; bazıları Symbolics'den hoşlanmadıkları için, bazıları onu teknik olarak üstün buldukları için, bazıları ise onu değiştirme konusunda daha özgür oldukları için. Geçtiğimiz bir buçuk yıldır bunu yapıyorum, MIT sistemini aynı derecede iyi, hatta bazen daha iyi tutmak için. LMI benim yaptığım tüm iyileştirmelerden yararlanacağı için LMI'nin de aynı derecede iyi bir sistemi var. Symbolics'in paylaşmayı reddetmesinin ana sonucu, iki sistem arasındaki uyumsuzluklardan dolayı kullanıcılar için pek çok güçlük yaşanmasıydı.
Genellikle Symbolics'in yeni bir özellik tasarlamasına izin veriyorum, ardından belgelerine bakıp çoğunlukla uyumlu bir şey uyguluyorum. Belgelere aldırmadan da sistemi geliştirebilirdim ama bu kötü bir strateji olurdu. Yaptığım iyileştirmeleri aynen kopyalayabilir ve zamanlarını ek iyileştirmeler için harcayabilirler. Ya da benim tasarımımı göz ardı edip benzer ama uyumsuz bir şey uygulayarak tüm kullanıcılar için sorun yaratabilirler. Tıpkı bisiklet yarışında olduğu gibi, diğer adamın hemen arkasındaysanız çok daha az iş yaparsınız. Büyük bir takıma karşı yarışan tek kişi olarak bu avantaja ihtiyacım var. Kolayca öne fırlayabilirim ama bu enerjimi verimli bir şekilde kullanmak olmaz.
Symbolics dava açmakla tehdit ederek (her ne kadar henüz bir dava açmamış olsalar da) ve beni kovdurmaya çalışarak karşılık veriyor. Söylentiye göre, beni suçlayacak bir şey bulmak için günde birkaç kez bilgisayar postalarımı okuyorlar; Bir kez yakalandılar ve bu onlara karşı geri tepti. (Herkesi cezalandıracak güvenlik tedbirleriyle onları durdurmak ilkelerime aykırıdır.) Birinin karşılıksız bir şey almasının kötü olduğunu düşünüyorlar; Bir şeyin kendileriyle eşit şekilde rekabete yarar sağlamasındansa boşa gitmesini tercih ediyorlar. Bu, ülkemizi felç eden bölücülüktür.
Symbolics'e karşı bu şekilde çalışarak sadece onların şartlarına uymak zorunda kalmaktan kurtulmuyorum, aynı zamanda eski YZ laboratuvarını yok ettikleri için hak ettikleri cezayı görmeleri ve adaletin sağlanmasına da yardımcı oluyorum. Başlangıçta laboratuvarı yeniden canlandıracak bir kendi kendine yeterlilik çekirdeği sağlamayı da umuyordum. Ama kimse bana katılmadı; Artık herkes araştırmasını sürdürüyor.
Şimdi Nereye Gideceğim?
Symbolics hiçbir zaman yazılımda üstünlük sağlayamadı, ancak onların yeni, daha hızlı makinesi, LMI'nın yeni, daha hızlı makinesinden daha erken hazırdı. Şimdi bunların çoğunu MIT'e teslim ettiler ve kullanıcılarım bunlara geçiş yapıyor. Bu makinelerde MIT sistem sürümünün kullanılması, makineler çok farklı olduğundan kullanışlı değildir.
Kullanıcı kaybı, yeni yazılımımın gerçekten çalıştığını doğrulamamı zorlaştırıyor. Ama şansım yaver giderse, sonunda Symbolics'in kazanmasını engelleyecek kadar dayanabileceğim. LMI teslimatlara yeni başladı. Yakında çok başarılı olacaklar ve sistem gelişimini kendileri destekleyecekler ve Symbolics yalın ve agresif rekabete sıkışıp kalacak. LMI benim yardımım olmadan yoluna devam edebildiğinde, Symbolics'in nihai cezası tamamen verilmiş olacak. Daha sonra Lisp makinelerinde çalışmayı bırakabilirim. Bu yılın Şükran Günü'nü durma zamanı olarak belirledim.
Zalimlerin cezasını verdikten sonra, onların yok ettiklerini yeniden inşa etme zamanım gelecek.
YZ laboratuvarı yeniden oluşturulamaz. MIT'in burada yapılan yararlı her şeyi lisanslamaya çalışması, burada kalıp paylaşımı sürdürmeyi başlı başına bir mücadeleye dönüştürüyor. Ve Symbolics makineleri ve yarı-yeterli satılmışlarla çevrili olmak zaten hiç eğlenceli değil. Hayata yeni bir başlangıç yapmam gerekiyor ve ilk adım geçmişin yıkıntılarından uzaklaşmak. Bu nedenle işi bırakacağım.
Lisp makinelerinde çalışarak yeniden oluşturulamaz. MIT, Lisp makine yazılımının kendisine ait olduğunu iddia ediyor, dolayısıyla bu yazılım yalnızca gizlice paylaşılabilir. (LMI bir istisnadır; MIT ile sözleşmeleri var.) Bu tür bir gizli işbirliği, hiç olmamasından iyidir, ancak yeni bir yaşam tarzı üretemez. Bu açık, kamuya açık ve yaygın bir işbirliği gerektirir. Symbolics'in varsayılan olarak kazanmasına izin vermek yerine Lisp makine sistemi üzerinde çalışmak daha doğru görünüyordu, ancak yaşamak için gereğinden fazla uğraş. Aynı nedenden dolayı, çalışmalarımın kısmen kamuya açılmasına izin vermelerine rağmen LMI için çalışamıyorum. Savaşırken tavizler verebilirim, ancak iş iyi bir şey inşa etmeye geldiğinde böyle bir taviz işe yaramaz, çünkü bu, inşa ettiğim her şeyin iyi olamamasına neden olur.
Bunun yerine, ticari, düşmanca yaşam tarzının sürdürülme biçiminin köküne inen iddialı bir projeyi seçtim. Herkese özgürce dağıtılmak üzere, UNIX işletim sisteminin (çekirdek, derleyiciler, yardımcı programlar ve belgeler) tamamen yerine geçen GNU'yu yazacağım.
GNU, bilgisayar üstatlarının paylaşım ve işbirliği yoluyla yaşamaya karar vermelerini kolaylaştıracak. Bilgisayardan yararlanmak bir yazılım sistemi gerektirir. Artık hiçbir özgür yazılım sistemi bulunmadığından, sahip olunan yazılımı kullanmayı reddetmek çok büyük bir fedakarlıktır. Ancak arzu edilen bir yazılım sistemi özgürce kullanıma sunulduğunda, bu baskı sonsuza kadar ortadan kalkacaktır. Bilgisayar üstatları paylaşmakta özgür olacak.
Şükran Günü'nde başlıyorum. Bilgisayar üreticilerinden bu amaç için bağış istiyorum ama garson olarak çalışmak zorunda kalsam bile bunu yapacağım. Eski yöntemleri özleyen diğer programcılar şimdiden bu amaç için bir araya geliyor. Katılın ve yardım edin! ve belki de YZ laboratuvarının eski ruhu yeniden yaşar.
İyi Hacklemeler
Richard M Stallman
Mutlu Üstat
Dipnotlar
- YZ Laboratuvarı'nın anarşist yaşam tarzını ve çalışma tarzını sevdim, ancak bu aslında tam bir körü körüne anarşist olmak değil. Devletin ve onun birçok yararlı faaliyetinin, toplumun kararlarını demokratik bir şekilde alma olanağının ortadan kaldırılması yönünde bir çağrıda bulunmadım. Neden bir devlete ihtiyacımız var konusuna bakın.
- YZ laboratuvarı iki şirket arasında tarafsızdı; Bu tarafsızlığın bir parçası olmaktan memnundum.
- YZ laboratuvarındaki PDP-10 Şubat 1982'de bozuldu ve hiçbir zaman tamir edilmedi.
- Symbolics ültimatomunu 16 Mart 1982'de, tesadüfen benim doğum günümde verdi. Bunu, Symbolics'in YZ Laboratuvarı ve LMI'ya saldırdığı, ilkini kontrol altına alıp ikincisini yok etmeyi amaçladığı gün olarak düşündüm.
- İronik bir şekilde, doğrudan çatışma bana uğruna çabalayacağım olumlu bir şey göstererek beni umutsuzluğumdan kurtardı. Artık ilerleyecek bir yönüm kalmadığından, kaybolmuş değildim. Üzerime birdenbire bir mücadele düşmüştü; yenilgisi elimden gelenin en iyisini yapmaya değecek bir saldırganlıktı.