Merhabalar,
Uykunun en uyku olduğu yerinde kalkıp
gecenin karanlığına her zamanki gibi yazılım aşkı ve merakı ışık tutmakta. İçimde bir ses uyumamı engelliyor. Yapılacak
çok iş var, bi yerden başlamak lazım.. Kimseyi uyandırmamak için ses
çıkarmamaya özen gösterek bastığım klayve tuşları ve zihnimden akan kelimeler..
Çok sorulan bir soru.. Bir zaman
makineniz olsa nereye gitmek isterdiniz?
2002 yılında “The time machine” filminin de insanlara yönelttiği soru
buydu (Where would you go?). Filmin
kahramanı bir kazada kız arkadaşını kaybettikten sonra zamanda geriye giderek bunu
önlemek ve ölümüne engel olmak ister. Bunun için bir zaman makinası icat eder..
Gerisini filmi izleyenler zaten hatırlayacaktır, izlemeyenler içinse bir merak
konusu olarak burada noktalayarak asıl konumuza dönelim. İşimiz filmin
kahramanı kadar zor değil, en azından şu yazıyı yazarken bir zaman makinası
icat etmemize gerek olmadığı söylerek içinizi rahatlatabilirim. Peki ne
yapacağız? Biz, insanın yaratılışı ile ona hediye edilmiş olan dünyanın en
hızlı zaman makinasını yani beynimizi kullanarak yazılım dillerinin ortaya
çıkışını ve hangi evrelerden geçerek bugünkü halini aldığını o dönemlere
giderek an be an yaşayacağız.
Yolculuğu iki araçla gerçekleştirebiliriz
seçeneklerden biri de yazının başlığı olan zaman tüneli.. Zaman tünellerini
bilirsiniz, sağlı sollu resimlerle en eskiden günümüze akan ve insanı hayretler
içinde bırakan sanat galerileridir.
İster bir zaman makinasında
olduğunuzu hayal edin, isterseniz de harika bir zaman tünelinin başlangıç
noktasında.. İkisinin de başlangıcı aynı, ikisinin de bitişi aynı..
Ben zaman makinasını tercih
edenlerdenim. Bence artık yolculuğa çıkma vakti geldi de geçiyor.
Zaman makinamıza bindik ve tarihi 1954
olarak seçtik ardından “Send” butonuna bastık. Hiç merak etmeyin zaman
makinemiz sizi itina ile hazırlanmış bir e-posta gibi adrese teslim edecektir.
Farkında mısınız bilmiyorum
butonunun arkasına yazdığımız kodlarımız hata almadan çalışıyor..
O zaman devam..
1954 yılları..
Fortran ile tercüman arayışı..
Bu yıllarda bilgisayarlarda hız çok önemli
olduğundan yazması zor dahi olsa programlar makine dili kullanılarak
oluşturulurdu. Bunun nedeni var olan
yüksek programlama dillerinin bir derleyiciden yoksun olmasıydı. Nasıl mı?
Şöyle ki, bu diller bir yorumlayıcı (interpreter) ile çalışıyordu ve bu durum
da programın her çalıştırılması gerektiği zaman yazılmış olan kodların tekrar
makine diline çevrilmesi gibi gereksiz bir işlemi yapmasına neden oluyordu. Söz
konusu durum yüksek seviyeli bir dille yazılan programın makine dili ile
yazılmış programlara nazaran 10 kat daha yavaş çalışması sonucunu doğuruyordu.
John Backbus
ve ekibinin aklında bir soru vardı. Yüksek programlama dilleri gibi kolay
yazılıp daha sonra bir derleyici yardımıyla bir kez makine diline çevrilen bir dil icat edilebilir miydi acaba.
Buraya dikkatinizi çekmek istiyorum.
Artık programlar insanların anlamasının zor olduğu makine dili yerine yüksek
seviyeli bir dilde yazılacak fakat program derlendikten sonra tek sefer makine
diline çevrilecek ve de daha sonra program çalıştırılmak istendiğinde kenarda
paket halinde bulunan makine koduna başvurulacak. Bilgisayarın anladığı dilin
makine dili olması ve derleyicinin makine diline çevirerek programı paket
halinde kenarda tutması sayesinde programlar çok hızlı bir şekilde
çalıştırılabilecekti.
Dikkat ederseniz burada derleyicinin rolü çok
önemli, biz derleyici sayesinde bilgisayarla iletişime geçiyoruz. Bu sayede
bilgisayarın bize şunu dediğini duyar gibiyim; sen makine dilini bilmiyor
olabilirsin fakat benimle bildiğin dilde konuş, bizim aramızda zaten bir
tercüman (derleyici) var, o benim anlayacağım dile çevirir.
Günlük hayattaki farklı dilleri konuşan insanların
tercüman aracılığı ile iletişim sağlaması gibi derleyici de bizim kullandığımız
programlama dili ile makine dili arasında bir tercüman vazifesi görmektedir.
Odak noktası buydu, bunun üzerine düşündüler ve
cevabı bulduklarını da Kasım 1954’te “The IBM Mathematical FORmula TRANslating
System : Fortran” isimli raporla tüm dünyaya gösterdiler. Bu yönüyle Fortran’ın
programlama dilleri arasında bir kilometre taşı olduğu söylenebilir. Zira
derleyici kavramını yazılım dünyasına kazandırmış ve kendisinden sonra ortaya
çıkan programlama dilleri de bunu kullanmışlardır.
1959 yılları..
Cobol, yoksa iş dünyasının kahramanı mı olacak..?
COBOL
(COmmon Business Oriented Language), komplike iş uygulamaları ile ilgili
program yazmaya uygun bilgisayar programlama dili. Ticaret alanı ve özellikle
iş yerlerinin yönetimiyle ilgili konularda, tüm dünyada kullanılmak üzere
hazırlandı. US savunma bakanlığı kuruluşu olan CODASYL ile çeşitli bilgisayar
imalatçıları ve bilgi işlem cihazları kullanıcıları tarafından
geliştirilmiştir. ISAM yapısına izin veren sınırlı sayıdaki dilden biridir.
Sayı tipi sınırsızdır.
COBOL
dili, atası FORTRAN'ın iyi yanlarını almıştır, tamamen ilkel (native) bir
dildir. Gerçekte, FORTRAN soyundan gelen öteki dillerle karşılaştırıldığında,
bazı işlemleri İngilizce ifade etmekten başka kolaylığı yoktur.
FORTRAN
soyundan gelen öteki dillerle karşılaştırıldığında bazı işlemleri İngilizce
ifade etmek gibi bir kolaylığı vardır. Örneğin COBOL herkesin bildiği X = A + B
aritmetik işlemini ADD A TO B GIVING X şeklinde ifade ederek bu yönüyle gelenekten
farklılık göstermiştir.
COBOL
(COmmon Business Orientated Language) 1959 den beri kullanılmaktadır. İş
uygulamalarına uygun bir dil olarak COBOL
1 milyondan fazla şirket tarafından kullanılmaktadır.
1969 yılları..
C dili, modern dillerin atası mı doğuyor..?
C,
AT&T labratuarlarında 70’li yılların başında Dennis
Ritchie tarafından tasarlanmış ve yazılmıştır. Ritchie o yıllarda B
adlı programlama dilinin tasarımcısı olan Ken Thompson ile birlikte UNIX işletim
sistemi üzerinde çalışıyordu. O zamanın yapısal programlama dilleri sistem
programlama açsınıdan yetersizdi. Ritchie boylece thomson tarafından tasrlanan
B diline yeni fikirler getirirek C dilinin temelerini atmış oldu. Unix işletim
sisteminin sonraki uyarlamalarında yoğun olarak C kullanılmıştır.
C
önceleri geniş kitleler tarafından tanınmıyordu. C’nin tüm dünyada tanınması ve
yıldızının parlaması 1978’de Dennis
Ritchie ve Brian Kernighan tarafından yazılan “C Programing Languages”
kitabı ile birlikte oldu. Bu kitap aynı zamanda yazılım konusunda buıgüne kadar
yazılmış en iyi eserler arasında yer almaktadır.
Önceden
yalnızca unix tabanlı sistemleri çalıştıran C kişiesel bilgisayarların 1980’li
yıllarda yaygınlaşması ile en fazla tercih edilen programlama dilleri arasına
girmiştir. Bugün hemen her tur sistemde C derleyicilerine rastlamak mümkündür.
C 1983 yılında ANSI tarafından standardize edildikten sonra yuksek oranda taşınabilir
bir sistem programlama dili olmuştur. Günümüzde neredeyse tüm işletim
sistemlerinin (Microsoft Windows, GNU/Linux,
*BSD, Minix) yapımında %95'
lere varan oranda kullanılmış, halen daha sistem, sürücü yazılımı, işletim
sistemi modülleri ve hız gereken heryerde kullanılan oldukça yaygın bir dildir.
1979 yılları..
C++, C dili + 1 de ne..?
Bu
yıllar nesne yönelimli programlamanın ihtiyacının iyice hissedildiği yıllardı.Var
olan programlama dilleri günlük hayatın modellenmesi konusunda yetersizdi ve bu durum programların önündeki en büyük
engellerdendi.Gerçi 1960’larda Simula ve ardından Smalltalk programlama dillleri Nesne Yönelimli Programlama Tekniğini bünyelerine katmışlardı fakat yazılım dünyası
bu konuda daha yolun başındaydı, programlama dilleri hala bir çok beklentinin
gerisinde kalıyordu.
C
programlama dilinden esinlenen C++, tam da bu eksikliğin giderilmesi konusunda
çözüm arayışlarına girmiş ve başarılı da olmuştur. Ve bu yönüyle C++ programcılık tarihinde bir
kilometre taşıdır. İlk ortaya çıktığında OOP tekniğini de yanına alarak “C with
classes”(Sınıflarla C) adıyla kendini göstermiştir.1983 yılında ise ismi C++
olarak değiştirilmiştir.
Tekrar
söylemekte yarar var, C++ dilinin C dilinden en önemli farkı Nesne Yönelimli
Programlama’ya destek veriyor olmasıdır.
1990 yılları..
Java, kettle’ımın içindeki program da mı Java..?
James
Gosling tarafından geliştirilen bir programlama dilidir ve 1995 yılında Sun
Microsystems'in çekirdek bileşeni olarak piyasaya sürülmüştür.Bu dil C ve
C++'dan birçok sözdizim türetmesine rağmen bu türevler daha basit nesne modeli
ve daha az düşük level olanaklar içerir. Java uygulamaları bilgisayar
mimarisine bağlı olmadan herhangi bir Java Virtual Machine(JVM)'de çalışabilen
tipik bytecode(sınıf dosyası)dır.
Java
ilk çıktığında daha çok küçük cihazlarda kullanılmak için tasarlanmış ortak bir
düzlem dili olarak düşünülmüştü. Ancak düzlem bağımsızlığı özelliği ve tekbiçim
kütüphane desteği C ve C++'tan çok
daha üstün ve güvenli bir yazılım geliştirme ve işletme ortamı sunduğundan,
hemen her yerde kullanılmaya başlanmıştır. Şu anda özellikle kurumsal alanda ve
mobil cihazlarda son derece popüler olan Java özellikle J2SE 1.4 ve 5 sürümü
ile masaüstü uygulamalarda da yaygınlaşmaya başlamıştır.
Java
platform bağımsız olması yönüyle yazılım dünyasında bir kilometre taşıdır.
Nasıl mı çalışır? Şöyle ki Java programcısının yazdığı kod bir Java derleyicisi
ile derlenir. Sonuçta 'bytecode' adı verilen bir tür makine kodu ortaya çıkar.
Düzlem bağımsızlığını sağlayan da bytecode'dur. Çünkü bir kere bytecode
oluştuktan sonra yazılım sanal makine içeren tüm işletim sistemlerinde
çalışabilir.
2000 yılları..
Artık hayatımızda C# var.
C#;
C, C++ ve Java’dan türeyen güçlü , basit, esnek, tip güvenli, modern bir
dildir. .NET için Microsoft tarafından geliştirilmiş olup programlama alanında
en popüler üç dilin, C, C++ ve Java’nın, iyi özelliklerini alıp bu dillerin
tehlikeli olabilecek özelliklerini dışarıda bırakmıştır ve yaklaşık olarak 40
dilin desteklendiği .NET platformunun harika çocuğu olarak adlandırılan bir
dildir.
Gelin
işin biraz da magazin yönünde duralım ve C#’ın nasıl ortaya çıktığına bakalım.
90’lı
yıllarda Java programlama dilinin platform bağımsız oluşu ve OOP desteği
sayesinde piyasadaki pazar payı iyice artmaktadır. Bu durum Microsoft’u yeni
arayışlara itmiş ve Java’nın karşısına çıkaracak güçlü bir aktör bulma uğraşı
içine sokmuştur.
Microsoft,
o dönemler kendisine bir kurtarıcı ararken Borland firmasında Delphi’nin asıl
mimarı olan ve yazılım dünyasının en yetenekli coder’ları arasında gösterilen Anders
Hejlsberg’i rekor bir miktar ile transfer eder, aynı zamanda bu yıllar içinde
Microsoft, Borland firmasından yaklaşık olarak 35 kilit çalışanı da bünyesine
katmayı başarır. Yalnız bu durum Microsoft ile Borland firmasının mahkemelik
olmasına neden olur. İki yıl süren dava sonucunda 1997 yılında iki şirket aralarında
yaptıkları ayrıntıları kamuoyuna yansımayan bir anlaşma ile davadan vazgeçerler.
Sonuç
olarak Microsoft, geçen bu zor süreçlerin ardından Java’nın karşısına yenilmesi
güç bir rakip olan .NET ile birlikte, .NET’in prensi olan C#’ı çıkartmış ve yazılım
dünyasında farklı bir devrim yapmıştır.
Günümüzde
ise C#, yeni nesil iş uygulamalarının mimarı olan bir dil haline gelmiştir.
Böylece geldik günümüz dünyasına, zamandaki
bu seyahatinizin zevkli geçtiğini umut ediyorum..
Bir başka yazıda görüşmek
dileğiyle, hoşçakalın..
2 yorum:
Ellerine sağlık Ertuğrul. Gerçekten harika bir yazı olmuş. Tek kelime ile anlatacak olursa mükemmel çok yakışan bir tanımlama olacaktır. Bir sonraki yazını merakla bekliyorum. İbrahim KILIÇ
Teşekkür ederim İbrahim, yorumun beni çok mutlu etti.
Yorum Gönder