İyi Yazılım

İyi yazılım paylaşımları

Geçmişten Günümüze Programlama Dilleri

Sizce günümüze kadar geliştirilmiş programlama dillerinin sayısı nedir?

Wikipedia daki alfabetik programlama dilleri listesini kaynak olarak kabul ettiğimizde, yaklaşık 500 adet programlama dili mevcut.  Doğal olarak bu dillerin bir çoğu günümüzde kullanılmıyor ve bir çoğu da nadiren kullanım alanı buluyor, ama yine de yüzlerle ifade edilen bir büyüklükten bahsediyoruz...

PROGRAMLAMA DİLLERİNİN GELİŞİMİ
Programlama dillerinden bahsetmeden önce genel olarak gelişimlerinden bahsetmek istiyorum. Literatüre göre programlama dillerini gelişim evrelerine göre 5 nesilde(generation)  inceleyebiliriz. Bilgi teknolojilerinin ilk çağlarında bilgisayara (machine) yakın olan diller, her yeni nesille birlikte günlük yaşama ve insana (human) yakınlaşmış durumdalar.  Araştırmalarıma dayanarak söyleyebileceğim 1837 yılında duyurulan “Analytical Engine Code Order”  programlama diliyle başlayan macerayı öncelikle nesil ayrımında incelemek istiyorum.

Birinci Nesil Programlama Dilleri – Makine Dilleri
Birinci nesil programlama dilleri ilk bilgisayarlarla birlikte ortaya çıkan programlama ihtiyacını karşılakamk üzere geliştirilen ve tamamen geliştirildiği makinenin (machine) özelliklerine odaklı  (machine-level) makine seviyesi dillerdi. Komutlar direkt olarak bilgisayar üzerindeki bir panel aracılığıyla herhangi bir derleyici ya da çevrime ihtiyaç duyulmadan giriliyordu. Birinci nesil programlama dillerinin işlemciye doğrudan verilen komutlarla çalışıyor olmaları hız ve yetenek açısından çok güçlü olmalarını sağlıyordu. Ancak öğrenilmeleri ve uygulanmaları zor, hata durumlarını yönetmek sıkıntılıydı. Diğer taraftan belirli bir işlemci/makine için yazılan kod, farklı yapıdaki başka bir makinede çalışmıyor, tamamen yeniden yazılması gerekiyordu.
Günümüzde halen çok eski makineler için kullanım alanı bulan makine dili aynı zamanda modern programlama dillerinin nihai halidir. Herhangi bir modern dille geliştirdiğiniz programı derlediğinizde (compile) ortaya çıkan şey birinci nesil bir makine dilinden başka bir şey değildir.
Bilinen makine dillerinden örnekler:
•        ARM
•        Intel 80x86
•        IBM 360
•        MIPS R2000|R3000
•        MOS Tech 6502
•        Motorola 680x
•        Power Architecture - (POWER and PowerPC)
•        StrongARM
•        Sun SPARC, UltraSPARC

İkinci Nesil Programlama Dilleri – Çevirici Diller
İnsanlar tarafından makine dillerine oranla daha anlaşılır olan (human-readable) bu diller assembly – çevirmen diller olarak bilinirler. Direkt işlemciye/makineye özel kodların yerini komutlar ve kısaltmalar kullanılmaktadır. Fakat halen makineye özel programlama yapılması gerekmektedir.  Ayrıca bu dillerle geliştirilen programların makinelerde çalışabilmesi için makine diline çevrilmeleri gerekiyordu. Bu noktada assembler yani çevirmenler devereye giriyordu.
Günümüzde halen özel donanımların progranlanmasında, işletim sistemleri çekirdeklerinde assembly dilleri kullanılmaktadır.
Bilinen bazı çevirici diller:
•        ASEM-51 [1]
•        BAL (Basic AssembLer)
•        COMPASS (COMPrehensive ASSembler)
•        Emu8086
•        FAP (FORTRAN Assembly Program)
•        FASM (Flat Assembler; IA-32, IA-64)
•        GAS (GNU Assembler)
•        HLA (High Level Assembly)
•        MASM (Microsoft Macro Assembler)
•        NASM (Netwide Assembler)
•        NEAT (National's Electronic Autocoder Technique)
•        TASM (Turbo Assembler, Borland)

Üçüncü Nesil Programlama Dilleri – Yapısal Diller
Programlama dillerinin günümüzde yaygın kullanılan ve bilinen türlerinin geliştirildiği nesil, üçüncü nesildir. İngilizce ağırlıklı olarak insanların kullandığı dillere yakın, yüksek seviyede (insana yakın) yapısal dillerdir. Bu nesille birlikte yazılım geliştirme makine bağımlılıktan kurtarılmıştır. Yazılan programlar farklı makinelerdede kullanmaya başlanmıştır. Üçüncü nesil dillerin yüklendiklerini bilgisayarda çalışması için derleyici (compiler) ya da yorumlayıcı (interpreter) aracılığına ihtiyaç duyulur.
Yapısal dillerden örnekler:
•        Fortran
•        ALGOL
•        COBOL
•        BASIC
•        C
•        C++
•        Delphi
•        Java

Dördüncü Nesil Programlama Dilleri – Çözüme Yönelik Diller
Üçüncü nesil dillerin programlama anlalmında çok çiddi ilerlemeler sağlamasına rağmen, ticaret ve iş yaşamında özel durumlara yönelik hızlı çözümler geliştirebilme ihtiyacı dördüncü nesil programlama dillerinin gelişimine neden olmuştur.
Kullanımı çok daha kolay, daha az kod yazarak yönergeler, hazır şablonlar ve sihirbazlar sayesinde belirli ihtiyaçlarda uzmanlaşmış pratik çözümler geliştirmeye yönelik olan bu diller rapor üreteci (generator),  form üreteci, vaka tasarımı, veri yönetimi, istatiksel analitik, vb alanlarda uygulamalar geliştirmeye yöneliktir.
Örnek araçlar:
•        Informix-4GL
•        Progress 4GL
•        SQL
•        Oracle Forms /Reports
•        PostScript
•        RPG-II
•        Gauss
•        ABAP
•        Mathematica
•        PL/SQL
•        Progress 4GL
•        SPSS
•        Borland Delphi
•        MATLAB's GUIDE
•        Windows Forms
•        Powerbuilder
•        Progress Dynamics
•        ColdFusion

Beşinci Nesil Programlama Dilleri
Beşinci nesil programlama dilleri programcının algoritma geliştirerek çözüm geliştirmesinin ötesinde, koşulları ve kısıtları bilgisayara verdiğinizde, bilgisayarın çözümü kendisinin bulmasına yönelik olarak tasarlanmaktadır.  Açıkça kodlamanın yerine (imperative) bildirimsel (declarative) yöntemle çalışan ve özellikle yapay zeka alanında araştırmalarda kullanılan bu  yeni programlama dillerine örnek olarak Prolog, OPS5 ve Mercury verilebilir.


PROGRAMLAMA DİLLERİNİN TARİHÇESİ
Programlama dillerinin nesil nesil gelişimini inceledikten sonra sıra tarihsel gelişimleri üzerinden geçmeye geldi.  Programlama dillerinin gelişimi, bilgisayarların gelişimine paralel olarak yol almıştır. Bu noktada ilk elektronik dijital bilgisayarların ilan edilmesi 1940’lı yıllarda olmasına rağmen, çok daha öncesinden bu alanda çalışmalar yapıldığını görüyoruz.

1940 Öncesi
1837 yılında bir İngiliz profösörü olan Charles Babbage, çok amaçlı kullanım için geliştirdiği hesaplayıcısına bir sırılama/komut seti oluşturdu.  Babbage  ilk olarak 1837 yılında açıkladığı “Analytical Engine Order  Code” çalışmalarını 1871 yılına kadar sürdürdü.  Her ne kadar araç politik, ekonomik ve yasal sebeplerle yaygınlaşmasa da kayıtlara geçen ilk programlama dili olarak kabul edilmektedir.  Daha sonraları, 1950’li yılların sonlarında, Howard Aiken Analytical Engine Order  Code’u baz alarak “CPC Coding Schema” yı geliştirdi. Ve 1949’da Robert Seeber CPC Coding Schema temellerinden yola çıkarak “Seeber Coding Schema” yı açıkladı.
(Resim: CharlesBabbage.jpg) (Charles Babbage)

1940’lı Yıllar
“ENIAC Coding System” ilk elektronik dijital bilgisayarlardan olan Electronic Numerical Integrator and Computer (ENIAC) için 1943 yılında geliştirilmiştir. John Von Neumann, John Mauchly, J. Presper Eckert ve Herman Goldstine’in başını çektiği ekip tarafından geliştirilen dilin üzerine 1946 yılında “Eniac Short Code”,  1947 yılında Kathleen Booth tarafından “ARC Assembly”,  1948’de Haskell Curry tarafından “Curry Notation System” , 1949’da John Mauchly ve William F. Schmitt tarafından “Brief Code” ve yine 1949 yılında Betty Holberton tarafından “C-10” dilleri geliştirilmiştir.
(Resim: Eniac.jpg) (Electronic Numerical Integrator and Computer (ENIAC))
1943 - Plankalkül (Konrad Zuse)
1943 - ENIAC coding system  
1949 - C-10

1950’li ve 1960’lı Yıllar
Bu yıllar modern programlama dillerinin temellerinin atıldığı yıllardır.
1951 - Regional Assembly Language
1952 - Autocode
1954 - FORTRAN (FORmula TRANslator)
1958 - LISP (LISt Processor)
1958 - ALGOL (ALGOrithmic Language)
1959 - COBOL (COmmon Business Oriented Language)
1962 - APL (A Programming Language)
1962 - Simula
1964 - BASIC (Beginner's All-purpose Symbolic Instruction Code)
1964 - PL/I (Programming Language One)

1970’li Yıllar
Bu yıllarda programlama dilleri olgunlaşmaya, çeşitlenmeye başladığı ve yapısal programlama dillerinin geliştirildiği yıllardır.
1970 - Pascal
1972 - C
1972 - Smalltalk
1972 - Prolog
1973 - ML
1978 - SQL

1980’li Yıllar
1980’li yıllar daha geniş sistemler için ölçeklenebilir uygulamalar geliştirebiliecek dillerin doğduğu yıllardır. Bu yıllar nesne yönelimli programlamanın (Object Oriented Programming) çokça konuşulduğu yıllardı.
1983 - Ada
1983 - C++
1985 - Eiffel
1987 - Perl
1989 - FL (Function Level)

1990’lı Yıllar
İnternetin yaygınlaşmasıyla birlikte, internetle çok ciddi anlamda bütünleşen Java dilinin geliştirildiği ve yaygınlaştığı yıllardı oldu 1990’lar.
1990 - Haskell
1990 - Python
1991 - Java
1993 - Ruby
1995 - PHP
1995 - Delphi
2000 - C#


PROGRAMLAMA DİLLERİNİN GELECEĞİ
Genel hatlarıyla geçmişten günümüze inceledğimiz programlama dillerinin geleceği için söylenecek çok şey var. İlk olarak yapay zeka üzerine yürütülen çalışmalarda bir taraftan programlama dilleri yapay zekanın gelişimine katkıda bulunurken, diğer taraftan yapay zeka çalışmaları programlama dillerinin gelişimine katkıda bulunmaktadır.

İlk başlarda direkt işlemciye komut göndermek anlamına gelen programalama, zamanla algoritma geliştirme düzeyine gelmiş, arkasından alanlarında uzmanlaşan programcılara zaman kazandırabilmek için ekran tasarım üreteçleri, veritabanı geliştirme araçları gibi proje geliştirmeye hız katan bileşenlerle donatılmıştır. Zamanın ve hızlı sonuçlar almanın çok değerli olduğu günümüzde kurumlar ihtiyaçlara mümkün olan en kısa zamanda ve en etkin biçimde cevap vermek durumundadır. Bu nedenle bazı programlama süreçleri uzman yazılımcılığın dışına taşarak departman bazında raporlama, analiz, basit arayüzler geliştirerek veri toplama gibi işlemleri üretmeyi gerektirmiş ve program dili geliştiriciler de bu yönde ürünler geliştirmişlerdir. Biraz daha ileriye baktığımızda beşinci nesil programlama dillerinde hedeflenen, bazı kısıtları ve gerekli bilgileri verdiğinizde ihtiyacınız olan uygulamanın geliştirilebilmesi fikri hiç de uzak değil.

Kadir Çamoğlu,
Microsoft MVP
kadircam@hotmail.com

* * *
NOT:
Blogdaki diğer yazılarla ilgili bilgi almak için tıklayın.

Eğer facebook grubumuza halen üye değilseniz tıklayın.

Okuyucu Yorumları

Toplam 26 Yorum

Faydalı bir yazı olmuş teşekkürler.
Doğan Tuncer

Şuan Dünya üzerinde 5000 civarında dil oldğu bilinmektedir. Bu dillerin çoğu artık kullanılmamakta diğer bir çoğunluğu ise çok azınlık kişiler tarafından kullanılmaktadır. Bilgisayar Dillerinide buna bezetebiliriz. Bugün İngilizce,Fransızca,İspanyolca, Çince gibi diller oldukça fazla kullanılmaktadır. Bilgisayarda C++,C#,Java vs gibi dilleri buna benzetebiliriz.

Dillerde İnsanlar gibidir Doğar Büyür Gelişir ve ölür

Selçuk ALAGÖZ

programlama dilleri tarihi açısından çok faydalı bilgiler. Teşekkürler..

Teşekkürler Kadir Bey verdiğiniz faydalı bilgiler için. Yazılarınızı daha sık görmek isteriz.
İ.Şükran Dere..

belgesel niteliğinde bir yazı olmuş programlama dillerinin bu kadar olduğunu bilmiyordum sayenizde öğrendik teşekkürler

belgesel niteliğinde olmuş bu kadar programlama dilleri olduğunu bilmiyordum sayenizde öğrendik teşekkürler

Oğuz Şenoğlu

Ben o yıllarda yaşamış olsaydım iş bulamazdım herhalde :)

Bahtiyar DİLEK

Basic ilk gözağrı programlama dilim:)

Çağrışım ORMAN

Yorumlar için hepinize teşekkür ediyorum. Ancak tarih ve saat olarak ilk yorum 31.01.2009 19:17 ile Doğan Tuncer'in.

Doğan, kitabı kargoyla önümüzdeki hafta sonuna kadar sana yollamış olurum. kadir.camoglu@hotmail.com eposta adresime, kargo için adres ve telefonunu bekliyorum.

Tebrikler

helal olsun vallah. ilk defa bir yazıyı sonuna kadar sıkılmadan okudum

ben bunu hiç beğenmedimmm.mmmmm

saaaaçma gereksiz bilgilerrrr.(bencE)

Birşey dikkatimi çekti.
"Dördüncü Nesil Programlama Dilleri – Çözüme Yönelik Diller"
"SQL"
Structured Query Language.
Yapısal Sorgulama Dili.
Program geliştirilemez Sql ile sadece herhangi bir veritabanıyla haberleşmek veritabanı üzerinde işlem yapmak için iki program arasında bir nevi aracı görevi görür. Çok ilginç. Programlama dili değildir SQL.

@PcMaKeR sql bir programlama dilidir arkadaşım . database i programlamanı sağlar . database i programlayabilmek için sql , kodunu makine koduna çevirir ve işlem yapar .

Bilgisayar ve bilgisayar içindeki herhangi bir mantık birimiyle iletişim kurmak için kullanılan işaret ve semboller grubuna programlama dili denir.

emeğine sağlık hocam...güzel anlatmışsın..

cok sagolun kadir abi bu programlama dilini yazmışsın cok sagol

Çok tesekkrler çk yardımcı oldn

saolllllllllll

@19 Eki 2010 10:49 rica ederim cnm

(I " ÷¶» Óê Ø )BU YAZI HANGİ PROGRAM DİLİ?

@15 Kas 2012 21:08 Öyle bi dil yok :D

Çok teşekkürler, gerçekten çoğu kişinin merak ettiği bir konuya ışık tutmuşsunuz.

ödevim için çok yardımcı oldunuz çok teşekkürler :)

Teşekkürler.Yazınızı okurken .hem insanın var olan potansiyelindeki harikülediliğine hayran oldum..hemde tembelleşince nasıl gülünc tepki veren varlığa dönüşeceğini ilham etti..Bir zamanlar "osmanlıca" tartışmaları vardı...ne kadar düzeysiz ve basit şeyler ile uğraşmaktır..Dillerin neden,nasıl,hangi imkan ve ihtiyaç nedeniyle yine insanların keşfi olduğunu keşke anlayabilsek..!!!

Faydalı bir yazı olmuş teşekkürler.

Sen de yorum yaz