1) Yapısal Programlama
Yapısal programa tekniğinde ise alt programlar (procedures) ve fonksiyonlar (functions) kullanılır. Böylece program akışının kontrolünde büyük kolaylıklar sağlanmış olur. Program akışı esnasında, ana program içerisinden alt programlar çağrılıyor. Bu alt program çalıştırıldıktan sonra, program akışı tekrar geri dönecek ve programın işleyişi kaldığı noktadan devam edecektir. Yapısal programlama tekniğinde kod içerisinde aynı alt program defalarca çağrılabilir. Böylece gereksiz kod tekrarı da ortadan kalkmış olur.
2) Modüler Programlama
Modüler programlama tekniğinde belli altprogramlar ayrı ayrı modüller içinde gruplandırılır. Her modül içerinde ana program içinde tanımlı global değişkenler geçerlidir. Aynı zamanda her modül kendi verisine de sahiptir.
3) Nesne Tabanlı Programlama
Nesne tabanlı programlama (Object-Oriented Programming, OOP) dilleri 1980’li yıllarda C++ ile ortaya çı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ğlar. Bu programlama sisteminin zor olması nedeniyle, çok sayıdaki nesneler önceden programcıya hazır bir şekilde sunulur. Günümüzdeki programcılar ise nesneye yönelik olan ve Visual özellikler içeren sürümleri kullanmaktadır. Visual C++, C++ Builder, Delphi, Java, Visual Basic vb. gibi örnekler sayılabilir.
Bu teknikte nesneler birbirlerine mesaj göndererek etkileşim içinde bulunurlar. Nesne yönelimli programlama tekniğinde açık bir biçimde altprogramları çağırmak yerine, direkt olarak ilgili nesneye bir mesaj gönderilir. Nesne kendine gelen mesajı alır ve öncelikle nesnenin bir örneğini (kopyasını) oluşturur. Bu kopya gerekli işlemleri yaptıktan sonra kendini yok eder. Tüm bu işlemlerden nesnenin kendisi sorumludur.
4) Olay Temelli Programlama
Bilgisayarda bir uygulamayı kullanırken, ekran üzerinde bir nesnenin hareket ettirilmesi veya bir tuşa basılarak düğmelerin seçilmesi işlemleri bir olaya dayanır. Olay temelli programlama (Event – Driven Programmming, EDP) kullanıcıların yapacakları işlemlere göre programın hareket etmesi temeline dayanır. Daha önceki programlarda ekrana gelen menülerde daha çok klavyenin fonksiyon ve yön tuşları aktif olarak kullanılıyordu. Olay temelli programlamada farenin menüler ve pencereler üzerinde oldukça yaygın olarak kullanılması sağlanmıştır. Bu şekilde işlemler daha basit, fonksiyonel ve daha kullanışlıdır.
Programlama Dillerinin Sınıflandırılması
Programlama dilleri, makine dilinde programlama çok zor olduğu için geliştirilmiştir. 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. Yazılan kodları, zaten makine dilinde değilse, makine diline çevirip koşmaya hazır hale getirmek, o dilin derleyicisinin veya yorumlayıcısının görevidir. Bu diller seviyelerine göre aşağıdaki gibi sınıflandırılabilir;
Burada insana yakın demekteki kasıt, insanın anlamasına uygun, anlamlı sözcüklerle kodlama yapmak, makineye yakın demekteki kasıt ise bilgisayarın çalışma mantığına uygun, ne yapılacağı değil, nasıl yapılacağını kodlamaktır. Bir dilin seviyesi yüksekse, o dili öğrenmek kolaydır, kaynak kod kısadır ama oluşacak çalıştırılabilir dosya uzundur, uzun ve karmaşık işlemler kısa kodlarla gerçekleştirilebilir; Alçak seviyeli dillerde ise programcı, makineye daha hakimdir, sorumluluğu daha fazladır, kod yazımı uzun ve zahmetlidir.
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.
OOP (Object Oriented Programming) yani NYP (Nesneye Yönelik Programlama)’nın kullanılmasıyla ve Visual (Görsel) programcılığın da gelişmesi ile beraber ortaya oldukça güzel görünümlü ve kullanışlı programlar çıkmaya başlamıştır. Bu durum bilgisayar programlarına olan ilgiyi bir hayli arttırmış ve bu konulardaki araştırmaları hızlandırmıştır. Sonuçta, pek çok dilin artık nesneye yönelik olan ve görsel özellikler içeren sürümleri kullanılmakta ve tercih edilmektedir. Örneğin: Visual C++, C++ Builder, Delphi, Kylix, Java, Visual Basic vb. gibi diller.
Uygulama programlarına, ticari programlara veya işletim sistemlerinin kullanımına yönelik yazılım geliştirmek isteyen programcıların C, C++, Java, Delphi vb. gibi son zamanların en popüler dilleri üzerinde çalışması ve en az bunlardan bir tanesini öğrenmesi gerekir. Özellikle İnternet’in gelişmesi ile birlikte programlama dillerinin, yapılacak işe veya kullanılacak platforma göre değişik özellikler gösteren varyasyonları çıkmıştır. Bu durumda web teknolojisini izleyen ve İnternet üzerinde yazılım geliştirmek isteyen bir programcının javascript, vbscript, HTML gibi dilleri de bilmesi ve bu konularda kendini geliştirmesi de ayrı bir gereklilik olmuştur. Sıkça kullanılan programlama dilleri kısaca özetlenirse;
C
Yapı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 kadar her türlü işlem yapılabilir. Bu özelliği sayesinde kullanım alanı çok geniş olan 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 biridir.
Pascal
Yapısal bir dildir, C diline benzerlik gösterir. Öğrenilmesinin kolay oluşu ve genelde, bilgisayar eğitimi veren okullarda okutulan bir ders olması sebebiyle kullanım alanı daha çok üniversiteler ve bilimsel hesaplamalar yapan kurumlardır.
C#
Nesneye dayalı bir programlama dilidir. 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 firmasının Java teknolojisine rakip olarak ortaya sürdüğü bir programlama dilidir ve Microsoft’un bu konulardaki (İnternet 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.
Delphi
Pascal tabanlı bir dil olup nesneye yönelik programlama yapabilme özelliği taşır. Öğreniminin kolay oluşu ve genellikle üniversitelerde Pascal eğitiminin ağırlıklı verilmesi nedenleriyle çoğu bilgisayar programlama öğrencisinin tercih ettiği bir dildir. Görsel programlama özelliği taşır. Şu anda İnternet üzerinde en çok desteklenen ve üzerine bileşen (component) geliştirilen dillerin başında yer alır. Geniş bir kullanıcı kitlesi vardır.
Visual Basic
Basic 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çekli projelerde tercih edilir. Delphi’den sonra yoğun olarak kullanılmaktadır
VB.NET
Nesneye dayalı bir dildir. VisualBasic(VB) teki bir ç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.
Java
Açık olmak gerekirse, İnternet programcılığı, esnek programlama mimarileri, OOP gibi konularda söylenmesi gereken önemli bir nokta; Java dilinin, programlama dünyasına getirdiği önemli bir yeniliktir. Bu yenilik platformdan yani işletim sisteminden bağımsız olarak 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 döneminin kapanmaya başladığı düşünülürse birçok cihazda çalışabilecek programların yazılmasının ne derece önemli olduğu anlaşılabilir. Java, son yıllarda programlama dünyasına gelmiş en iyi programlama araçlarından biridir ve yeni çıkacak programlama dillerinin çoğu Java’nın birçok özelliğinden esinlenmektedir.
Java, nesneye yönelik dillerdendir. Son yıllarda geliştirilmiş bir dil olup modern ve yenlikçi altyapısı, görsel ö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 platform bağımsızlığı özelliği ile hemen hemen her alanda kullanılabilen esnek ve güçlü bir dildir.