Bumerang - Yazarkafe
20/02/2014Bilgisayar Genel

Programlamaya Genel Bakış

programlamaProgramlama dediğimiz yazılım geliştirme aşaması ilk başlarda sadece kodlamadan ibaretti. Ancak daha sonra bilgisayar dünyasındaki hızlı yükselişle birlikte yazılımdan  beklenenler arttı ve grafik ekranlı işletim sistemleriyle birlikte yazılımlardan daha kullanıcı etkileşimli ara birimler tasarlamayı da içine alır oldu.

Bu kapsam genişlemesi aynı zamanda yazılım geliştirme araçlarının ve programlama dillerinin kapsamını da genişletti. Günümüzde çok gelişmiş yazılım geliştirme ortamları sayesinde hem kodlama hem de kullanıcı arabirimi tasarımını çok kolay bir şekilde geliştirebiliyoruz. Ama nedir bu yazılım geliştirme arabirimi, programlama dili, kodlama, teknoloji, programlama? Nedir bunlar ve birbirleriyle ilişkileri nedir?

Önceki girdilerdeki diyetisyen için randevu yazılımını ele alalım. Uygulamayı hangi platform için geliştirecektik: Web. Demek ki olayın bir platform boyutu var. Yani uygulama neyin üzerinde çalışacak. Internet dünyasının ortaya çıktığı günlere kadar yazılımlar sadece işletim sistemleri için geliştirildi. Burada platform dediğimiz şey işletim sistemleri ve işletim sistemlerinin üzerlerinde çalıştıkları bilgisayar sistemleriydi. Bir kişisel bilgisayar için yazılım geliştirecekseniz sizin için önemli olan bu kişisel bilgisayarın işlemcisinin türünün ne olduğu ve üzerinde çalışan işletim sistemiydi; yani bir x86 ve Windows ya da bir Apple ve MacOS gibi… Platformda esas olan yazdığınız programda hangi programlama dilini kullandığınızdan bağımsız olarak, platforma özel durumları biliyor olmanız gerekliliğidir. Bu durumda siz eğer Windows programlıyorsanız farenin tıklama olayının nasıl ele alındığını bilmek önemli olur. Bunu C# ya da Visual Basic ile programlıyor oluşunuz bir şeyi değiştirmez. Yine benzer bir biçimde “Form” nesnesi ve üzerindeki buton, metin kutusu, açılır liste gibi kutuların nasıl çalıştığını ve birbirleriyle ilişkisini bilmek demek, platformu bilmek demektir ve programlama dilleriyle direkt olarak ilişkili değildir. Öreğin Visual Basic ile Windows programlama konusunda uzmanlaşmış bir kişi, Web Uygulamalarındaki “session” mantığını bu platforma bilgi ve deneyimi olmadığı için bilmiyor olabilir. Bu, bu kişinin Visual Basic bilmediği anlamına gelmez. Günümüzde işletim sistemleri haricinde bazı başka platformlar da bulunmaktadır. Bunlar avuç içi bilgisayarlar, cep telefonları, gömülü sistemler, internet, ofis sistemleri, veritabanları olarak sıralanabilir. Bazen de bunların birleşiminden oluşabilir. Örneğin bir ucunda ATM, bir ucunda internet şubesi, bir ucunda Windows üzerinde çalışan şube uygulamaları ve arka uçta çalışan servisler ve veritabanlarıyla birlikte bir bankacılık uygulaması komple bir platformlar birleşimi platformudur.

Platform üzerinde uygulama geliştireceğimiz bir alan ama olayın bir de “uygulama türü” boyutu vardır. Yani Windows için uygulama geliştireceksiniz ama bu bir konsol uygulaması mı olacak, form uygulaması mı yoksa Windows servisi mi? Ya da Web platformu için bir uygulama geliştireceksiniz. Bu bir Web uygulaması mı olacak yoksa Web servisi mi?

Uygulamanızı geliştirmek için bir platform seçtikten sonra sıra bu platform için programlama yapacağınız programlama dili seçimine gelir. İşte bu noktada bazen seçtiğimiz platforma özel dilleri tercih etmemiz gerekirken, bazen birçok platforma destek veren programlama dillerini seçme şansımız da olabilir. Örneğin ASP uygulamaları geliştirirken ilk zamanlarda zorunlu olarak “VBScript” kullanmamız gerekiyordu. Ancak şimdi Asp.Net uygulamaları geliştirmek için isterseniz Visual Basic, isterseniz C# kullanabilirsiniz. Bu dilleri aynı zamanda Windows ya da mobil cihazları programlamada da kullanabilirsiniz. Bir programlama dilinin diğerinden farkı genel olarak söz dizimi, değişkenler, nesnelerle çalışma, fonksiyonlar, kod akışlarının yönetimi, hata işlemeye yaklaşımı başlıklarında belirlenebilir. Farklı üreticiler, farklı ya da benzeri platformları destekleyen programlama dilleri geliştirmişlerdir ve geliştirmeye devam etmektedirler. Hangi programlama dilini tercih edeceğinizi bu konudaki daha önceki birikiminiz, müşteri talebi ve piyasadaki eğilimler belirlemektedir.
Günümüzde programlama dilleri sadece temel programlama yapısıyla gelmiyorlar. Artık beraberlerinde çok güçlü birer altyapıyla birlikte geliyorlar. Yüzlerce ya da binlerce hazır nesne ve fonksiyon kitaplığından oluşan bu altyapılar, kullandığınız dilde platform üzerinde yapılması gereken işlemleri çok daha kolay bir biçimde yapmanızı sağlar. .Net Framework bu anlamda Microsoft programlama dilleri için geliştirilmiş bir altyapıdır.

Platformu belirleyip programlama dilini tercih ettikten sonra sıra programlama ortamını seçmeye gelir. Programlama ortamı, (IDE: Integrated Development Environment) basit bir not defteri uygulaması bile olabilir. Ancak kullanıcı arayüzlerini tasarlayacak form tasarımcıları, kod yazarken işinizi kolaylaştıracak otomatik tamamlayıcılar ve akıllı yardımlarla çalışmak çok daha verimli programlama yapmanızı sağlayacaktır. Eğer programlama dili olarak Visual Basic seçtiyseniz dilerseniz Visual Basic 2008 Express Edition ya da Visual Studio 2008’in standart, profesyonel ya da takım sürümlerini kullanabilirsiniz. Ortamı belirlemenizde bütçe ve müşteri/proje talepleri önem kazanır. Eğer proje gereği bir Windows Servisi yazmanız gerekiyorsa bunu Visual Basic 2008 Express Edition ile yapamazsınız. Bunu için daha yüksek bir Visual Studio sürümüne ihtiyacınız olacaktır.

Tüm bunların dışında uygulama geliştirirken kullanmanız gerekecek “teknoloji”ler vardır. Örneğin platformdan ve programlama dilinden bağımsız olarak kullanabileceğiniz XML bir teknolojidir. Eğer müşteri için bir toplu mail bülteni uygulaması geliştiriyorsanız SMTP protokolünün nasıl çalıştığını bilmeniz ve SMTP sunucularını tanımanız gerekir.

Ve son olarak da “Know How” ya da alan bilgisi diyebileceğimiz bir boyutu vardır programlamanın. Eğer bir bankacılık uygulaması geliştirecekseniz, bankacılık işlemlerini ve kurallarını bilmeniz gerekir. Bilmiyorsanız da ya ekibe bilen birini alırsınız ya da öğrenirsiniz…

Kadir Çamoğlu