
Bilgisayar Programcılığı ve Programlama Dilleri
Bilgisayar Programcılığı[/color]Nedir bu bilgisayar programcılığı ? Zor
mu? Deli işi mi?Evet birçok kişi bilgisayar programcılarının ne ile
uğraştığını bilir fakat nasıl uğraşıp neler yaptığını pek bilmez… Bu
konulara sayfamda biraz özet olsa da değineceğim. Önce bilgisayar
dünyasında sıkça kullanılan bir kelimeden bahsedeyim
yazılım…Yazılım(software) kelimesi bilgisayar programlama dilleriyle
oluşturulan dökümanları, dosyaları ifade eder. Yani bilgisayarınızda
işletilmek, çalıştırılmak üzere tasarımlanmış dosyalar yazılım kapsanına
girer.Bu dosyalar nasıl yapılır ?Yazılım programlama dilleri ile
tasarlanır ve yazılır,programlama dili de nedir? derseniz.Programlama
dilleri, bilgisayarınızın donanımını(ekran kartı, ses kartı, modem,
mouse, klavye…) sizin en rahat biçimde kullanabileceğiniz düzeye
getirmeye çalışır. Yani bilgisayarın o soğuk 1010110 gibi rakamlarını
sizin zevkle kullandığınız programlara, işletim sistemlerine, oyunlara
çevirir.Örneğin kullanılmakta olan Windows işletim sistemi onbinlerce
sayfa milyonlarca bilgisayar kodunun biraraya gelmesinden oluşur. İşte
işin tüm zorluğu, o kodların arasında dolaşan, hata mesajlarını günlerce
kodları gözden geçirerek arayan, sandalye tepesinde saatlerce aynı
ekrana bakarak ilginç görüntüler sergileyen programcıların
üzerindedir…Bilgisayar programcıları işini zevkle yapan ve işini bir
hobi edinmiş insanlardan oluşur, en azından öyle olmalı. Aksi halde
yoğun konsantrasyon ve sabır isteyen bu işi yapmak aşırı zorlaşır.
Neyse… Programlama dillerinden bahsediyorduk Programlama dilleri kendi
aralarında sınıflara ayrılmışlardır. İnsanın en zor öğrenebileceği,
anlayabileceği yani 1100101 gibi makina kodlarına yakın diller en düşük
seviyeli(low level) programlama dilleri, insanın en kolay anlayıp
kullanabileceği ve insan diline yakın özellikler gösteren diller ise en
yüksek seviyeli(high level) programlama dilleridir. Şimdi bu
sınıflandırmaya örnekler verelim;
Çok yüksek seviyeli diller : VisualBasic, VB.NET, Acces , Foxpro …
Yüksek seviyeli diller: Pascal ,Basic ,Fortran…
Orta seviyeli diller: C ,C++, C# , Java ,ADA…
Düşük seviyeli diller: Assembly…
Makina dilleri: Bilgisayarın çalışma dilleri 1 ve 0’lardan oluşur…
Bu dillerin kullanıldığı alanlara örnek verirsek;
Bilim ve Mühendislikte: Pascal ,C ,C++ ,Java ,Fortran…
Veritabanı Programcılığında: Dbase ,Acces ,Foxpro ,Sql…
Yapay Zeka Kullanımında: Prolog ,Lisp…
Sistem Programcılığında: C ,C++ ,Java ve sembolik makina dilleri…
Bir bilgisayar programı nasıl yazılır ?Bir yazılım değişik dillerle
oluşturulabilir fakat izlenen yöntemler genelde birbirine benzer.Örneğin
Algoritma…Algoritma, elimizdeki sorunun çözümüne gidebilmek için
tasarlanan yollar,yöntemlerdir. Örneğin bir arkadaşınıza daha önce
gitmediği bir yerdeki bir postaneyi tarif edeceksiniz. Bunun için
anlatımda genelden özele giden bir yol izlersiniz. Önce gideceği semti
sonra caddeyi sonra postanenin olduğu yönü tarif eder son olarak da
kolay bulması için postanenin çevresindeki göze batan özelliklerden
bahsedersiniz.İşte bu yaptıklarınız bir algoritmadır. Ve amacınız
arkadaşınıza postaneyi bu algoritma yardımıyla tarif
etmektir…Bilgisayar programlama dilleri de programcılıkta bunu gibi
yöntemler kullanarak çözüme gider. Algoritmanın uzunluğu kullanılan
programlama dilinin seviyesi ve problemin karmaşıklığı ile doğru
orantılıdır.Yapılan algoritma ve tasarımdan sonra yazılım aşamasına
gelinir ve bu aşamada yapılacak programın kullanım ömrü, programın
kullanım düzeyi ve hangi amaçla kullanılacağı gibi soruların cevaplarına
bakılarak programlama dili seçilir. Dil seçimi bazı kriterlere göre
yapılmaktadır, örneğin kısa sürmesi ve görsel tasarım içermesi,
veritabanı iletişimi yoğun kullanılması gereken bir program yapmamız
gerekiyor olsun. Bu durumda Assembly dili ile yola çıktığımızda
bahsedilen proje birkaç kişilik deneyimili bir programcı grubu ile
birkaç yıl alır. C ile iki programcı aynı işi üç dört ayda VisualBasic
veya Delphi ile bir programcı bahsedilen işi bir iki aya yakın bir
sürede yapabilir.Başka bir açıdan örnek verirsek örneğin bir ekran kartı
programlamamız gerekiyor ve bu kartın driver’ını ( sürücüsünü ) biz
yazacağız. Bu durumda bu işi VB veya Delphi ile yapmamız imkansızdır,
kullanmamız gereken diller öncelikle Assembly ve C/C++ olmalıdır.Evet,
programlama dillerinin kendi alanları vardır ve her dil kendi branşında
kullanıldığı sürece başarılı ve etkili kullanılmış olur. Buraya kadar
anlattığımı özetlersem.Bir bilgisayar programı yazmak için belli
aşamalar vardır ve bu aşamalar geçildiğinde kodlamaya başlanabilir.
Bunlar:
Analiz
Algoritma
Dil Seçimi
Kodlama
Analiz ile gerçekleştirilmek istenen proje tasarımlanır ve parametreleri
araştırılır.Algoritma ile adımlar tayin edilir. Dil seçimi ile en uygun
programlama dili seçilir. Ve kodlamaya başlanır…Kod yazıldıktan sonra
da bazı aşamalardan geçer bunlar da genel olarak :
Test ve Debug
Pilot denemeler ve ilk versiyon denemeleri
Hazır halde çalışır programı sunma
Programlama DilleriBu
bölümde programlama dillerinin kullanıldıkları alanları ve
özelliklerini inceleyeceğiz. Programlama dilleri uygulama alanlarına
göre dörde ayrılır:
Bilimsel ve Mühendislik Alanında : Üniversitelerde ve bilimsel
kuruluşlarda mühendislik veya matematik hesapları için kullanılan bu
dillere örnek; Pascal, C, C++, Java dilleridir.
Veritabanı Kullanımında : Genellikle Personel kayıtları, fabrika
stok veya depo denetimi gibi veritabanı gerektiren işlemlerde kullanılan
diller;DBASE,SQL,FOXPRO,PARADOX gibi veritabanı dilleridir.
Sistem Programcılığında : İşletim sistemlerinin ve sistem
programlarının yazılımında kullanılan dillere örnek, C ,C++ ,Java ve
makina dilleridir.
Genel Amaçlı kullanım : Çeşitli konularda uygulama geliştirmek için
kullanılan dillere örnek,C ,C++ ,Java ,VB ve Pascal’ı verebiliriz.
Son yıllarda programlama dillerinde nesneye yönelik tasarımlar yapılmış
ve bu dillerin çoğunun nesneye yönelik programlama yapabilen
uyarlamaları çıkmıştır. Nesneye yönelik programlama, programcının kendi
sınıfını ve nesnesini oluşturup bunun üzerinde işlemler yapmasına olanak
sağlayan ve programlama dillerinin geldiği son aşamalardan birisidir.
Bu konu oldukça kapsamlı olup bunun geniş açıklamasını burada
yapmayacağım.OOP(Object Oriented Programming) yani Nesneye Yönelik
Programlama’nın kullanılmasıyla ve Visual programcılığın da gelişmesi
ile beraber ortaya oldukça güzel görünümlü ve kullanışlı programlar
çıkmaya başladı. Bu bilgisayar programlarına olan ilgiyi arttırdı ve bu
konulardaki araştırmaları hızlandırdı. Sonuçta şu anda, pekçok dilin
artık nesneye yönelik olan ve visual özellikler içeren sürümleri
kullanılmakta ve tercih edilmektedir. Örneğin: C++ ,Visual C++ ,C++
Builder ,Delphi ,Java…İnternet’in de yaygınlaşmasıyla programlama
dillerine yeni özellikler eklendi ve internet’te kullanılabilecek
nitelikte görsel özellikli diller çıkarıldı. Örneğin HTML, kullanıcının
dikkatini çeken renkli ve hareketli arabirimiyle her geçen gün yeni
ekler ile gelişmektedir. JavaScript ve VBScript iki script dili olarak
HTML’ye getirdiği ek özelliklerle çokça kullanılır oldu. Ve asp ile veri
tabanını aktif kullanıma sunma, aktif sayfalar hazırlama olanağı elde
edildi.Görüldüğü gibi özellikle internet’in gelişmesi ile birlikte
programlama dillerinin yapılacak işe veya kullanılacak platforma göre
değişik özellikler gösteren uyarlamaları çıktı. Bu durumda web
teknolojisini izleyen ve internet üzerinde yazılım geliştirmek isteyen
bir programcının javascript ,vbscript ,java ,HTML gibi dilleri bilmesi
ve bu konularda kendini geliştirmesi gerekir. Uygulama programlarına
,ticari programlara, veya işletim sistemlerinin kullanımına yönelik
yazılım geliştirmek isteyen programcıların da C++ ,Java ,Delphi gibi son
zamanların en popüler dilleri üzerinde çalışması, bunları öğrenmesi
gerekir.Internet programcılığı, esnek mimari, OOP gibi konularda
söylenmesi gereken önemli bir nokta da Java’nın programlama dünyasına
getirdiği önemli bir özelliktir. Java nın çıkması ile atılan önemli bir
adım da platform’dan yani işletim sisteminden bağımsız olarak çalışan,
her sistemde çalışabilen, programların yazılabilmesidir. İleriye yönelik
bir bakış açısı ile bakıldığında cep bilgisayarlarının, kablosuz
cihazların, cep telefonlarının sıklıkla kullanılacağı ve artık PC lerin
döneminin kapanmaya başladığı düşünülürse birçok cihazda çalışabilecek
programların yazılmasının önemi anlaşılabilir. Java son yıllarda
programlama dünyasına gelmiş en iyi programlama aracıdır ve yeni çıkacak
programlama dillleri de Java’nın birçok özelliğinden
esinlenmektedir.Şimdi programlama dillerine özet bir bakış yapalım;CYapısal
programlama dilleri arasındadır. Öğrenilmesi zaman almasına rağmen
oldukça kullanışlı ve esnek yapısı ile adından yıllarca bahsettirmiş,
bilgisayar programcılığının temel dillerinden biridir. C ile
bilgisayarınıza bir sistem yazmaktan bir oyun yazmaya veya printer
kontrolü yapmaya kadar her türlü işlem yapılabilir ve bu özelliği
sayesinde kullanım alanı çok geniş bir dildir.C++Nesneye
yönelik programlama yapabilen diller arasındadır. C’nin saydığımız tüm
özelliklerine ek olarak güçlendirilmiş nesne yönetim özelliği ile şu
anda bilgisayar dünyasının en çok kullanılan dillerinden biridirC#Nesneye
dayalıdır(OOP). C++ ın ve Java’nın pozitif yönlerini bünyesinde
birleştirmiş yeni bir dildir. Programcıya internet uygulamaları ve yerel
uygulamalar yazmakta bazı kolaylıklar getirmiştir. İleriye dönük olarak
microsoft’un java teknolojisine rakip olarak ortaya sürdüğü bir
programlama dilidir ve microsoft’un bu konulardaki (internet
uygulamaları) yelpazesini genişletmeye yönelik bir atılımdır. Microsoft
teknolojileri kullanacak programcıların C#’ı öğrenmeleri zamanla
gerekecektir ve öncelikle öğrenilmeye başlanması da avantaj getireceği
açıktır.JavaNesneye
yönelik dillerdendir. Son yıllarda geliştirilmiş bir dil olup modern ve
yenlikçi altyapısı ve visual özellikleri ve sürekli gelişen kütüphane
(library) desteği ile gün geçtikçe kullanımı artan bir dil olmuştur.
Java dili hemen hemen her alanda kullanılabilen esnek ve güçlü bir
dildir.VB.NETNesneye
dayalı bir dildir. VisualBasic(VB) teki biçok özellik bu dilde yeniden
yapılandırılarak değişmiştir. Yapısına bakılırsa VB den ayrı yeni bir
dil geliştirilmiş denilebilir. Eklenen bazı özellikler ile VB de
yapılamayan birçok işlem artık yapılabilmektedir ve OOP nin özellikleri
desteklenerek daha verimli kod yazmaya olanak sağlanmıştır. VB
programcılarının VB.NET’e geçişleri kolay olmayacak olsa da VB yerine
VB.NET kullanımı gün geçtikçe artacaktır. VB.NET internet
uygulamalarından yerel uygulamalara kadar kullanım imkanı geniş bir
dildir.DelphiPascal
tabanlı bir dil olup nesneye yönelik programlama yapabilme özelliği
taşır. Öğreniminin çok zor olmayışı ve üniversitelerde pascal eğitiminin
ağırlıklı verilmesi nedenleriyle çoğu bilgisayar programlama
öğrencisinin tercih ettiği bir dildir.Visual programlama özelliği taşır.PascalPascal
Yapısal bir dildir, C ‘ye benzerlik gösterir. Öğrenilmesinin zor
olmayışı ve bilgisyar eğitimi veren okullarda okutulan bir ders olması
sebebiyle kullanım alanı genelde üniversiteler ve bilimsel hesaplamalar
yapan kurumlardır.VisualBasicBasic
tabanlı bir dil olup öğrenilmesi kolay, kullanım alanı geniş bir
dildir. Özellikle görsel uygulamalarda projenin arabiriminin hızlı
yazılmasını sağladığı için genelde kullanıcı arabirimi tasarımlarında
kullanılır. Kapsamlı veya çok kullanıcılı uygulamalarda kullanılmaz.
Kullanıcı sayısı az olan veya kısa sürede bitmesi gereken küçük ölçekl
projelerde tercih edilen bir programlama aracıdır. Yoğun olarak
kullanılmaktadırProgramlama dillerinin hepsini incelemeye imkan
olmadığından çok kullanılan bir kısım dilden bahsettim. Her dilin
kullanım amacı ve yönelimi farklı olabilir önemli olan hedeflediğiniz
konularda size yardımcı olacak dili seçip onunla çalışmanızdır.