Merhabalar bu sitedeki ilk yazım olduğu için hatalar olması muhtemeldir şimdiden affınıza sığınırım diyerek başlayım yazıma. Bu yazıda C programlama dilini elimden geldiğince anlatmaya çalışacağım.
Yazının devamı için öncelikle genel olarak bilgisayarla ilgili birkaç bilgi vermek istiyorum. Bilgisayar temelde işlemci(CPU) ve bellek(ram) olmak üzere iki parçadan oluşur. İşlemcinin görevi aslında adından da anlaşılabileceği gibi ona söylenen işlemleri yapmak. İşlemci kendisine verilen işlemleri mantık ve aritmetik operatörler kullanarak tamamlar, tabi bu işlemler gerçekten basit seviyede işlemlerdir. Bilgisayarlara günümüzdeki gücünü kazandıran şey bu basit işlemlerin üst üste binerek aldıkları kompleks formlardır. Peki bu işlemciye ne yapacağını kim söylüyor, nerden geliyor bu emirler? Bellekten, bellek bilgisayarda geçici bir hafıza görevi görür ve içindeki kod parçalarını veri otoyolları ile işlemciye aktarır. Belleğin geçici bir hafıza olduğunu söylememin sebebi bellekte bulunan bilgiler işleri bitince veya bilgisayar kapanınca silinirler işte bu yüzden hard disk ve benzeri aletlerle verilerimizi yedekliyoruz ve sadece işimiz olunca onları belleğe aktarıyoruz. Bunun bir diğer artısı da belleklerin genel olarak hard disk gibi ikincil depolama araçlarında daha pahalı olması.
Evet artık bilgisayar hakkında biraz bilgi edindiğimize göre nedir bu C, kendisi öncelikle bir programlama dilidir yani bilgisayara ondan ne istediğimizi anlatmaya yarayan bir araçtır. 1972 yılında piyasaya çıkan C, UNIX adlı işletim sistemini geliştirebilmek için Ken Thompson ve Dennis Ritche tarafından bir başka programlama dili olan B’den uyarlanmıştır. Bu kadar vikipedik bilgi sonrası nedir bu C’nin olayı? C derlenen bir dildir yani, malumunuz bilgisayarlarımız a’dan b’den anlamaz, onlar 1 ve 0’larla çalışırlar. Derlenen diller derleyici denen programlar aracılığı ile 1 ve 0’lara dönüştürülürler. Bunun dışında C programcıya inanılmaz derecede özgürlük veren bir dildir. Üzerinde çalıştığınız makinede C ile neredeyse tam kontrole erişebilirsiniz. Bilgisayarın belleğine verdiği geniş ve kesin kontrolde ayrı bir artısıdır kendisinin. Bu özelliklerini yanı sıra asıl C optimizedir, hızlıdır. Eğer sizin ihtiyacınız hız ise bakmanız gereken dil C’den başkası değildir. C’nin bu hız onu işletim sistemi, savunma sistemleri, araba, uçak yazılımları gibi arka plan programlarının vaz geçilmezi yapar. Günümüzde Windows, Mac gibi çoğu işletim sistemi C dili temel alınarak yazılmıştır zaten geliştirmek için tasarlandığı UNIX de günümüzün Mac’lerinin temelini atmıştır. Peki hızından başka nedir bu C’nin artısı? Esnekliğidir. Eğer gerekli vakti harcamayı göze alırsanız her şeyi yazabilirsiniz C ile. C’nin başka bir özelliği de veri manipülasyonunda çok etkili olmasıdır, veri ile kedinin fareyle oynadığı gibi oynayabilirsiniz. Günümüzde büyük miktarlarda veri ile uğraşan sunucu denen büyük bilgisayarların çoğu yine C tabanlı LINUX işletim sistemini kullanmaktadır.
Peki yok mu bu C’nin kötü yanları? C çok basit bir dil olmasından dolayı esnektir ama bu esnekliğin bedeli sizin yapmanız gereken iş miktarını arttırmasıdır yani eğer komplike bir iş yapıyorsanız ve C’nin kendi içinde olmayan özelliklere ihtiyacınız varsa onları gidip paşa paşa kendiniz yazacaksınız. C’nin getirdiği özgürlüğünde bazı sıkıntıları var. Örneğin daha önce söylediğim geniş bellek ve veri manipülasyonundan faydalanayım derken bir hata yaparsanız kendinizi güzel ve derin bir çukurun içinde bulabilirsiniz, hatta siz o çukura girdikten sonra bide o yaptığınız hataların sonucu olan bozuk verileri de çukuru doldurup taşırana kadar dökerler. C’nin bir diğer eksisi Nesne Tabanlı Programlama denen ve günümüz programcılığının temelinde olan bir prensibe pek de yatkın olmayışıdır.
İyisiyle kötüsüyle C budur ancak C’nin programlama dillerine kattığı birkaç faydayı da söylemeden olmaz. Kendisi birçok dile temel olup az öncede bahsettiğim Nesne Tabanlı Programlamaya önemli katkılar sağlamıştır. Bu temel oluşturduğu diller arasında ünlü C++, C#, java, javascript ve Python gibi bir sürü dilde bulunmaktadır. C içinde barındırdığı sayısız kütüphane ile kendisinden sonra gelen dillere inanılmaz bir kaynaklık yapmıştır. Ayrıca kendisi Php gibi web için önemli dillere de etkide bulunmuştur.
Umut Çiloğlu

Yorum bırakın