Programlama Dilleri ve Arasındaki Farklar
Bir programlama dili, talimatları bir makine veya bilgisayara bağlamak için tasarlanmış bir formüldür. Programlama dilleri esas olarak bir makinenin performansını kontrol etmek veya algoritmaları ifade etmek için kullanılır. Şimdiye kadar, yaklaşık bin programlama dili oluşturulmuştur. Programlama dillerini içerdikleri sözdizimi(syntax) ve anlambilim (semantics) gibi özellikleri dikkate alarak aşağıdaki gibi sınıflandırmak mümkündür:
1) Prosedürel Programlama Dilleri
Prosedürel programlama dili, sonuca yol açan bir dizi ifadeyi yürütmek için kullanılır. Bu tip programlama dilleri çoklu değişkenleri, ağır döngüleri ve fonksiyonel programlama dillerinden ayıran bazı elementleri kullanır. Prosedürel dillerde fonksiyonların değerini döndürmek yerine değişkenleri kontrol edilebilir.
2) Fonksiyonel Programlama Dilleri
Fonksiyonel programlama dili, genellikle tekrarlanan işlevler için döngülerden kaçınarak, sıklıkla saklanan verileri kullanır. Fonksiyonel programlamanın ana odağı, işlevlerin geri dönüş değerleridir; yan etkiler ve saklama durumundaki farklı önerilerin şiddetle tavsiye edilmediğini gösterir. Bununla birlikte, bu programlama dilleri algoritmik çağrılar oluşturabilir ve bu çağrıların parametrelerini değiştirebilir. Fonksiyonel diller genellikle daha kolaydır ve soyut konularda anlamaya daha kolay hale getirir.
3) Nesneye Yönelik Programlama Dilleri (Object-oriented)
Nesne Yönelimli Programlamanın (NYP) altında yatan ana fikir, her bilgisayar programının etkileşim içerisinde olan birimler veya nesneler kümesinden oluştuğu varsayımıdır. Bu nesnelerin her biri, kendi içerisinde veri işleyebilir ve diğer nesneler ile çift yönlü veri alışverişinde bulunabilir. Hâlbuki NYP'den önce var olan tek yaklaşımda programlar sadece bir komut dizisi veya birer işlev (fonksiyon) kümesi olarak görülmektedirler.
Günümüzde çok çeşitli nesne tabanlı programlama dilleri olmasıyla beraber, en popüler diller sınıflar üzerine kurulmuşlardır. Bu dillerde nesneler sınıfların birer üyesidir ve nesnelerin tipini de bu sınıflar belirlerler. En yaygın NYP dillerinden bazıları, Python, C++, Objective C, Smalltalk, Delphi, Java, Swift, C#, Perl, Ruby ve PHP olarak sıralanabilir.
4) Script Programlama Dilleri (Scripting)
Script dili, script yorumlamak için yazılmış özel çalışma-zamanı sistemlerinin yorumlayabileceği programlama dilleridir. Diğer programlama dilleri ile yazılan kodlar makine koduna çevrilip çıkan program doğrudan çalıştırılırken script kodları interpreter tarafından doğrudan okunur ve yorumlanarak işlemler interpreter'ın kendisi tarafından yapılır.
İlk script dilleri genelde yığın dilleri veya iş denetim dilleri olarak adlandırılırdı. İlk script dilleri geleneksel düzenleme, derleme, bağlama ve çalıştırma işlemlerini kısaltmak için tasarlanmıştı. PHP, Python, Ruby, Perl gibi scriptleri çalıştırmak için tasarlanmış yazılımlardır.
5) Mantık Programlama Dilleri (Logic)
Mantık programlama veya mantıksal programlama, belli bir program diline bağlı kalmaksızın mantıksal tanımlarla yapılmak istenilen, mantıksal algoritma açılımının kullanıcı tarafından bilgisayar ortamında tanımlanması esasına dayanan bir mantık çözümleme yardımcısıdır.
Birçok program belli çalışma düzenine sahip olsa da olası öngörülen veya öngörülemeyen dallanmalarla ilerler veya olası öngörü bir çıkmaza girmesiyle bir paradoksal eğri oluşturur. Mantıksal programlama dili olarak Prolog gösterilebilir.
Programlama Dilleri Arasındaki Farklar
Günümüzde yazılım, teknolojik gelişmelere paralel olarak hızlı bir şekilde gelişmekte olup kullanılan programlama dillerinin sayısı da artmaktadır. Kullanılan programlar ve programlama dillerinin kendi aralarında çeşitli farklılıkları vardır. Yazılımların web programlama, mobil programlama veya masaüstü programlama gibi alanlara ayrılması yazılım dilleri arasındaki farklılıkları da ortaya koymaktadır. Web yazılım dillerinin hepsi ile masaüstü programlar geliştirilemeyeceği gibi diğer alandaki diller ile de başka alanlarda programlar yazmak mümkün değildir.
Buna göre bir web yazılım geliştirmek isteyen bir programcı PHP veya Asp.NET dillerini tercih edebilir (başka dilleri de tercih edebilir). Bu iki programlama dili arasındaki temel fark ise .NET dilinin nesne yönelimli programlama yapısını ve katmanlı mimariyi daha iyi desteklemesi olarak özetlenebilir. Sadece PHP ile veri tabanı üzerinden basit işlemler ile bir web sitesi ortaya çıkarabilir. Ancak Asp.NET ile hem veri tabanı ilişkisi hem nesneye yönelik kontroller yapabilir ve hepsini dizayn edilebilir.
Masaüstü program geliştirmek isteyen geliştiricilerin tercih edeceği diller ise C++, C#, Visual Basic, Java veya Delphi gibi programlama dilleridir. Bu programlama dillerinin hemen hemen hepsi de nesne yönelimli programlamayı desteklemektedir. Geniş bir kullanıma sahip olan bu diller ile masaüstü programlar rahatlıkla hazırlanabilir.
Yazılım geliştirmek ve dolayısıyla kişilerin işlerini kolaylaştıracak sistemler yapmak ilk etapta programlama dilinden bağımsız düşünülebilir. Yazılım planlaması incelendiğinde öncelikli olarak analiz kısmında hangi programlama dilinin kullanılacağı tespit edilir. Bir masaüstü uygulama için Laravel veya ASP programlama dilleri kullanılmaz. Ya da bir hastane otomasyonu geliştirmek için PHP dili tek başına tercih edilmez.
Yazılımı derinden öğrenmek, gömülü sistemler ve sistem programlama gibi alanlara yönelmek isteyenlerin tercih etmesi gereken temel programlama dilleri arasında en ön plana çıkanları C++, C#, Java, Delphi vb. gibi programlama dilleridir. Bu programlama dilleri arasında ortak olan bir tanımlama, kural, özellik ve kullanım şekli bulunmaktadır.