24 Ağustos 2012 Cuma

Java Nedir?

Java Programlamaya Giriş

Sun Microsystems
Java programlama dili Sun Microsystems tarafından ilk olarak 1991 yılında geliştirilmeye başlandı. Java aslında Sun Microsystems'in elektronik ev aletlerinin programlanması amacıyla başlattığı bir projedir. Java dili Patrick Naughton, Chis Wartdh, James Gosling, Ed Frank ve Mike Sheridan'ın oluşturduğu bir yazılım grubu tarafından tasarlanmıştır.
Java
İlk zamanlarda bu dilin adı OAK idi. Ancak bu ada sahip başka bir program olduğu öğrenilince programın ismi Java olarak değiştirildi. Bu ismin bir kahve markasından esinlenerek verildiği söylenir. Aslında Java kahve manasına gelmektedir. Özellikle geceleri uzun çalışma saatlerini bilgisayar başında geçiren programcıların en büyük dostunun kahve olduğunu düşünürsek; programın neden bu ismi aldığı hakkında bir fikir sahibi olabiliriz diye düşünüyorum.

Başta da belirttiğimiz gibi Java elektronik ev aletleri için geliştirilmeye başlanmış bir programlama dilidir. Bu alanda gelişminin çok yavaş olması ve istenen verimin tam olarak alınamaması Java projesini bitme noktasına kadar getirmiştir. Ancak Java dilinin marifetleri sadece elektronik ev aletleri ile sınırlı değildi. Java web uygulamaları geliştirmeye izin veren bir dildir. Özellikle 1993'ten sonra dünyada internet iletişiminde yaşanan patlama Sun Microsystems'in java'nın bu özellikleri üzerne yoğunlaşmasını sağlamış ve adeta bu dilin hayatını kurtarmıştır. İlk kez 1995 yılında dünyaya sunulan Java dili çok ilgi görmüş, özellikle dinamik web sayalafının hazırlanmasında gösterdiği performans ve C++ diline yakın bir kodlama yapısına sahip olması, kolay öğrenilebilir olması gibi nedenler Java dilinin popüler bir yazılım dili olmasını sağlamıştır. Java programlama  dili günümüzde özellikle Google'un Android'i ve Nokia'nın Symbian işletim sistemine temel oluşturması ve bu sistemler için üretilen milyonlarca java uygulaması ile mobil teknolojinin gelişmesini sağlamıştır.

Java hız bakımından C++ ve C dilinin biraz gerisindedir. Aslında bu dilin yazıılma amacı daha doğru ve verimli prgramlar yazmak ve program yazmayı kolaylaştırmaktır. Java Nesne tabanlı ya da Nesne yönelimli(Object Oriented) bir programlama dilidir. Yani bu dilin bileşenlerini aslında nesneler oluşturur. Java'da C ve C++'da olduğu gibi yapısal(Structural)progamlar yazılabilse de java gerçek gücünü Nesnelerle çalışırken gösterir. Şimdi şu nesne konusuna kısa bir açıklama yapalım

Nesneye Yönelik Programlama

Tornavida

İlk olarak kendi kendimize soralım. Nesne nedir? Nesneler, çevremizde bulunan, duyu organları ile algılayabildiğimiz; çeşitli özellikleri(renk, koku, tat,boyut ve ağırlık gibi) ve işlevleri(birşey kesmek, bir yere destek olmak, birşey üretmek, hesaplamak vs) olan varlıklardır. Mesela sol resimdeki tornavidayı düşünün. Bu tornavidanın sarı renkli plastik sapı, parlak metal ucu ve düz ağzı sahip olduğu özellikleridir. Bu tornavida ile düz vidaları sıkıp gevşetebilmesi, tornavida nesnesinin işlevi olarak tanımlaabilir.


Düz tornavida ile yıldız başlı vidaları sıkıp gevşetemezsiniz. Yani düz ağızlı tornavidanın bu noktada işlevsel sınırlılığı var. Bu sınırlılık tornavidanın sahip olduğu özelliklerle ilgilidir ve bu özellikler üretim esnasında belirlenir. Bu tornavidayı tamirat yaparken defalarca kullanabilirsiniz. Tornavida her defasında aynı şekilde çalışır ve aynı hizmeti verir. Ayrıca bu tornavidayı özelliklerini bilen başka biri ya da birileri ile ortaklaşa da kullanabilirsiniz.

Buraya kadar gerçek hayattaki nesnelerden bahsettik. Yazılım dünyasında bahsedilen nesne kavramı da aynı şekilde işlemektedir. Yani Nesneye Yönelik programlama yaparken aynı gerçek hayatta bir tornavidayı imal eder gibi programda kullanacağınız nesneleri inşa edersiniz. Ona çeşitli özellikler verirsiniz, işllevler verirsiniz. Sonra da programda gerektiği yerlerde o nesneyi çalışması için çağırırsınız. Aynen lazım olduğunda tornavidayı alıp kullandığınız gibi üretilen nesneleri çağırıp kullanabilirsiniz. Aynı proje üzerinde birden fazla kişinin çalıştığını düşünün. Tornavidayı nasıl çalışma arkadaşınızla ortaklaşa kullanabiliyorsanız, aynı proje içinde üretilen bir nesne de o şekilde ortaklaşa kullanılabilir.

Nesneye yönelik programlamanın mantığı bu şekildedir diyebiliriz. Java'da ürettiğiniz nesneler, çeşitli değişkenler ve method adı verilen fonksiyonlardan oluşur. Nesne içindeki değişkenlerin erişim türleri(public veya protected gibi) yazılımcı tarafından belirlenebilir. Böylelikle bir nesneye ait değişkenlerin değerlerinin yanlışlıkla değiştirilmesi engellenmiş olur. Buraya kadar saydıklarımız Nesneye Yönelik (Object Oriented) programlamanın avantajlarından sadece birkaçıdır.


Turgut Arslan

2 Mayıs 2012 Çarşamba

Bilgisayarda PHP Çalıştırmak

PHP Dosyalarını Kendi Bilgisayarımda Nasıl Çalıştırabilirim?

PHP
Daha önceki yazımda da bahsettiğim gibi PHP ile hazırlanan programlar çalışabilmek için PHP yorumlayıcısına ihtiyaç duyarlar. C, Basic, Delphi gibi dillerde yazılan programlar gibi kendi başlarına çalıştırılabilir uygulama dosyaları yoktur. Siz sadece php kodlarını yazar ve ".php" uzantılı bir dosya oluşturursunuz. PHP yorumlayıcısı dosyayı okur ve yazdığınız programı çalıştırır. PHP desteği olan sunucuların verdiği hizmet budur. Yazdığınız programların nasıl çalıştığını görebilmek için programları hosting alanınızdaki ilgili klasöre upload etmeniz gerekir. Bu da PHP ile program geliştirirken ya da öğrenmeye çalışırken her deneme için tekrar tekrar sunucuya bağlanmanız ve PHP dosyanızı sunucuya yüklemeniz gerektiği anlamına gelir. 

Apache Server
Eğer PHP ile yazılmış bir site yönetiyorsanız hazırladığınız programın tam olarak doğru çalışıp çalışmadığını bilmeden sunucuya yüklemek istemezsiniz. Çünkü program yazılırken yapılan hatalar ancak çalıştırıldıkları zaman ortaya çıkarlar. Açıkçası PHP'de hata ayıklaması çok zordur ve bu hatalar yayında olan bir sitede meydana gelirse ziyaretçilere verilen hizmet  aksayabilir ya da site için güvenlik açığı oluşturabilir. Bu yüzden hazırlanan programların güvenli bir ortamda denenmesi gerekir. Eğer bilgisayarınıza PHP destekleyen bir yerel sunucu kurarsanız yazdığınız programları güvenle, rahatça deneyebilir ve olası hataları belirleyebilirsiniz. Ayrıca öğrenme aşamasında olanlar için de iyi bir çalışma ortamıdır. PHP yorumlayıcıları Apache Server üzerinde çalışırlar. Her ne kadar IIS(Internet Information Services) üzerinde de çlıştırılabilseler de en iyi sonucu Apache Sunucularda verirler. 

MySQL Database
Eğer PHP ile çalışacaksanız mutlaka veritabanı uygulamaları da yazacaksınız demektir. Bu durumda bilgisayarınıza bir veritabanı yönetim sistemi kurmanız gerekir.   Apache Sever üzerinde PHP ile en iyi uyum sağlayan veritabanı yönetim sistemi MySQL'dir. PHP, MSSQL ve Firebird gibi diğer veritabanları ile de çalışabilse de en iyi performansı MySQL Database üzerinde göstermektedir.



Bilgisayarınızda bir yerel sunucu kurmak için bu üç unsuru, Apache, PHP ve MySQL'i kumalısınız. veritabanı ile çalışmayacaksanız MySQL'i kurmasanız da olur. Ama hazır başlamışken veritabanını da aradan çıkarabilirsiniz.

Windows bilgisayar üzerine yerel sunucu kurabilmek için,

Apache Serveri buradan indirebilirsiniz >>Apache Server Download<<
PHP yorumlayıcısını buradan indirebilirsiniz >>PHP Download<<
MySQL'in ücretsiz sürümünü buradan indirebilirsiniz >>MySQL Download<<

Eğer PHP ve sunucular konusunda deneyimli değilseniz Apache-PHP-MySQL üçlüsünü otomatik olarak bilgisayarınızda kurmanızı ve yönetmenizi sağlayan hazır yerel sunucu programları da bulunmaktadır. Kullanışlı arayüzleri ve basit tasarımları ile özellikle web tasarım ve programlamaya yeni başlayanlar için idealdir. Ayrıca Joomla,Wordpress, Drupal,PHPbb gibi İçerik Yönetim Sistemleri(Content Management Systems-CMS) bu yerel sunucularda kurulup çalıştırılabilir. Aşağıda en çok kullanılan yerel sunucu programlarının indirme linklerini veriyorum. Bunlardan herhangi birini bilgisayarınıza indirip kurduktan sonra üzerinde çalıştığınız PHP programlarını deneyebilirsiniz.

Wam Server XAMPP Sever easyPHP

Şimdilik anlatacaklarım bu kadar. PHP oldukça kullanışlı ve zevkli bir dildir. Bu dili öğrenme yolundaki çalışmalarımıza bir sonraki yazımızda devam edeceğiz. Hepinize iyi çalışmalar...



Turgut Arslan