PHP-GTK I
Kuşkusuz PHP, Internet omurgasına bağlı sinir hücrelerinin en önemlilerinden biridir. Bugün milyonlarca web sitesi PHP aracılığıyla ziyaretçileriyle etkileşimli bir çatı altında çalışabilmektedir. PHP, Microsoft gibi bir yazılım devini, betik dilleri yarışında bir çok açıdan geride bırakmış, Perl'den doğmasına rağmen onu da geride bırakmış ve sanal dünyaya en hakim betik dili olmuştur.
.NET'in, Microsoft tarafından J2EE'ye karşı hamle olarak ileri sürülmesi, özgür yazılımcıları da heyecanlandırmış ve yeni arayışlara itmiştir. İşte PHP-GTK bu yeni arayışın ilk ürünlerinden biridir.
Tanım: PHP-GTK, GTK+ fonksiyonlarını kullanıp, tek başına çalışan, platform bağımsız, kendilerine ait GUI'lere sahip uygulamar geliştirebilmemiz için ortaya çıkarılmış yeni bir programlama teknolojisidir. Her ne kadar bir PHP Eklentisi olarak adlandırılsa da yüklendiği görev üst düzeydir.
Bu teknoloji ile C++ içinde GTK fonksiyonlarını kullanmak ile PHP içinde GTK fonksiyonlarını kullanmak artık çıktı üretimi açısından fark etmemektedir.
Bununla beraber PHP-GTK istemci taraflı çalışması için tasarlanmıştır. Web ortamında kullanılmaz. Yukarıda ayrıntılandırdığımız gibi PHP-GTK'nın ortaya çıkış amacı masaüstünde, tarayıcıdan bağımsız, ‘standalone' programlar oluşturmaktır.
Bu da nereden çıktı? Güzel güzel Delphi, Visual Basic kullanıyorduk Windows için program yazarken.
Linux'ta gcc c derleyicisi neyimize yetmiyordu ki? C 'de yıllardır var olan süper bir dil... Hele bir de Ansi C standartlarında yazarsak tam bir çoklu platform programcığına sahip oluruz, değil mi?
Tam olarak değil, hepimiz farkındayız ki Ansi C ile yazdığımız programcıklar bile bazen (benim gibi acemi programcıların bilgisayarında çoğunlukla..) iki sistemde çalışmamazlık edebiliyor. Bunda işlemci mimarisinden, bağlı kütüphanelerdeki bir virgülün farklılığına kadar bir çok etken söz konusu. Bununla beraber Windows için C++ ile geliştirilen bir uygulamanın da ne kadar zor yazıldığını, ne kadar uğraş gerektirdiğini bu işle uğraşan her programcı az çok bilmektedir.
PHP geliştiricileri, biz PHP programcıları gibi Windows ve Linux'ta birlikte çalışabilecek bir program yazmak için alt yapının tam olarak oturmadığının farkındaydılar. Her ne kadar Ansi C gibi bir standart ile ya da Java gibi çoklu platform teknolojisi ile bunun altından kalkılmaya çalışılıyorsa da eminiz ki Ansi C standartlarında kod yazmak, ya da C++'a göre daha kolay olan fakat geliştirilen uygulamaların hantal çalıştığı Java teknolojisi Ömer Balyalı gibi bir lise öğrencisinin PHP kodlarken yaşadığı rahatlığı ona sunmayacaktı.
Andrei Zmievski bunların farkında bir programcı olarak PHP'yi standartlaşan bir betik dili olmaktan çıkarıp tarayıcı bağımsız kullanıcı arabirimi bulunan bir dil haline getirmek için PHP-GTK'yı programlamaya başladı.
Çok değil bir kaç yıl önce, Linux popülaritesinin zirvesine ulaşırken, kullanıcılar bir şeylerin eksik olduğunun farkına varmışlardı. Penguenin sevimli görünüşü grafik ve kullanıcı arabirimindeki eksiklikler nedeniyle kullanıcıya bir soğukluk veriyordu. Fanatikler –ki sisteme yararlıdırlar bence- dışında ki herkes bu gerçeğin farkındaydı.
Bunun farkına varan linux topluluğu o sıralarda sisteme bir fotoğraf stüdyosunun dahil edilmesini düşünüyordu. GIMP adı verilen projede herşey çok güzel başladı fakat işler düşünüldüğü kadar hızlı ilerlemeyecekti. Bir süre aynı yolda devam eden topluluk bir standartlar kütüphanesinin GIMP'in araç kutusu için kesin bir gereklilik olduğu kanısına ulaştılar: GTK+ ( G IMP T ool K it)
GTK+ sadece GIMP ( G NU I mage M anipulation P rogram ) için oluşturulan bir standartlar kütüphanesiydi. Fakat bu kütüphane, yazılım dünyasını şaşırtacak biçimde oldukça hızlı ilerledi ve linux dağıtımlarının en önemli iki kabuğundan GNOME'un merkezi bir parçası haline geldi.
GTK+'nın hedefe yönelmiş olarak hareket ettiği, yukarıdaki gelişmelerin hemen ardından Windows ve BeOS sürümlerinin çıkması ile gayet anlaşılır hale geldi. Bu hamlelerin ardından, Zmievski , PHP ile GTK'yı bir PHP eklentisinde toplayarak geleceğin çoklu platform teknolojisini oluşturmak için kolları sıvadı.
ve Bugün.. Artık elimizde platform bağımsız, kullanıcı arabirimine sahip ve tek başına çalışabilen uygulamaları, Linux, Windows ve BeOS sistemlerinde çalıştıran bir programlama teknolojisinin ilk kararlı sürümü var: PHP-GTK 1.0.0
Bu teknolojiyi şu an bilgisayarınıza indirme ve deneme şansına sahipsiniz. Benim bilgisayarımda PHP-GTK 1.0 kararlı sürümü yüklü şu an. PHP-GTK şu aşamada GTK+ Sürüm 2.x'i desteklemiyor. Fakat PHP 5'in çıkmasının ardından bu alanda büyük bir atılım olacak ve PHP-GTK'nın çalışması için gerekli olan bütün teknolojiler birbirlerine entegre olarak aynı anda duyurulacak.
>> PHP-GTK Sürüm 1.0.0 | http://gtk.php.net/download.php
Ben aşağıdaki test uygulamalarını Windows XP üzerine PHP-GTK 1.0.0 kurulu makinemde gerçekleştireceğim.
Önce biraz kurulumdan bahsedeyim. PHP-GTK 1.0.0 kararlı sürümünü bilgisayarınıza indirdikten sonra 3 dizin ile karşılaşacaksınız; (İşlemlere başlamadan önce PHP dizininizin yedeğini alın, ve onu ortadan kaldırın.)
- Winnt dizinindeki php.ini dosyasını kendi php.ini dosyanızla değiştirin. (Unutmadan: php.ini dosyanıza çok fazla ayar girmişseniz readme.txt dosyasını takip edin ve geçerli php.ini ayarlarınızı koruyarak nasıl PHP-GTK kuracağınızı öğrenin.)
- PHP4 dizinindeki dosyaları X:\PHP\ dizinine kopyalayın. (X sürücü harfiniz olmak üzere)
İşlem tamam. Şimdi bir test yapalım. Aşağıdaki komutu sürücü harfini kendi sürücünüzünki ile değiştirerek girin.
İşlem düzgün tamamlanmış ise karşınızda şunu bulacaksınız;
Ne kadar hoş, öyle değil mi? En sevdiğim betik dilinden böyle bir çıktı görmek inanın beni çok mutlu etti. Evet, eminim ki kodları merak ediyorsunuz. Bu programın kodlarını görmek için x:\php\test\hello.php dosyasını açabilirsiniz. Fakat bence şimdi açmayın...
Çünkü bu yazının sonuna geldiğinizde orada gördüklerinizi anlıyor olacaksınız.
Her ne kadar burada PHP-GTK'yı, -içinde PHP olan bir teknolojiyi- anlatıyorsakta bunun istemci taraflı bir teknoloji olduğunu tekrar ifade etmekte fayda görüyorum.
Başa dönecek olursak, artık web için yazacağınız bir muhasebe uygulamasını istemci tarafında tek başına (standalone) çalışır olarak bulabileceksiniz.
Başta diğer diller ile PHP-GTK'nın çoklu platform bağlamında bir karşılaştırmasını yaptık. Şimdi de istemci taraflı diller bağlamında olaya yaklaşalım;
Visual Basic ve Delphi kolaylığı, hızlı çıktı üretimi ve görsel avantajları ile yeni bir programcının programlamaya ilk adımı atmasını sağlayan geliştirme ortamlarıdır. Fakat bu diller ile ciddi projelere adım atmak ne kadar doğru, tartışılır. C++ her açıdan üst düzey bir dil, fakat yukarıda da belirttiğim gibi bu dil ile windows uygulamaları geliştirmek ciddi anlamda çaba ve iyi bir ekip çalışması gerektiriyor.
Java, C++'a göre daha kolay öğrenilir ve daha kolay kodlanır. Fakat onun da hantallığı ayrı bir dert.
Visual Studio ile yaptığımız projelerdeki sırt yükümüz framework ise programcının ortam seçmesinde olumsuz bir etkiye sahip.
İşte bütün bu dillerin yanında PHP-GTK'nın niteliğini düşünecek olursak, PHP-GTK henüz tam anlamıyla bir standart değil. Eksikleri var. Fakat GTK+'nın gelişimi göz önüne alındığında hızlı ilerleyeceği kesin. Ben PHP 5 ile PHP-GTK'nın da büyük bir atılım yapacağı kanaatindeyim. Bunun yanısıra PHP-GTK'nın yapısal olarak PHP'den çıkan bir dil olması, şüphesiz PHP bilenlerin bu dile geçişini kolaylaştıracak bir etken.
Tabii görsel arayüz oluşturmak için birkaç yeni şey öğrenmemiz gerekecek. Sanılanın aksine PHP-GTK'ya başlayacak bir programcının PHP'yi biliyor olması kesin bir avantaj sağlar. Örneğin PHP'de üst düzey bir programcı olan Ertuğrul Yıldırım (HunTER) dostumun PHP-GTK ile ortaya nasıl programlar çıkarabileceğini gerçekten çok merak ediyorum.
Evet, temel noktaları bitirdik. Buraya kadar PHP-GTK'nın ne olduğunu, hangi aşamalardan geçerek bugüne geldiğini ve ne olmadığını anladık ve onu bilgisayarımıza kurup küçük de bir uygulama çalıştırdık. Sadece gelecekte ne olabileceğine değinmedik, fakat bu yazıyı okuduktan sonra gelecekte ne olabileceği kafanızda belirecektir.