C ve Unix Tarihi | e-bergi
Bu sayımızda sizlere “Programcının Dili” olarak bilinen, verimlilik konusunda assembly diller ile rekabet eden, oldukça fazla sayıda ifade ve denetim komutları bulunduran, güçlü veri yapılarına sahip olan ve kullanıcıya sunduğu özgürlükler nedeniyle sınırlarının belirsiz olduğunu söyleyebileceğimiz C dilinin ve bugün sayısız kişisel bilgisayar ve sunucuya can veren Linux işletim sisteminin ve hatta cebinizdeki telefonun Android işletim sisteminin de atası olarak kabul edilen Unix'in günümüzdeki haline gelinceye kadar geçtiği aşamalardan bahsetmeye çalışacağım. Yazımın sonlarına doğru Richard P. Gabriel'in “Tüm zamanların en yaygın bilgisayar virüsleri: UNIX ve C” derken ne kadar haklı olduğunu anlamış olacağız:)
Hazırsanız geçmişin derinliklerine uzanan yolculuğumuz başlasın. Yine de başlamadan uyarmakta fayda var, söz konusu derinlik ilk çağlara uzanıyor :)
Tarihin ilk çağlarında insanoğlu doğaya korkuyla yaklaştı. Sonra bu korkuyu geride bırakan bir dürtüyle olan biteni merak etmeye, düşünmeye, araştırmaya ve en önemlisi sorgulamaya başladı. Sonra doğaya hükmedebileceğini anladığı andan itibaren sınırsız hayal gücünün etkisiyle, bu amaca hizmet edecek araçları üretmeye koyuldu. Önce kendi konuşma dilini, sayıları, yazıyı ve makinayı yarattı. Ardından bunların ışığında insan zekâsının somut mucizesi, bilgisayarı yarattı. Önce günümüzün mükemmel işletim sistemlerinin atası olan, kart okuyucudan gelen sinyali algılayıp makina koduna çeviren bir program vardı. Daha sonra bu programın getirdiği kolaylığı yeterli bulmayan programcılar tarafından, okunabilirliği olan programlar yazılmasını sağlayan ASSEMBLER yaratıldı fakat assembler dilinin evrensel olmaması, yani makinadan makinaya farklılık göstermesi daha gelişmiş bir yöntem bulma çabalarını beraberinde getirdi. Böylece her makina için program yazılabilmesine olanak sağlayan bir dil olan Fortran geliştirildi. Fortran'ın her soruna çare olmaması yeni bir adım atılması gereğini doğurdu. Cobol...Yanlış bir adımdı. Dijkstra'nın dediği gibi, “Fortran bir çocukluk hastalığıydı, Cobol ise bir afet oldu.” Sözlü bir dil yaratma konusunda aşırıya kaçılmıştı. Cobol'un işlemleri İngilizce ifade etmekten başka kolaylığı yoktu. 60'lı yıllara gelindiğinde programlama dillerinin gelişiminde yeni bir çağa adım atıldı. Algoritmik bir biçeme sahip olan Algol60 oluşturuldu. Ne yazık ki büyük firmalar destekçi olmadığından Algol60 tutmadı. 1971 yılında İsviçre Alpler ’de ALGOL60'dan yararlanılarak oluşturulan, ondan daha güçlü, açık ve basit bir dil olan Pascal doğdu fakat o da Algol60 ile aynı kaderi paylaştı. Onun gibi kullanım açısından akademik çevrelerle sınırlı kaldı. Veee tüm bunlardan sonra 1973 yılına gelindiğinde, Denis Ritche ve Brian Kernighan'ın çabalarıyla C yaratıldı. Peki, bu çabalar hangi amaca hizmet etmek, hangi sorunlara çözüm üretmek içindi? Hangi koşullar C'nin oluşturulma sürecinde etkili olmuştu? Gelin bu sorulara hep beraber cevap arayalım.
Şunu belirtmekte fayda var ki C programlama dili ile Unix işletim sistemi doğrudan ilişkilidir. C'nin halkça tutulması Unix'ten gelmektedir. Çünkü C ilk olarak Unix dünyasının programlama dili olarak ortaya çıkmıştır. Yani bu müthiş birliktelikten dolayı C'nin tarihi serüveninden bahsederken, Unix'inkini de araya sıkıştırmış olacağım ;)
Serüvenimiz 1965 yılında gerçekleştirilen Multics(Multiplexed Operating and Computing System) projesi ve Kenneth Thompson tarafından bu proje kapsamında geliştirilen Uzay Yolculuğu adlı bir bilgisayar oyunu ile başlıyor. Multics projesinde amaç, bir ilki başarmak, çoklu kullanıcı destekleyen bir işletim sistemi tasarlayıp hayata geçirerek eş zamanlı veri paylaşımını sağlayabilmekti. Projede MIT, Bell Laboratuvarları (AT&T Bell Labs) ve GE gibi büyük şirketler yer almıştı. Ancak projenin ilerleyen aşamalarda karmaşık bir hal almaya başlaması ve o günlerdeki donanım kapasitesinin bu proje için yeterli olmadığının anlaşılması üzerine 1969 yılında Bell Laboratuvarları Multics projesinden çekilme kararı aldı. Bu karardan sonra Multics projesinde yer almış ve Bell Laboratuvarları’nın bir çalışanı olan Kenneth Thompson, proje kapsamında geliştirdiği Uzay Yolculuğu adlı oyunu tekrar oynayabilmek için yeni bir bilgisayar aramaya başladı. Bell Laboratuvarları’nda bir köşede kalmış DEC PDP7 tipinde bir bilgisayar buldu. Maalesef oyunu PDP7'ye yüklemeye çalıştığında işler istediği gibi gitmedi. Çünkü Uzay Yolculuğu adlı bilgisayar oyunu Multics projesi kapsamındaki bir ana bilgisayarda kullanılabilecek şekilde tasarlanmıştı ve şimdi PDP7 gibi farklı bir işletim sistemine sahip olan bu küçük bilgisayarda normal şartlar altında çalışmayacaktı. Sorunun iki çözüm yolu vardı. Ya oyun PDP7 için yeniden programlanacak, ya da PDP7'nin işletim sisteminde birtakım değişikliklere gidilecekti. Kenneth Thomson ikinci yolu seçti ve oyunu PDP7’de çalıştıracak yardımcı sistemleri geliştirmeye başladı. Thomson bu yolda bir dizi yardımcı programın yanında, hiyerarşik bir dosya depolama sistemi ve merkezi yönetici programı da geliştirdi. Böylece oyunu, kodunda tek bir satır değişikliğe gitmeden çalıştırmayı başardı. Başlangıçta Thomson'ın tek isteği kendi tasarladığı oyunu tekrar oynayabilmekti ve böylesine masum bir amaçla çıktığı yolda, karmaşıklığı ile ünlü MULTICS gibi devasa birçok kullanıcılı sistem yerine, oldukça sınırlı kapasiteye sahip bir bilgisayar üzerinde, küçük bir tek kullanıcılı işletim sistemi oluşturduğunu anlaması uzun sürmedi. Peki, nedir bahsedilen bu tek kullanıcılı ve çok kullanıcılı işletim sistemi diye soracak olursanız, bazı bilgisayarlar tek kullanıcılı işletim sistemine sahiptirler. Bunun anlamı o bilgisayarı aynı anda tek bir kullanıcının kullanabileceği şeklindedir. Örnek olarak Microsoft’un Windows’tan önceki işletim sistemi olan DOS'u verebiliriz. Bu işletim sistemi tek bir kullanıcı destekli olduğundan, kendinizle baş başaydınız. Peki, bunun ne zararı vardı? Şöyle ki tek kullanıcılı bir işletim sistemi yerine çok kullanıcılı (multi-user) bir işletim sistemine sahip olmanız bilgisayarınızı daha verimli kullanabilmeniz açısından önemlidir. Unix gibi güçlü işletim sistemleri aynı anda birden çok kullanıcının sistemde oturum açmasına izin verir ve her kullanıcının aynı anda birden çok işi yapmasını sağlar. Thomson'ın yarattığı bu tek kullanıcılı işletim sisteminin isim babası ise, o sıralarda Bell Laboratuvarları'nda çalışan bir başka bilgisayar uzmanı Brian Kernighan. Çok kullanıcılı bir sistemden tek kullanıcılı sisteme geçilmiş olması Kernighan'ın bu yeni sistemi Unics olarak adlandırma önerisini beraberinde getirdi. Sizin de fark edeceğiniz gibi Brian Kernighan'ın bu önerisi küçük bir kelime oyununa dayanıyordu (multi(çoklu) X uni(tekli)). Ancak, Thompson'ın bu yeni işletim sisteminin program geliştirme ortamı içerisindeki dosya ismi kısıtlamaları, Unics ismini dört karaktere indirmesine neden olmuş ve bugünün iş dünyasında kullanılan sunucuların çoğunda standart haline gelmiş Unix'in ilk uyarlamasının doğuşu bu şekilde gerçekleşmiştir.
Unix'in bu ilk sürümü assembler ile yazılmış olup, sadece yazıldığı tür makinalarda çalışabiliyordu. Bu ilk sürüm Unix'ten sonra yeni bir işletim sistemi geliştirmiş olmanın heyecanı ve bu işletim sistemini geliştirme isteğiyle Ken Thompson ve Dennis Ritchie, Bell Laboratuvarları’ndan PDP’nin en yeni modelinin alınmasını talep ettiler. İsteklerinin Bell Laboratuvarları tarafından kabul edilmesi gecikmedi. Kısa bir süre sonra Thompson ve Ritchie yeni alınan bir PDP11(16 bit) üzerinde Unix’in bir sonraki sürümünü geliştirme çalışmalarına başladılar ve bunu yaparken amaçları Unix'in tek bir donanıma bağlı kalmayıp birçok bilgisayar sisteminde çalışabilir olmasını sağlamaktı. Bunu yapabilmenin tek yolu da yeni bir programlama dilinin geliştirilmesiydi. 1969 - 1973 yılları arasında bir süre sonra C olarak anılacak olan, kendilerinin geliştirdiği ayrıntılarından daha sonra bahsedeceğim, B adlı programlama dilini kullandılar. 1973 yılına gelinceye kadar, tasarlanan bu ilk sürüm Unix'te çalışmalar devam etti ve bu yılın sonlarına doğru önemli bir gelişme oldu. Her ne kadar Steve Jobs kadar medyatik olmasa da en az onun kadar önemli bir isim olan Dennis Ritchie ’nin tüm uzmanlığı ve Thomson'ın üstün bilgilerinin bir araya gelmesiyle Unix’in C platformunda yeniden yazılması, 5. sürüm Unix'i programcılık dünyasıyla buluşturdu. 2011 yılında aramızdan ayrılan, Iphone, Ipad gibi çığır açan birçok elektronik aletin yapımını mümkün kılan bu işletim sisteminin günümüzdeki haline gelmesinde büyük rol oynayan Dennis Ritche'yi yeri gelmişken analım istiyorum. Hiç şüphesiz katkılarıyla bilgisayar dünyasını ölümsüzlüğe taşıyan Ritchie, Thomson ile birlikte Unix çekirdeğini C ile tekrar kodlayarak, Unix’in 5. sürümünü oluşturmuş, böylece Unix kurulduğu her sistemde çalışabilen bir işletim sistemi haline gelmişti. 1973-1974 yıllarında Bell Laboratuvarları Unix’ in kaynak kodunu üniversiteler ve ticari şirketlere açmaya başladı. Bununla birlikte, Unix ‘in gelişme süreci hız kazanmış oldu. Unix'in, kamuoyuna resmen duyurulmasıyla o dönemde Kaliforniya Üniversitesi, Berkeley’de bulunan Prof. Dr. Bob Fabry’nin dikkatini çekmesi bir oldu. Üniversitenin Bilgisayar Mühendisliği, Matematik ve İstatistik bölümlerinin bir araya gelmesiyle o zamanlar piyasadaki en modern donanımlardan biri olan PDP11/45 temin edilerek Ken Thompson’dan Unix’in bir kopyası istendi. Her ne kadar işletim sisteminin yüklenmesinde ortaya bazı problemler çıksa da, Ken Thompson’ın yardımlarıyla aşıldı. Daha sonra Unix öğrencilerin kullanımına açıldı ve bu yeni nesil işletim sistemi çok kısa sürede aralarında popülerlik kazandı. Hemen ardından bugünkü PostgreSQL gibi ünlü bir veri tabanı sisteminin temelini oluşturan, o dönemde sadece bir araştırma projesi olan Ingres’in de, Unix işletim sistemini temel alacak şekilde uyarlanma süreci başladı. 1975’te Ken Thompson'ın misafir öğretim üyesi olarak Kaliforniya Üniversitesi’ne gelmesi öğrencilerin Unix’e olan ilgisini daha da artırdı ve işletim sisteminin kodu üzerinde iyileştirme ve bazı uyum çalışmalarına başlandı. Öğrencilerin bu çalışmaları, işletim sistemine büyük zenginlikler kattı ve ortaya bugün bile programcılar tarafından kullanılmakta olan vi editörü gibi önemli fonksiyonlar konuldu. (İlk başta karmaşık gibi görünse de hızı ve verimi ile her kullanıcının işini büyük ölçüde kolaylaştıran bu editör, bellekte çok az yer kaplaması sebebiyle özellikle düşük kapasiteli sistemlerde büyük bir güvenilirlikle kullanılması ile günümüzde bile ünlüdür). Unix’in zenginleştirilmiş bu hali 1977’den itibaren çeşitli aralıklarla Berkeley Yazılım Dağıtım (BSD) adı altında yayımlanmaya başlandı. BSD'yi daha iyi anlamak açısından, Bell Laboratuvarları'nın Unix'i için bir eklentiler zinciridir, diyebiliriz.
1978 yılı Unix için çok önemli bir yıl oldu. Çünkü İşletim Sistemi 7. sürümüyle birlikte gelişimini artık iki farklı çizgide gerçekleştirecekti: Ücretsiz BSD ve ücretli Sistem V. Fakat Unix’in kendini aşması ve iki kişilik dev bir kadroyla başlayan bu devrimin bugünkü halini alması asıl olarak internet sayesinde olacaktır. Peki, bu kadar büyük bir ağın başlangıcı nasıl ortaya çıktı? Diye soracak olursak, şüphesiz cevap ARPANET (Gelişmiş Araştırma Projeleri Dairesi Ağı). İlk olarak Amerikan ordusunun birimleri arasında iletişimi sağlamak için düşünülmüş olan ARPANE, ilk kurulduğunda ağa bağlı bilgisayarlar farklı donanım yapısına sahiptiler, bu yüzden birbirleriyle iletişimlerinde ciddi problemler yaşanıyordu. Amerikan hükümeti bu sorunun mevcut bilgisayarların yeni bilgisayarlarla değiştirilerek değil, işletim sistemlerinin değiştirilerek çözülmesini talep ediyordu. Bu amaçla Kaliforniya Üniversite'sindeki Unix BSD sürümü sil baştan yazıldı, lisanslama kuralları büyük ölçüde serbestleştirildi, e-posta sistemi ve TCP/IP gibi bugün de hayli etkili bir biçimde kullanılan ağ protokolleri geliştirildi. Böylece Unix, ARPANET'e bağlanmak isteyen bilgisayarların yeni işletim sistemi oldu. Böylece Unix BSD sürümünün dünyayı fethetme sürecindeki en önemli aşamalardan biri kaydedildi. Buna ek olarak Unix BSD sürümünün geliştirilmesi ARPANET'in hayata geçirilmesini mümkün kılmakla kalmayacak, aynı zamanda Apple'ın gelmiş geçmiş en ünlü işletim sistemlerinden biri olan Mac OS X ile sonraki sürümleri ve Linux için de ilham kaynağı olacaktı. Bahsettiğim gibi 1978 yılında Unix'in gelişimini iki farklı çizgide gerçekleştirmesi kararı alınmıştı. Torvalds ve arkadaşları BSD sürümü üzerinde çalışarak 1991 yılında açık kaynak kodlu, özgür ve ücretsiz bir işletim sistemi çekirdeği olan Linux’u geliştirdiler. Bugün kullandığımız Ubuntu’dan Chrome OS’ye, Android’den MeeGo’ya kadar pek çok işletim sistemi Linux çekirdeğini temel almaktadır. Özellikle mobil alanda Linux’un başarıya ulaştığını söylemek mümkün.
Yukarıda belirttiğim gibi, başlangıçta Unix, PDP7’de B adlı bir programlama dilinin yardımıyla geliştirilmişti. "B" adının kökeni konusunda söylentiler değişik: Ken Thomson B'nin BCPL programlama dilinden türediğini söylemektedir, ancak Thompson eşi Bonnie'nin onuruna adını Bon koyduğu bir programlama dili de geliştirmiştir. Yani isim konusu hala yanıtını bulabilmiş değil. B'nin oluşumuna kısaca bakarsak, MIT’de (Massachusetts Institute of Technology) görevli İngiliz bilim adamı Martin Richards tarafından geliştirilen BCPL(Basic Combined Programming Language) adlı programlama dilinin örnek alınmasıyla Thompson tarafından 1970 yılında geliştirilmiştir. PDP11 üzerindeki yeni çalışmalar sırasında “B”, aynı BCPL gibi donanıma hayli yakın çalışan, düşük düzeyli bir sistem programlama dili olmasına karşın, giderek yetersiz kalmaya başladı. Kısa bir süre sonra bunun başlıca sebeplerinden birinin B‘nin yalnızca tek bir veri tipine sahip olması ve bu nedenle PDP7‘ye göre hayli modern bir donanım olan PDP11‘e tam olarak uyum sağlayamaması olduğu anlaşıldı. Bunun üzerine B, Unix‘i geliştirme çalışmalarına paralel olarak, Ritchie‘nin öncülüğünde yeniden gözden geçirilip, geliştirilmeye başlandı. Bu çalışmalar sırasında(1971-1973) B, söz dizim yapısı korunarak, ancak farklı veri tiplerine ve birçok başka yapısal değişikliğe izin verecek şekilde yeniden tasarlandı. Rithcie tarafından ortaya çıkarılan bu yeni programlama dilinin ilk sürümü ilk önce “NewB” daha sonra “C” olarak adlandırıldı ve 1973‘de tamamlanarak o zamanki Unix çekirdeğinin yeniden programlanmasında kullanılmaya başlandı. O yıl içerisinde Ritchie ve Thompson C’yi kullanarak Unix’i yeniden yazdılar. Böylece Unix, çekirdeği bir assembly dili ile yazılmayan ilk işletim sistemlerinden biri oldu.
Yukarıda bahsettiğim gibi C, popüler bir işletim sistemi olan Unix’in temel dilidir. Bu da, en azından bu işletim sisteminde, bu dili vazgeçilmez kılmaktadır. Buna rağmen, C başka sistemlerde de kullanılmaya başlanmıştır ve taşınabilme özelliğinden dolayı, bir sistem için yazılmış programlar kolayca başka sistemlere de aktarılabilmekte ve orada bazı ufak tefek değişikliklerden sonra derlenip doğru bir şekilde çalıştırılabilmektedir. Programcının makine bağımlılıklarını bir tarafa bırakması ve gereksinim duyduğunda programı yeni ortamlara kolayca uyarlayabilmesinin dilin temel amaçlarından biri olduğunu göz önünde bulundurursak, C ön işlemcisi bu konuda önemli bir rol üstlenmektedir.
1978'de Ritchie ve Brian Kernighan C Programlama Dili adlı (The C Programming Language) kitaplarının ilk baskısını yaptılar. C programcıları tarafından "K&R" olarak bilinen bu kitap, C dilinin gayri resmi standardı olarak kullanıldı. Günümüzde "K&R C" olarak bilinen kitap C ’yi ele alan belki de en ince ama aynı zamanda en kapsamlı kaynak olarak biliniyor. 1983’lerde Unix, taşınabilir özelliği olan -ki bu da belirli bir sistem için yazılmış olan bir C programının başka bir sisteme aktarıldığında orada başarılı bir şekilde derlenip yürütülebileceği anlamına gelir- C dili sayesinde, çeşitli hedef donanımlara uygun olarak tekrar derlenebilen kodlardan oluşan taşınabilir bir işletim sistemine dönüştü. Ve yine bu yılda Ritchie ve Ken Thompson Generic İşletim Sistemleri Teorisi ve özellikle Unix işletim sistemini yaşama geçirmelerinden dolayı beraber Turing Ödülü’nü aldılar. Bir diğer ödülleri 1998 Ulusal Teknoloji Madalyası’nı da her ne kadar biraz geç de olsa, 27 Nisan 1999’da bilgisayar donanımlarında ve yazılımlarında büyük gelişmeler sağlatan, ABD’nin bilgi çağına öncülük etmesini sağlayan Unix işletim sistemine ve C programlama diline yardımlarından dolayı Bill Clinton’dan aldılar.
1970'li yıllarda C programcılarının sayısı azdı ve bunlardan çoğu Unix kullanıcılarıydı ama 80'li yıllar gelince C'nin kullanımı Unix sınırlarını aştı ve farklı işletim sistemlerinde çalışan derleyiciler piyasaya çıktı, C dili de IBM PC'lerde yoğun olarak kullanılmaya başladı. C'nin halk tarafından tutulması artarken, bu başarı bazı problemleri de beraberinde getirdi. Derleyici yazan kişiler, referans olarak Ritchie ve Kernighan'ın kitabını esas alıyorlardı ama söz konusu kitapta bazı noktalar çok da detaylı bir biçimde açıklanmamıştı. Özellikle hangi noktaların C dilinin, hangi noktaların ise Unix işletim sisteminin bir özelliği olduğu o kadar açık olmadığı için birtakım karışıklıklar yaşanıyor ve derleyici yazanların ürünlerinde de farklılıklar ortaya çıkıyordu. Ayrıca kitabın yayınlanmasından sonra da dilde bir takım geliştirmeler ve iyileştirmeler yapıldığı için, birbirinden çok farklı derleyiciler piyasada kullanılmaya başlanmıştı. Tüm bunlar C dilinin standardizasyonunu zorunlu bir hale getirmişti. C'nin standardizasyon çalışmaları 1983 yılında ANSI (American National Standards Institute) gözetiminde ve desteğinde başladı. Yapılan birçok değişiklikten sonra standardizasyon çalışmaları 1988 yılında sona erdi ve 1989 yılının aralık ayında ANSI C standardı resmi olarak onaylandı. Yine aynı yılda C Programlama Dili adlı kitabın ikinci baskısı yapıldı. Ve tüm bu standardizasyon çalışmalarının ışığında yenilenen bu baskı bugün bile C’yi en baştan öğrenmek isteyenlerin ve profesyonel C programcılarının bir numaralı başvuru kaynağı olarak güncelliğini koruyor.
Bir dilin verimliliği, hızlı fakat fazla yer kaplamayan yazılımlar geliştirmeye olanak sağlaması ile ölçülür. C dili bir Assembler derleyicisinin sağladığı esneklik ve gücü sağlarken üst düzey bir programlama dilinin sağladığı kolay anlaşılabilirlik özelliğini de sunmaktadır. Ayrıca C dili orta seviyeli bir programlama dilidir. Orta seviye, olumsuz bir anlama sahip değildir. Bu, C' nin Basic ya da Pascal gibi üst seviyeli bir dilden daha zayıf, kullanımı zor ya da az gelişmiş olduğu anlamına gelmez. Yine bu C' nin bir bilgisayarın okuyabildiği gerçek makine kodunun sembolik ifadesi olan Assembler dili gibi düşük seviyeli bir dile benzediği anlamına da gelmez. C orta seviyeli bir dildir, çünkü yüksek seviyeli dillerin unsurlarıyla Assembler'in fonksiyonlarını birleştirir. Yani C dili yüksek seviyeli dillerin, kontrol deyimleri, veri yapıları gibi avantajlarını bünyesinde barındırmakla kalmıyor, aynı zamanda bitsel operatörler gibi makine kodu deyimlerini yansıtan operatörlere de ev sahipliği yapıyor. Yani bu dil hem makinaya yakın hem de insan algılamasına. Zaten çok tercih edilmesinin en önemli nedenlerinden biri de bu. Ayrıca verimli, basit, fakat güçlü yapısından ve bu dilde geliştirilen uygulamaların taşınabilir olmasından dolayı da yaygın olarak kullanılmakta olduğunu söyleyebiliriz. C ile bilgisayarınıza bir sistem yazmaktan bir oyun yazmaya veya yazıcı kontrolü yapmaya kadar her türlü işlemi gerçekleştirebilirsiniz.
Gelecekte de bilişim dünyasının iki kilit işletim sistemi olacak olan UNIX’in ve Linux’un geliştirilmesine tıpkı geçmişte olduğu gibi yine C ile devam edileceği kesindir. C’nin gelecek dönemlerde de önemini kaybetmeyeceği, aksine Unix, Linux gibi işletim sistemlerinin kullanımının yaygınlaşmasıyla daha da önem kazanacağı açıktır.
Bu uzun yazının da bir sonu var elbette:) Sona yaklaşırken C dilini öğrenmek isteyen okuyucularımıza bu dilin yapı itibariyle eğitimi zor olan bir dil olduğunu söylememiz yanlış olmaz. Öğrenebilmek için diğer dillerden daha fazla çaba gerekir. Yine de oldukça kullanışlı olması ve kullanıcıya sunduğu özgürlük imkânları ile adından yıllarca bahsettirmiş, bilgisayar programcılığının temel dillerinden biridir. Öğrenilme süreci zorluklarla dolu olsa ve çok stresli geçse de insanoğlunun aklı, korkusu, merakı, yaratma gücü var oldukça zor olan şeylerden bahsetmek pek de doğru olmuyor. Yani sizler için gerekli olan tek şey, birazcık sabır! ;)