Bilgisayar Programcılığı ve Programlama Dilleri

Mert Meral

images11.jpgBir bilgisayar mühendisi olarak bu yazımda size bilgisayar programcılığının nasıl bir şey olduğunu, nasıl yapıldığını ve bu olayın nelerden oluştuğunu anlatacağım. Google’da arattığım üzere bu konuda verilen bilgiler biraz resmiyete kaçmış, ben biraz daha bu işlerle ilgilenmek isteyenler için daha samimi bir yazı yazacağımki hevese gelsinler. Ülkemizin programcılık sektörüne gerçekten büyük ihtiyaç duyduğuna inanıyorum, bu nedenle programcılık ile ilgili bu yazıyla hevese getirebileceğim birileri olacaksa ne mutlu bana :) .

Yazımın girişinde ülkemizin programcılığa ihtiyaç duyduğunu söylemiştim. Nedeni ise programcılığın müthiş bir sermaye gerektirmemesidir. Son zamanlarda bu konuda büyük atılım yapmış olan Hindistan’ı duymuşsunuzdur. Hükümet bu konuda tam destek verince insanların çoğu programlamaya yöneldi ve sonuç olarak sadece yeterli hızda bir bilgisayarla yapılan programların satışıyla ve kendileri içinde kullanışıyla ekonomide büyük bir atılım yapmış oldular. Hükümetin yaptığı tek şey eğitim konusunda destek vermekti, dediğim gibi programlama olayı büyük paralar gerektirmiyor, sizin hayal gücünüz, sabrınız ve çok çalışmanızla ortaya çıkıyor programlar, bunlarda para gerektirmiyor tabiki. Türkiye’nin de böyle bir modele ihtiyaç duyduğunu düşünüyorum.

Programcılık anlatalım dedik gene uçtuk ülke ekonomisine falan, neyse devam edelim. Öncelikle programlama, programcılık nedir onu bir anlamaya çalışalım. Bilgisayarlar ve programcılık konusuyla ilgilenmeye başladığınıza göre(nerden anladım acaba?) 1 ve 0 olayını duymuşsunuzdur illaki. 1 ve 0 dan kasıt 1 durumunun ON tabiri(iletim durumu) ve 0 durumunun OFF(kesim durumu) dur. Assembly ile ilgilenmeyeceksiniz bu kısım sizi fazla ilgilendirmeyecektir(Assembly ne demeyin birde, Google lütfen!). Programlama dilleri içerdikleri komutlarla 1 ve 0 işlemleriyle beraber donanımınızı istenen yönde çalıştıracak executable(çalıştırılabilir) programlar haline getirirler. Bir nevi sizi donanım düzeyinde yapılacak olan programlamadan kurtarırlar(düşünsenize elinizle devre kurup ordan 1 şurdan 0 verdirmeye çalıştığınızı?). Allaha şükür deyip aklımıza gelen devreleri savuşturup yolumuza devam ediyoruz. Zaten bu olay yeterince zor, bir de donanım düzeyine hiç inmeyelim.images21.jpg

Çalıştırabilir programlar deyince şu an kullandığınız her şey çalıştırılabilir programlar aslında.Muhtemelen bulunduğunuz windows bile aslında win.exe adında bir program(tabiki o kadar basit değil!). Açtığınız firefox, internet explorer, herhangi bir oyun, hepsi çalıştırılabilir programlar. Programcılık sadece çalıştırılabilir dosyalardan ibaret değil tabiki, mesela şu anekrana görüntü veren ekran kartı, kullandığınız fare, klavye, bunların hepsinin kullanılabilmesi için yazılımsal arayüz gerekir, ki bunlara sürücü(driver) denir. Bunlarda programlama dilleriyle yapılırlar, sadece mantıları çalıştırılabilir programlardan ayrıdır. Kısacası donanım tek başına yeterli değildir, onu kullanmanıza yardımcı olan her şey yazılımdır.

images3.jpgBiraz bilgi vermiş olduk. Peki bilgisayar programcılığı nasıl bir şey, yaşayan biri olarak biraz da ondan bahsedeyim. Bir kere programcılık yapmak istiyorsanız bu konuda azıcıkta olsa hevesli olmalısınız. Tabi insan hiç bilmediği bir şeyden nasıl hoşlanabilir, o da var. Programcılık biraz garip bir şey, o yüzden bütün ön yargılarınızı bırakıp bu işe girin. Çünkü insanların anlattıklarıyla pek anlaşılan bir şey değil. Bunu yaşayarak kendinizi görmelisiniz(çok mu kaptırdım kendimi ne?). Aslında ben yinede çoğu insanın hoşlanabileceği bir şey olacağını düşünüyorum. Hayal gücünüzü ve aklınızın yeteneğini kullanarak ortaya yavaş yavaş çıkardığınız şeyi gördükçe insan gerçekten bu işten zevk almaya başlıyor(bilgisayar mühendisliğinde okuyacak arkadaşlar için geçerli değil bu maalesef, çünkü oralarda gerçekten çok saçma verilen ödevler bu işin zevkini kaçırabiliyor). Programı aynı bir hamur gibi düşünün, onu yoğururken aklınız onu yoğurma gücünüz, hayal gücünüz ise onu güzel bir şeye benzetebilme olarak ön plana çıkıyor. Hamurdan sevdiğiniz kişinin bir heykelini yapmaya çalıştığınızı düşünün, programcılık biraz olsun buna benziyor. Kısaca sizde nelerin olması gerektiğine sıralarsak sabır ve konsantrasyon, neler yapmanız gerektiğini sıralarsak çalışma, çalışma ve çalışma diye sıralanabilir(gece insanı olmalısınız demişmiydim?).

Programlama dillerinde esas “algoritma”dır. Algoritma nedir dersek, algoritma programı yazmamızdaki amacı gerçekleştirmemiz için oluşturulabilecek yöntem ve mantık bütünüdür. Bir yemek yaptığınızı düşünün, bunun için gerçekleştirdiğiniz adımlar bir algoritmadır. Soğanları tencereye atmak, pembeleşinceye kadar kavrulmasını beklemek, sonra salçayı atmak, suyu atmak falan filan gibi. Ama hepsinin bir zamanı ve atılması gerekn miktarı vardır ki sizde bu bilgi olduktan sonra ellerinize ne zaman ne yapması gerektiğini beyin aracılığıyla söylersiniz ve onlarda o işi yapar. Algoritma bunun gibi bir şeydir.

Artık programlama dillerine geçiş yapmak istiyorum biraz. Geçiş yapmadan önce elektronikçi düzeyinde programcılıktan bahsetmek istiyorum. Hobi olarak çok yaygındır bu, yazıyı okuyanlardan bir çoğuda onlar olacaktır muhtemelen. Bir zamanlar ödev aracılığla pic programlamayla uğraşmıştım. Biraz sonra bahsedeceğim dillerden C kullanılarak yapılıyor bu düzeyde programcılık. Çeşitli devrelerle yapılan bu programcılık gerçekten çok zevkli, ilgilenmek isteyenler bu alanaimages4.jpg kayabilirler(özelliklede hobi olarak ilgilenmek istiyorsanız). Bu tip programcılık hakkında bir çok site var, genellikle bunlar elektronik projeler konusunda siteler. Hırsızlık alarmı, kayan yazı panosu tarzı şeyler. Özellikle kayan yazı gibi projeler yapılacağı zaman C bilginizi konuşturmalısınız, bu konuda edineceğiniz örnek kayan yazı programlarıyla bir şeyler öğrenebilirsiniz. Google’da pic programlama yazıp arattığınızda bu konuyla ilgili tonla site göreceksiniz, onların hepsine girip çıkmanızı ve projelerden birini kendi imkanınızla gerçekleştirmenizi öneririm.

Programlama dillerine geçelim artık. Piyasada bir çok programalama dili var. Amacınıza göre hizmet edecek dillerdir bunlar, bu yüzden önce hangi alanda kendinizi geliştirmeniz gerektiğine karar vermelisiniz. Diyelimki az önce bahsettiğim gibi elektronik düzeyde programcılık yapacaksınız, o zaman C dilini öğrenmelisiniz. C dili sistem programlama için birebirdir. Nedeni ise diğer dillere göre sade oluşu ve zaten sistem programlama için gerekmeyecek bir sürü kütüphane ve diğer başka yükleri beraberinde getirmiyor. Sistem programalamada esas sistem kaynaklarını en az tüketmektir, o zaman dillerden de mantık olarak sadece sistemin ihtiyaç duyacağı şeyleri verebilen bir programlama dili kullanmak en iyisi. Genel amaçlı programlar için(örnek: muhasebe programı, müşteri yönetim programı, hatta internet explorer :) ) C++ , C#, Java, Visual Basic gibi diller ön palana çıkmaktadır. Uzun zamandır programlama dillerinin birbirleriyle savaşması bilgisayar dünyasının hep konuşulan konusu olmuştur. Peki ben hangisini seçmeliyim derseniz, işte keşmekeş orda başlıyor(visual basic i kafanızdan silin, bu söylediklerim diğer üçü hakkında). Bu dillerin hepside aslında istediğinizi verecektir. Benim tavsiyem elinizde hangisinin türkçe kaynağı varsa ondan başlamanızdır.Sıfırdan işe giriyorsanız o zaman gerçekten birşey söylemek güç. Yazıyı yazarken en çok burada zorlandım zaten acaba hangisini tavsiye etsem diye ama sonunda karar verdimki tavsiye etmekle olmaycak bu iş. Bence bu konuda internette biraz araştırma yapmanız, hangisine doğru kaydığınızı görürseniz bir daha fikrinizi değiştirmeden işe koyulun derim(Şu an microsoft ve sun dan gelecek teklifleri bekliyorum, ona göre birşeyler tavsiye edebilirim :) ). Sonuçta bu dillerin hepsi istediğinizi verecektir, bu konuda fazla endişelenmenize gerek yok.

Hepsi hakkında derlediğim bir kaç bilgi var, onları bir sıralayayım bakalım:

C

C, 1970′lerin başında Ken Thompson ve Dennis Ritchie tarafından UNIX İşletim Sistemi için geliştirilmiş bir programlama dilidir. C, günümüzde neredeyse tüm işletim sistemlerinde kullanılan, dünyanın en çok kullanılan sistem programlama dilidir. Ancak, uygulama programları yazmak için de çok sık kullanılır. Yine çok kullanılan programlama dillerinden olan C++ da C’den türemiş bir dildir.

C++

C++ (okunuşu: si-plas-plas veya c-artı-artı), 1980′lerin başlarında Bjarne Stroustrup tarafından geliştirilen C’yi kapsayan ve çok paradigmalı, yaygın olarak kullanılan, genel amaçlı bir programlama dilidir. İlk olarak C With Classes (Sınıflarla C) olarak adlandırılmış, 1983 yılında ismi C++ olarak değiştirilmiştir.

Genel olarak her C programı aynı zamanda bir C++ programıdır, ancak her C++ programı bir C programı değildir. Bu durumun bazı istisnaları mevcuttur. C++’ı C’den ayıran ve C++’ın nesne yönelimli bir dil olmasına da olanak sağlayan en temel özellik, sınıflardır. Sınıflar sayesinde yeni veri türleri yaratılabilir veya varolan türlerden yenileri türetilebilir. Ayrıca polimorfizm sayesinde bir sınıf tanımıyla yazılmış kod, o sınıf türünden türetilmiş yeni sınıflarla da çalışabilir.

Java

Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kodlu, nesneye yönelik, platformdan bağımsız, yüksek performanslı, çok işlevli, yüksek seviye, adım adım işletilen (interpreted) bir dildir.

Java ilk çıktığında daha çok küçük cihazlarda kullanılmak için tasarlanmış ortak bir platform dili olarak düşünülmüştü. Ancak platform bağımsızlığı özelliği ve standart 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’nin ilk sürümü olan Java 1.0 (1995) Java Platform 1 olarak adlandırıldı ve tasarlama amaçına uygun olarak küçük boyutlu ve kısıtlı özelliklere sahipti. Daha sonra platformun gücü gözlendi ve tasarımında büyük değişiklikler ve eklemeler yapıldı. Bu büyük değişikliklerden dolayı geliştirilen yeni platforma Java Platform 2 adı verildi ama versiyon numarası 2 yapılmadı, 1.2 olarak devam etti. 2004 sonbaharında çıkan Java 5, geçen 1.2, 1.3 ve 1.4 sürümlerinin ardından en çok gelişme ve değişikliği barındıran sürüm oldu. Java SE 7 ise (kod adı: Dolphin) Sun’un üzerinde çalıştığı, Java teknolojisinin gelecekteki sürümüdür. 13 Kasım 2006 da Java platformu GPL lisansıyla açık kodlu hale gelmiştir.

images5.jpgC#

C# Programlama Dili (si şarp şeklinde telafuz edilir), Microsoft’un geliştirmiş olduğu yeni nesil dilidir. Yine Microsoft tarafından geliştirilmiş .NET Teknolojisi için geliştirilmiş dillerden biridir.

Microsoft tarafından geliştirilmiş olsa da ECMA ve ISO standartları altına alınmıştır.

C#’ın isimlendirilmesinde, bir melodi anahtarı olan C# Major‘den esinlenilmiştir. C# gibi, C programlama dili temel alınarak tasarlanan C++ programlama dilinin isimlendirilmesinde ki yaratıcılığına ulaşma çabası olarak görülebilir(C dilinde bir sayı değişkenini bir arttırma işlemi için ++ soneki veya başeki kullanılır).

Bu dilin tasarlanmasına Pascal, Delphi derleyicileri ve J++ programlama dilinin tasarımlarıyla bilinen Anders Hejlsberg liderlik etmiştir.

Birçok alanda Java‘yı kendisine örnek alır. .NET kütüphanelerini kullanmak amacıyla yazılan programların çalıştığı bilgisayarlarda uyumlu bir kütüphanenin ve yorumlayıcının bulunması gereklidir. Bu, Microsoft’un .Net Framewok‘u olabileceği gibi ECMA standartlarına uygun herhangi bir kütüphane ve yorumlayıcı de olabilir. Yaygın diğer kütüphanelere örnek olarak Portable.Net ve Mono verilebilir.

Piyasada tonla programlama dili var, ben sizin için en çok kullanılanlardan bahsettim. Programlama dilleri hakkındaki bütün bilgileri viki den alıntı yaptım, daha doğru olmuştur muhtemelen böyle yapmak. Daha ayrıntılı bilgi için viki sitesinde şu adresi ziyaret edebilirsiniz:

http://tr.wikipedia.org/wiki/Programlama_dilleri

İleride yazıya bir çok eklenti yapacağım, bu konuda hala birşeyler öğrenmek isterseniz yazımı tekrar ziyaret edebilirsiniz :) . Bir başka yazıda tekrar görüşmek üzere…

Yazılardan Seçmeler

Yorum yapabilirsin

Yorumun

otel emlak in?aat tekstil Resources blogs Resources blogs Blogarama Resources Blogs gesundheit-entspannung Clicky Web Analytics