Programlama Dilleri, Sınıfları ve Kullanım Alanları

Evet, her zaman olduğu gibi işe başlamadan önce, şu sıkıcı kısımları fazla da sıkmadan aktarıp, ardından eğitim video ve örneklerimize geçelim. Bu yazıda, mümkün olduğunca kısaca, programlama dillerinin tarihi, sınıflarına ve uygulama alanlarına göre ayrımından bahsedeceğiz.

Bunları bilmek zorunda mısınız? Tabii ki, hayır. Ama bu işi ileride profesyonel olarak yapmayı planlıyorsanız, az çok bu sıkıcı kısımlardan da haberdar olmak sizin yararınıza olur.

Öncelikle, günümüzde binlerce olan programlama dillerini 3 ana kategoriye ayırıyoruz:

  1. Makine dilleri
  2. Assembly dilleri
  3. Yüksek seviyeli diller
Makine dilleri: Her bilgisayarın, işlemcisinin anlayabileceği kendi dili vardır. Misal: Pentium işlemcinin makine dili ile Sparc işlemcinin makine dili farklıdır.
İkilik tabanda yazılmış, makine dilinde iki sayının toplanması aşağıdaki gibidir:
01000110011101000111101010000010010101101000010
Ya da başka bir örnek daha verelim:

Makine dili:
169 1 160 0 153 0 128 153 0 129 153 130 153 0 131 200 208 241 96
BASIC dili:
 5 FOR I=1 TO 1000: PRINT "A";: NEXT I

Yukarıdaki iki örnekte de amaç, ekrana 1000 kere "A" yazmaktır. Ek olarak, makine dilinde yazılmış program RAM'de 28 bytle'lık yer kaplarken, BASIC'de yazılmış olan program 45 bytle'lık yer kaplamakta ve makine diline göre 30 kat daha yavaştır.

Assemly dilleri:  Makine dilini anlamak zorlaştığında, işi kolaylaştırmak için makine dillinde yazılmış kodların biraz daha anlaşılabilir hale çevrilmiştir. Ama hala çok karışıktır.  Örnek olarak şunu verelim:  Fibonacci serisinde n. fibonacci sayısını bulan programın hem makine dilinde yazılışı hem de Assembly dilinde yazılışı:

Makine dilinde:
8B542408 83FA0077 06B80000 0000C383
FA027706 B8010000 00C353BB 01000000
B9010000 008D0419 83FA0376 078BD98B 


Assembly dilinde:

fib:
    mov edx, [esp+8]
    cmp edx, 0
    ja @f
    mov eax, 0
    ret
    
    @@:
    cmp edx, 2
    ja @f
    mov eax, 1
    ret
    
    @@:
    push ebx
    mov ebx, 1
    mov ecx, 1
    
    @@:
        lea eax, [ebx+ecx]
        cmp edx, 3
        jbe @f
        mov ebx, ecx
        mov ecx, eax
        dec edx
    jmp @b
    
    @@:
    pop ebx
    ret


Görüldüğü gibi, Assembly dilinin de Makine dilinden pek farkı yok gibi. İkisini de anlamak çok güç.

Yüksek seviyeli diller: Yukarıda makine dilinde iki sayının toplamını göstermiştim. 0 ve 1 lerden oluşan... Yüksek seviyeli dillerde bu gibi işlem çok daha kısa,basit ve anlaşılabilir şekilde yapılabiliyor. Mesela, a=2+3; yazdığımızda 2 ile 3 toplanıp, değeri a'ya atanıyor. Görüldüğü gibi programlama dilleri zamanla, anlaşılması güç ve yazması zaman alan kodlardan sıyrılıp, bir çok işlemi tek kodla yapabilecek ve insanların anlayabileceği bir dile dönüşüyor. Bu yüksek seviyeli dillerde yazılan programlar, derleyiciler aracılığıyla makine diline çevrilip, çalıştırılıyor. Örnek; Pascal, Fortran, Basic, Java, C, C++, Cobol, Lisp ve Prolog... gibi diller.


Ama artık programlama dilleri daha fazla kategoride sınıflandırılıyor. Yukarıda biz, genel olarak 3 kategoride sınıflandırdık. Ama programlama dillerini 5 ayrı kategoride de aşağıdaki gibi sınıflandırabiliriz:

  1. Çok yüksek seviyeli diller : VisualBasic, VB.NET, Acces , Foxpro ...
  2. Yüksek seviyeli diller: Pascal ,Basic ,Fortran...
  3. Orta seviyeli diller: C ,C++, C# , Java ,ADA...
  4. Düşük seviyeli diller: Assembly...
  5. Makina dilleri: Bilgisayarın çalışma dilleri 1 ve 0'lardan oluşur...
Seviyesi arttıkça, makine dilinden uzaklaşıp insan diline yaklaşırlar. Ayrıca, çoklu işlemleri tek kod parçacığıyla yaparak, kullanım kolaylığı ve zaman kazancı sağlarlar.

Programlama dilleri ayrıca, kullanım alanlarına göre de bazı kategorilere ayrılırlar. Bunları kısaca ve basitçe şöyle ayıralım:
  1. Bilim ve Mühendislikte: Pascal ,C ,C++ ,Java ,Fortran...
  2. Veritabanı Programcılığında: Dbase ,Acces ,Foxpro ,Sql...
  3. Yapay Zeka Kullanımında: Prolog ,Lisp...
  4. Sistem Programcılığında: C ,C++ ,Java ve sembolik makina dilleri...

Ayrıca ilgilenenler için, programlama dillerinin hangi tarihlerde kimler tarafından yazıldığını gösteren zaman çizelgesine gitmek için buraya bakabilir, programlama dilleri soyağacına buradan ve buradan ulaşabilirsiniz.


Bu arada, bu yazıyı yazarken şuna karar verdik: Bir sonraki yazımızda programlama dillerindeki trendlere dair bazı bilgiler paylaşalım. Hangi programlama dili hangi sebeplerden dolayı tercih ediliyor, hangi sebeplerden ötürü popüler, hangi programlama dillerini bilenlerin iş bulma olasılıkları daha yüksek...vs gibi konularda, merakları ve kafalardaki soru işaretlerini bir nebze olsun giderebilmek için sağlam bir araştırma yaptıktan sonra yazımıza başlayacağız. Böylece sizler de, bu bilgilere ve üstüne kendi yapacağınız araştırmalara göre kendinizi bu dillere yönlendirebilirsiniz. Ama şu kadarını şöyleyelim; yazacağımız yazı sunacağı veriler açısından Türkiye'de bir ilk olabilir- henüz nete gözatmadığımız için, ol-abilir diyerek, konuyu kapatıyoruz:)
Araştırmamızı yapıp, yazıyı yazmaya başladığımızda olup olmadığını hep birlikte göreceğiz:)

Bir sonraki yazımızda görüşmek üzere...

Yazıyı yazarken başvurduğumuz kaynaklardan bazıları:


  1. Kendi üniversite kaynaklarımız*
  2. www.google.com( baktığımız bazı sitelerin adreslerini almayı unuttuk:) )
  3. http://web.firat.edu.tr/iserhatlioglu/BOLUM1.htmhttp://eng.harran.edu.tr/~nbesli/RBT/helptr.htm
  4. http://en.wikipedia.org/wiki/Generational_list_of_programming_languages
  5. http://en.wikipedia.org/wiki/Timeline_of_programming_languageshttp://martinrinehart.com/pages/genealogy-programming-languages.html
  6. http://www.godoro.com/Divisions/Ehil/Mecmua/Magazines/Articles/txt/html/article_ProgrammingAndLanguage.html
  7. http://www.robotiksistem.com/program_nedir_programlama_dilleri.html


Öneri, eleştiri veya özel sorularınızı İletişim sayfamızdaki İletişim Formu aracılığıyla bize iletebilirsiniz.
Yazının devamı>>

Programlama-TV ("Merhaba Dünya")

Merhaba arkadaşlar,

Programlama-TV.blogspot.com olarak ilk gönderimizi yayınlıyoruz...

Bu gönderide, bu bloğu açma nedenimize değinip, bloğumuzda nasıl bir gidişat izleyeceğimizden bahsedeceğim.


Öncelikle bizim kim olduğumuzu merak ediyorsanız, Biz Kimiz? sayfamızdan hakkımızda, yazdığımız kadarıyla :), bilgi alabilirsiniz.

Meseleye girecek olursak; internet dünyasında bulamayacağımız bilgi yok gibi... Bu bir gerçek ancak, bu koca bilgi okyanusunda aradığınızı bulmak bir işkence; bulabilmek ise, yetenek.
Şahsen ben, programlama dillerini öğrenmeye merak sardığımda, internette doğru düzgün ve yeterli bir kaynak bulabilmek için değil saatlerimi, günlerimi harcadım. Evet, çok şükür ki bazı güzel sitelerde, tecrübe ve bilgilerini paylaşan insanlar var. Şayet ben de bu sitelerden, bu kişilerden çok şey öğrendim. Ancak, genelde her şey paramparça. Bir sıra, bir bütünlük bulmak çok zor. Gözümüzden kaçan siteler vardır belki ancak, bizi tatmin edebilecek bir siteye henüz rastlamadık desek yalan olmaz.
Evet, çok şey öğrendik -ve öğrenmeye devam ediyoruz- ama parça parça öğrendik. Konu hakkında bilmemiz gereken neler varsa, hepsinden az çok bir şeyler biliyoruz ancak, konuya tam olarak, bütünüyle hakim değiliz. (Gerçi, şu an biz çoğularına göre şanslıyız çünkü; Türkiye'nin en iyi mühendislik eğitimi, özellikle Bilgisayar Mühendisliği, veren üniversitelerinden birisindeyiz. Daha yolun başındayız gerçi... Zaten biraz da bundan kaynaklı bu kaynak toplama merakı)

Bu sebeple, kendimiz için düzenli,sıralı ve bütün bir eğitim kaynağı hazırlamaya karar verdik. Bu bloğu aslında kendimiz için oluşturduk. Ama tabii ki, bizden başka bir sürü insan da yararlanma fırsatı bulacak. Umarız, hem sizler hem de bizler en azından bir programlama dilini tam olarak öğrenebiliriz :) Gerçi, istediğimiz gibi olacak mı olmayacak mı, onu da zaman içinde göreceğiz.

Bizler, bloğun gidişatını kendimize göre belirleyeceğiz; büyük ihtimal C++ ile paylaşayacak; birini bitirmeden başka bir dile geçmeyeceğiz. Ancak, zamanla blog misafirlerimizin sayısı arttığında, sizlerden gelen öneri ve isteklere göre de gidişatı yönlendirebiliriz. Şu an, özellikle üzerinde durduğumuz C++,C#,Java,JavaScript ve PHP var dilleri var. Bunlara zamanla başkaları da eklenebilir. Örneğin PHP dersleri vermeden önce büyük ihtimal HTML derslerini yayınlayabiliriz..vs.. Ayrıca, programlama dili - betik dili gibi bir ayrım yapmadığımızı da belirteyim...

Biz kendimiz bir şeyler öğrenirken, bizim gibi işin meraklıları da bir şeylerden faydalanabilsin diye bu bloğu kurduk ve bu yola koyulduk... Sizler de, bu konuda sizin gibilere faydalı olmak adına bir şey yapmak isterseniz, Destek Ol sayfamızdaki banner'larımızı sitelerinize, bloglarınıza ekleyebilir; gönderilerimizi paylaşma butonları aracılığıyla sosyal mecralarda paylaşabilirsiniz. Ayrıca bizi sosyal mecralarda da takip etmek için, gerek sağ üstteki menüde bulunan butonları kullanabilir, gerekse Takip Et sayfamızdaki butonlardan Facebook,Twitter,Google+ sayfalarımıza ulaşabilir, bloğumuza e-mail aboneliğinizi başlatıp, gönderilerimizden haberdar olabilirsiniz...


Ayrıca, sizler de hakim olduğunuz programlama dilleri için eğitim videoları hazırlayabilir, bu videoları paylaşabilirsiniz. Hazırlayacağınız eğitim videolarını paylaşmaktan mutluluk duyarız. Hazırlayacağınız anlatımları, mümkünse, resimlerle desteklenmiş metin şeklinde de sunabilirsiniz. (Kendi kodlarınızı, fonksiyonlarınızı yazıp, anlatımını da yaparak paylaşabilirsiniz vs.) Bu ve buna benzer şekilde, amacımıza katkıda bulunabileceğiniz fikirleriniz var ise; bize İletişim kısmındaki formu doldurarak, ulaşabilirsiniz.
(Düzenlemelerden sonra, bu alana özel Katkıda Bulun sayfamızdaki formdan ulaşabilirsiniz.- Henüz tamamlanmadı.)


Bu yazımızı, 2013'ün en yaygın programlama dillerinin ilk 20'sinin listesini paylaşarak bitirelim. TIOBE'nin hazırlamış olduğu, Şubat 2013 raporuna göre; Java en popüler programlama dili olmuş.(Bu tablonun her ay güncellendiğini belirtelim.) Java'nın bu derece popüler olması, Android telefonların başarısına bağlanmış. Apple'ın pazar payı dolayısıyla yükselişini sürdüren Objective-C, öyle görünüyor ki, pek de Java'ya rakip olamayacak.  Bu ayki raporda TIOBE ayrıca, Phyton'un son yarım yıldaki yükselişine değinmiş ve PHP'ye rakip olmaya başladığını belirtmiş. Listede, C programlama dili 2. sırada yer alırken, Objective-C 3., C++ 4. ve C# 5. sırada yer almış. (Son zamanlardaki Objective-C yönelimine dikkat!)

Güncelleme! : Bu konuda daha detaylı bilgi alabilmek için hazırlamış olduğumuz infografikli yayımıza gözatabilirsiniz.


Sizi listeyle baş başa bırakalım. Blog düzenlemelerimizi tamamladıktan sonra, bir sonraki gönderimizde tekrardan görüşmek üzere, hoşçakalın!..

Position
Feb 2013
Position
Feb 2012
Delta in PositionProgramming LanguageRatings
Feb 2013
Delta
Feb 2012
Status
11Java18.387%+1.34%  A
22C17.080%+0.56%  A
35Objective-C9.803%+2.74%  A
44C++8.758%+0.91%  A
53C#6.680%-1.97%  A
66PHP5.074%-0.57%  A
78Python4.949%+1.80%  A
87(Visual) Basic4.648%+0.33%  A
99Perl2.252%-0.68%  A
1012Ruby1.752%+0.19%  A
1110JavaScript1.423%-1.04%  A
1216Visual Basic .NET1.007%+0.21%  A
1313Lisp0.943%+0.04%  A
1415Pascal0.932%+0.12%  A
1511Delphi/Object Pascal0.886%-1.08%  A
1614Transact-SQL0.773%-0.07%  A--
1775Bash0.741%+0.61%  A--
1826MATLAB0.648%+0.15%  B
1924Assembly0.640%+0.12%  B
2019Ada0.631%0.00%  B

programlama-tv.blogspot.com

Yazının devamı>>