• Özgürlük için Pardus...

PHP+Gtk2 kütüphaneleri nedir ve ne işe Yarar?

Php ile Gtk2 kütüphanelerini kullanacağız ama Gtk2 kütüphaneleri nedir

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 uygulamalar 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

Bu yazı www.php.org.tr den UMUT IŞIK tarafından yazılmıştır.

  • #1
    Posted by meraklı on February 27th, 2008 at 12:08 am

    Gtk ile yazılan programı herhangi bir mainede çalıştırabilmek için Gnope gibi bir yazılımı sisteme kurmam gerekiyor anladığım kadarıyla. Ee öyleyse herhangi birisi -muhtemelen php ve programlamadan anlamayan birisi- benim yazdığım programı çalıştırmak için gerekli gnomeyi yüklemeyi nereden akıl edecek. Neticede bir exe dosyası elde edemiyoruz. Sizin PhpWord dosyasını indirdim ve hiçbir kurulum yokken çalıştırdığımda doğal olarak sonuç alamadım. Bilmeyen adam gnope ile uğraşmaz, dener çalışmayınca siler gider. Bu durumda platform bağımsız lafı havada kalmıyormu?

    Yoksa benmi bişeyleri eksik anlıyorum???

  • #2
    Posted by kGlz on February 27th, 2008 at 4:02 pm

    Merhaba Meraklı

    ewet gtk ile yapılmış programlarda gnope gerekli.vede gnope olmadan programın çalışmaz.Gnope bir framework tür.o nedenle gtk ile yaplımış programların çalışması için gereklidir.

    Ancak şöyle düşünebiliriz..NET kullanıcıları bilgisayarlarında .NET uygulamalarını çalıştırmak için framework 2.0 kurmalıdırlar.Java programcıları ise JVM(Java virtual machines) kurmak zorundadırlar.Bu programlama dilleri de platform bağımsız olarak geçmektedir.yani anlatmaya çalıştığım platform bağımsız diller mutlaka bir frameworke ihtiyaç duyarlar.Java için jvm .NET için Framework 2.0 ve tabiki PHP-Gtk2 içinde Gnope gereklidir. yani eğer senin düşündüün gibi düşünüsek bütün programlama dilleri içim platform bağımsız lafı havada kalır.

    Kolay gelsin.

  • #3
    Posted by meraklı on February 28th, 2008 at 6:23 pm

    Merhaba. Yine ben.

    Peki ben bir programcı olarak php, .NET yada Java ile çalışıyorum diyelim. Amacım; herkesin kullanabileceği ve işine çok yarayacağı bir program geliştirmek. Öyleki vatandaş bu programı alsın makinasına ıvır zıvır bisürü framework denen şeylerden kurmasın -ki zaten anlamıyor.- ve programı güzel güzel kullansın.

    Şimdi, dediğinize göre bu mümkün değil. O zaman ben amacıma ulaşmış oluyormuyum? Ben web sayfasını kodlarım. Kod yazarken; tarayıcı explorer ise şöyle, firefox ise böyle, opera ise öyle kod göster derim. Bunu yapamadıktan sonra son kullanıcı illaki anlamak zorunda olmadığı framework denen programları kurmak zorunda olacak ve çok kişi denemeyecek bile programımı.

    Yani aslında bu firmaların birazcık yanıltıcı reklamı oluyor deÄŸilmi? Benim yazılımım ile her platformda çalışan kod yazarsın deniyor. Ama ara birim olmadan olmuyor!!!…

    İlk duyduğumda, zaten üzerinde çalıştığım php dili ile güzel exe dosyaları oluşturucam, arkadaşlara vericem ve onlarda web server bulunmayan bilgisayarlarında bunu çalıştıracaklar sandım. Bayağıda sevinmiştim.

    Hoşçakalın…

  • #4
    Posted by kGlz on February 28th, 2008 at 10:59 pm

    Merhaba meraklı

    Aslında şöyle açıklayayım.PHP ile masaüstü programlar geliÅŸtirmek daha emekleme aÅŸamasında .bu nedenle düşündüklerin doÄŸru.ancak diÄŸer diller için durum şöyle.mesela .Net kullacıları bir program yapıp setup.exe sini oluÅŸtururken kurulum dosyalarının içine Frameworküde gömebiliyorlar ve böylece baÅŸka cahil bir kullanıcı bu programı bilgisayarına kurmak istediÄŸinde aslında anlamadan yani arka planda Framworkude kurmuÅŸ oluyo.ve böylecede bir sorun çıkmıyo.cahil adamın herhangi ekstra bir ÅŸey yapmasına gerek kalmıyo.sadece “Next” tuÅŸlarına basıp programı kuruyo.

    Yada .Net programları için gereken framework şu anda Windows vista işletim sistemiyle hazır geliyo .böylecede .Net ile yapılan programlar için altyapıyı zaten işletim sistemi vermiş oluyo.yani sorun ortadan kallkıyo.

    Peki neden böyle framwork türünde programlara ihtiyaç duyuluyo dersen onun nedeni de şu:
    Şimdi işletim sistemleri farklı mimarileri kullanıyo ama programların yaptığı iş her işltim sisteminde aynı sonucu vermesi için frameworkler, programı işletim sistemine tanıtıyo ki program sorunsuz çalışsın.Framworkler bir nevi işletim sistemine göre programın derlenmesini sağlıyo.

    Web sayfaları için ise durum senin dediğin gibikarmaşık değil.yani explorer ,firefox veya opera için herşeyin farklı olması gerekmiyor.belli başlı yerlerde küçük ayrıntı şeklinde yani CSS dosyalarında biraz faklılık oluyor ama senin dediğin kadar karmaşık değil.Gözün kormasın yani.CSS öğrenince iş çok kolaylaşır.sen öğrenmeye devam et.

    Şu anda PHP-GTK2 kütüphaneleri emekleme aşamasında olduğu için çok nüyük projeler yapılamayo zaten ama ilerde neden olmasın.Sen vazgeçme ve çalışmaya devam et.php yanında başka bir masaüstü programlaam dilinide öğren.herşey senin öğrenme azminle bir yere varır.yani programcılık yolunda herşey senin öğrenme isteğinle bir souca ulaşacak.O nedenle çalışmaya devam et.

    Kendine iyi bak.
    sende hoşçakal.:-)))

  • #5
    Posted by Meraklı on February 29th, 2008 at 1:24 pm

    Yine yine ben.
    Artık kovalayacaklar beni buradan :)

    Evet, bazı ÅŸeyler yerine oturdu sanırım. .Net setup dosyasında framework bulunduÄŸunu bilmiyordum. Php+gtk’da da olabilecek olması umut verdi bana ancak ÅŸu anda olmaması biraz can sıkıcı oldu. Demek ki önceki mesajımda da belirttiÄŸim gibi, tam bir sonuca ulaşılmadan reklam yapınca firmalar, algılama farklı (yanılgıya açık) oluyor.

    Bizim php+gtk’nın da yakında tam setup’lı olması beklentisi ile…
    Hoşçakalın.

  • #6
    Posted by kGlz on February 29th, 2008 at 4:12 pm

    Hoşçakal Meraklı

  • #7

    Paylasimlariniz icin tesekkur ederim.

  • #8
    Posted by sondaj on September 19th, 2008 at 1:06 am

    Bloguna bundan sonra sýk sýk takýlacaðým. teþekkürler :)

Share your opinion! Post your thoughts.