ARTIK BİLGİSAYARLAR HERKES İÇİN
Retro bilgisayarGünümüzün modern tekniğinin diğer buluşlarına göre bilgisayarlar oldukça yeni cihazlardır. Motorlu taşıtların 219 yıldır (Gugnot'nun buharlı arabası), uçakların 1783'den beri (Mongolfie) varolmalarına karşın ilk bilgisayar 1941 yılında (Zuses Z3) yapılmıştı. Fakat o günden sonra bu alanda inanılmayacak derecede hızlı bir gelişme kaydedilmiştir ve önemli adımlar atılmıştır. 1955 yılında Avrupa'nın en iyi bilgisayarı diye adlandurılan IBM 1401, günümüzün teknolojisinde normal bir hesap makinesinin yaptığı işlemden pek fazlasını yapamıyordu. O zamanlar dünya üzerinde oldukça yayılmış olan IBM 1401 beş basmaklı iki sayıyı toplamak için 230 mikrosaniye harcıyordu ve en fazla 16000 işareti hafızasında tutabiliyordu. Çok yakından tanıdığımız C-64 bile bu toplamayı 5 mikrosaniyede gerçekleştirmektedir ve toplam 65536 bayt doğrudan kullanılabilir belleğe sahiptir. 1401'in aylık kirası tüm donanımıyla birlikte ortalama 50 milyon TL. idi. Şu anda C- 64'ün fiyatı bunun kat kat altındadır. Fakat teknik son 20 yıl içinde sadece ve sadece bu alanda dev adımlar atmamıştır: İnsan-bilgisayar ilişkisi günümüzde oldukça değişik boyutlara ulaşmıştır. Önceleri insanlar bilgisayarlara göre hareket etmek zorunda kalırken, şimdi daha çok bilgisayarlar insanlara uymaktadır. Bu tezin ne derece doğru olduğunu şimdi daha iyi anlayacağız. Öncelikle bilgisayarlarda oldukça sık karşılaşılan bir problemin geçen yıllar zarfında hangi aşamalardan geçilerek çözüldü- Bünü inceleyelim isterseniz. Örnek olarak A adındaki bir kayıt ünitesinden B adındaki bir diğerine herhangi bir dosyanın nasıl aktarıldığını görelim, Yalnız burada kısa bir bilgi vermemiz gerekmektedir. 1965 yılında normal bir programcı için bugünlerde yakından tanıdığımız ikilik sayı sistemi pek fazla bir şey ifade etmiyordu. O zamanlarda her bilgisayar kendine özgü sembolik kodlama sistemini geliştirmişti: Prosa (Siemens 2002) SPS veya Autocoder (IBM 1401) Freiburger Code (Zuse Z23) Tecrübeli bir programcı olabilmek için ise bu kodlama sistemlerinden 2 veya 3 tanesini bilmek gerekiyordu. Bilgisayarların zamanı ise o devirlerde yine oldukça kıymetliydi. Bu nedenle programlama işleminin büyük bir kısmı kâğıt üzerinde gerçekleşirdi. Hazırlanan bir programın kodları özel makineler yardımı ile delikli kart veya bantlara yazılır, daha sonra bunlar yine özel okuyuculara yerleştirilerek programın çalışması sağlanırdı. *60'lı yılların bilgisayarları için klavye ve ekran gibi yan üniteler söz konusu bile değildi. Olası bir hatada program tamamen baştan yazılmakta idi. Yanıp sönen bazı lambalar ve bugünkülerle karşılaştırılmayacak derecede kaba yapılmış yazıcılar bir programın çalışıp çalışmadığını gösterirdi. © yıllarda kullanılan kayıt araçları arasında en yaygın olanı “trommel” adı verilen manyetik silindirlerdi. Şimdi tekrar yukarıdaki problemimize dönüp (Bir verinin A'- dan B'ye aktarılması) bunun trommel kayıt cihazının kullanıldığı bir sistemde nasıl çözümlendiğini kısaca görelim. Aşağıdaki satırlarda göreceğiniz program Siemens S2002 cihazının Prosa sembolik kodlama sistemi ile yazılmıştır. Kullanılan komutlar aslında 13 harflik uzun kelimelerdir kat burada sadece kısaltmalar belirtilmiştir.
TRA: Trommel üzerinde okuna-
cak adresleri belirle!
(Burada komutun adres kısmı
Trommel'in adres registerine
yazılır)
BLL : Okunacak dosyanın block
uzunluğunu belirle!
(Block uzunluğu yine Trommel
üzerindeki block uzunluğu re-
gisterine yazılır)
LTR: Trommel'dan block'u oku
ve registerde belirtilen adres-
lere kaydet!
Yukarıdaki satırlar yazma işlemi için bir kez daha tekrarlanır, yalnız bu sefer okuma komutunun yerine yazma komutu STR alır. Üzerinde durulması gereken son bir konu da programcının zamanlamasıdır. Dönen trommel üzerinde okuyucu ve yazıcı kafa sabit durduğundan işlem yapılacak yere sıra geldiği anda bilgisayar gerekli komutu kullanıyor olmalıdır. Bu nedenle kullanıcı her seferinde komutların işlev süreleri ve trommel'in dönüş süresi arasında bağıntı kurmak zorundadır. Görüldüğü gibi programcı bilgisayar tarafından belirlenen çok dar sınırlar içinde hareket etmek zorundaydı. Aynı sorunla günümüzde de herhangi bir Makro-Assembler kullanmadan makine dilinde program yazanlar da karşılaşmaktadır. İlk bilgisayarlarla birlikte ilk Compiler programları da ortaya çıkmaya başlamıştır: Fortran (1957) ve çok yakın akrabası Algol (1958). Bu ileri programlama dillerinin gereği kadar yayılmamasının başlıca sebebi o zamanlar bellek kapasitelerinin çok fazla oluşu ve makine dilinde yazılmış bir programın çok daha hızlı olmasıydı. Tekniğin son yıllarda gösterdiği korkunç gelişimle birlikte bilgisayarların maliyeti önemli derecede düşmüştür.
ARLAR
ların maliyeti önemli derecede düşmüştür. Birçok yeni Compiler geliştirilmiş ve gerekli hesaplama süresi oldukça kısalmıştır. Günümüzde Cobol, Pascal, PL/1, Forth, Ada, Logo, Lisp, C, Prolog ve her şeyden önce Basic büyük önem kazanmıştır ve programcıların işini oldukça kolaylaştırmaktadır. C-64'ün Basic'inde yukarıdaki program oldukça değişik bir hal alır. Aşağıda göreceğiniz satırlarda 8 No.'lu disket sürücüsündeki bir sequential dosya 9 No.'lu sürücüye kaydedilmektedir: 10 OPEN 1,8,2, “DATA,SEQ,READ” 20 OPEN 2,9,3, “DATA,SEQ,WRITE” 30 INPUT # 1,A$ 40 PRINT # 2,A$ 50 IF ST<>0 THEN 70 60 GOTO 30 70 CLOSE #2 80 CLOSE #1 90 END Az çok İngilizce bilen herkes komutların ne işe yaradığını hiçbir ön bilgiye sahip olmaksızın anlayabilir: İlk önce 8 ve 9 No.'lu sürücülerin her biri için bir kanal açılır, birincisi üzerinden veriler okunurken ikincisi üzerinden kaydedilir. Bu arada ST (status « durum) değişkeninden daha kaydedilecek veri olup olmadığı öğrenilir. Son olarak da tüm kanallar kapatılmaktadır. Şu anda birçok kişi bilgisayar kullanımı için en uygun ortamın sağlandığını düşünebilir, fakat yine de bazı pürüzler hâlâ mevcuttur. Örneğin bilgisayar kullandığı ileri programlama dilleri bazen çok karmaşık kalır. Yukarıdaki programda unutulacak bir “#” işareti her şeyi değiştirir. 4.0'da problemimiz şu
şekilde çözümlenir:
OPEN *““ Data ” FOR INPUT
AS#I
OPEN “ Data ” FOR OUTPUT
AS#2
DO UNTIL EOF(1)
INPUT # 1,A$
WRITE # 2,A$
LOOP
CLOSE # 2
CLOSE # 1
END
Görüldüğü gibi iki prgoram arasında büyük farklar mevcut değildi, fakat iki Basic yorumlayıcı da diği nin dilinden anlayamaz. Değişik bilgisayarlar kullanan birisi ise farklı Basic komutlarını öğrenmek zorundadır. Bu açıdan bakıldığında günümüzde de insanların bilgisayarlara göre hareket ettiği söylenebilir. İnsan ile bilgisayar arasındaki iletişim en iyi şekilde görsel yoldan sağlanmaktadır. Kullanıcı, AMIGA gibi gelişmiş bilgisayarlarda hiçbir programlama bilgisine ihtiyaç duymadan yukarıdaki sorunu şu şekilde çözer: İlkörice her disket sürücü için ekranda bir pencere açılır (Mause ile disket sembolleri üzerine gidilir ve sol butona basılır). Daha sonra ekrandaki ok yardımıyla pencerelerin içinde bulunan dosya sembollerinden biri diğer pencereye taşınır. Bu işlemler sırasında kullanılan sisteme göre değişen, fakat sadece YES ve NO ile cevaplanacak bazı sorularla karşılaşılır. Cevaplamada yine Mause kullanılır. Böylelikle klavyenin tuşlarına bile do- — Kurgu-bilim'e yönelik bilaisayar tasarımlarından biri: Metal Lady.
kunmadan bir dosya diğerine kaydedilmiş olur. Yukarıdaki örnekte görüldüğü gibi sık sık tekrarlanması gereken rutinler bu tür grafikli kullanım sahalarında kolayca ve oldukça çabuk gerçekleştirilebilir. Kullanıcının yapması gereken tek şey Mause yardımıyla ekran üzerindeki özel sembollerden bazılarını seçmek ve basit birkaç soruyu cevaplamaktır. Bu işleri yapabilmek için ise bilgisayarlardan pek fazla anlamaya gerek yoktur. Görüldüğü gibi birçok alanda bilgisayarlar insanların işini kolaylaştırabilmek için onlara ayak uydurmaya başlamıştır. Bu noktada kendi kendinize şöyle bir soru yöneltebi riz: Neden bizler hâlâ tişim kurabilmek için programlama bilgisine ihtiyaç duyarız? Daha önce belirtildiği gibi rutin iş- Dünyanın ilk bilgisayarı 24, sadece profesyonel kullanıcılara yönelikti. lemleri grafikli kullanım sahalarında 14 kolayca halledilmektedir. Geri kalan diğer muhtemel işlemler için ise çeşit çeşit hazır yazılımlar mevcuttur. Örneğin bir metin mi yazmak istiyorsunuz? C-64 için piyasada değişik özelliklere sahip türlü metin işlem programları mevcuttur. Yoksa daha çok oyun oynamaktan mı hoşlanıyorsunuz? Eğer şu ana dek C-64 için yazılmış oyunların bir listesi oluşturulmuş olsaydı bu listenin uzunluğu onlarca metreyi bulurdu. Desktop Publishing, CAD (Bilgisayar Destekli Tasarım) programları, matematik ve muhasebe programları, müzik editörleri, çizim programları... Ne iş olursa olsun amacınıza göre bir hazır yazılım muhakkak mevcuttur. İster bir C-64'e ister bir PC'ye sahip olun şu gerçek kesinlikle inkâr edilemez: Her bilgisayar her türlü ihtiyaç için yeterli yazılıma sahiptir. Dünya üzerinde pek yaygın olarak kullanılmayan bilgisayarlar için bile. 1987 nisanındaki ilk Software kataloğu bile ikiyüz sayfadan fazlaydı. Peki programlamak ne demektir? Bu terim kısaca bir problemi cihazımızın anlayabileceği, yani bilgisayara ve onun mantığına uygun bir şekle getirirken yapılan iş diye tanımlanabilir. Acaba programlamanın gerekli olmadığı durumlarda, yani hazır yazılımlar kullanılırken bilgisayar gerçekten kullanıcının üzerindeki yükü hafifletmekte midir? Son zamanlarda piyasaya çıkan hazır yazılımlar hakkında bilgiye sahip birisi bu soruya olumsuz yanıt verecektir. Birçok değişik özelliğe sahip gelişmiş bir metin işlem programı olan “MS Word 4.0” onbir disketten oluşmaktadır. Ouickbasic 4.0 ise dört disket ve üç adet çok geniş kapsamlı kitapla birlikte bir paket halinde satılmaktadır. C-64'deki bu yazılımları tam anlamıyla kullanabilmek için bu kitaplara kesin suretle ihtiyaç duyulmaktadır. Sanırım bilgisayar kullanımında karşılaşılan en önemli sorun şu anda kendini belli etmektedir: Pek fazla programlama bilgisine sahip olmadan bilgisayar kullanabiliriz (buna biraz sonra yine değineceğiz), fakat hazır yazılımlardan yararlanabilmek için yine uzun zaman sarfetmeliyiz. Bazen öylesine karışık yazılımlarla karşılaştığımız olmuştur ki, yazılımın nasıl kullanılacağını çözmektense işimizi kendi bildiğimiz basit programlama teknikleri ile halletmişizdir. Artık günümüzün programcısı muhteşem projeler gerçekleştirirken aynı zamanda muhtemelen karşılaşılacak bazı özel sorunların kullanıcının yardımı olmaksızın bilgisayar tarafından çözümlenmesini sağlamalıdır. Ayrıca bir yazılımın kalitesi sadece detaylı olup olmamasıyla ölçülemez. Bunun yanında hız ve kapladığı bellek gibi önemli faktörler vardır. Örneğin büromuzda muhasebe işlerinde kullanılan bir Software var, fakat bu Software bazı dezavantajlara sahip: Vergi giriş ve çıkışları düzenli şekilde yapılmamakta, hesaplama işlemleri uzun sürmekte ve kullanımı belli standartların dışında kalmakta. Bunun yanında piyasada çok daha hızlı çalışan ve kusursuz bir muhasebe programı mevcut. Bu ikinci yazılımı kullanmak istediğimizde daha geniş bir belleğe ihtiyacımız olduğundan yeni bir Hard Disk ve bunun yazınında belki de bir koprosesör satın almamız gerekecektir. Böyle durumlarda genellikle mevcut sistemi değiştirmektense eski programı kullanmaya devam ederiz. Ev bilgisayarları alanında da durum böyledir. Sahip olduğunuz bilgisayar belki bir AMIGA gibi grafikli kullanım olanaklarına sahip olmayabilir. Doğal olarak kendinize bu türden bir cihaz satın alabilir ve bazı rutin işlemlerini kolayca halledebilirsiniz. Fakat aynı rutin işlemlerini eski bilgisayarlarınızda da birkaç kısa program satırıyla gerçekleştirmenin mümkün olduğunu unutmayın. Bu tür işler grafikler ve Mause yardımıyla halledilirken belli bir hafıza ve zaman harcamaktadır.
Tüm bu anlatılanları kısaca özetlemek gerekirse programcılığın hâlâ bilgisayar kullanımında gerekli olduğunu söyleyebiliriz. Bu da bize halen insanların bilgisayarlara ayak uydurmak zorunda olduğunu gösterir. Yalnız burada ağırlık noktası, Hardware'den Software'e kaymış durumdadır. Bu rekabet nereye kadar sürecektir? Acaba günün birinde, tamamen tecrübesiz birisini bilgisayarın karşısına oturtup bir metin yazdırmak veya bir veri kaydettirmek mümkün olacak mıdır? Buradaki asıl müşkülat yazılımların ne kadar toleranslı olurlarsa o derece uzun ve karmaşık olmalarıdır. Örneğin bilgisayar sizden dosyalarda arama yapabilmek için bir isim gir- Menizi istesin. Burada yazdığınız ismi kayıtlar arasında aramak ve bulmak çok basit bir program tekniğini gerektirir. Yalnız bilgisayara girdiğiniz isim ile dosya adı tamamen aynı olmalıdır. Tek bir harfin bile yanlış olması olumsuz cevap almanıza yol açar. Eğer programı yazarken bu tür yanlışlara karşı önlem almak istersek, örneğin yazılışları farklı okunuşları aynı tüm kelimeleri işin içine katarsak, programımız hem bellekte daha fazla yer işgal eder hem de daha yavaş çalışır. Bu tür sorunlar günümüz bilgisayarları için halen çözülmüş değildir. İleri bir tarihte, yapay zekâ çalışmaları olumlu sonuç verdiğinde, den çok daha farklı boyutlar kazanacağı şimdiden söylenebilir.
Modern bilgisayarın kullanıcıları teknik konularda tamamen bilgisiz olabilirler.