|
GTKSÖZLÜK, GTKTALKER, GNUİŞLETME ve GTK GNOME Programlama |
|
GTK kullanarak yazdığım diğer bir uygulama da GTKTALKER: Socket ve grafik arayüz ortak kullanımını gösteren herhangi bir örnek bulamadım ve oturup kendim yazmaya karar verdim. Diyebilirim ki en güvenilir (stable) uygulamam olmuştur. Test aşamasında Internet üzerinde 33.6 kb/s bağlantıyla dahi xchat kullanırcasına karşılıklı olarak yazışma yapılabildi. Yazım aşamasında karşıma çıkan en büyük sorun; Sunucu ve istemciyi aynı yürütülür (executable) dosya içerisinde bulundurmam ve sunucu tarafının sürekli olarak gelecek olan UDP sinyallerini dinlemesi gerekiyordu. fork() komutunu en iyi çözüm yolu olarak düşünmüştüm ancak GTK komutlarının fork() ile oluşturulan child process içerisinde çalıştırılamadığını öğrenince GTK thread yapısını kullanmak zorunda kaldım. UDP socket ve thread yapısının GTK altında kullanılmasının anlaşılması açısından gayet iyi bir örnektir. GTKTALKER isimli uygulama üç günlük bir emeğin ürünüdür. Üzerinde çalıştığım son uygulama GNUİŞLETME: GNUİŞLETME tamamen GNU olan ve Linux altında stok ve cari işlemlerinin yürütülmesi amacıyla MySQL kullanılarak hazırlanan bir programdır. Şu an henüz 0.1 sürümüne ulaşamadı ama gayet güvenilir olması için uğraşıyorum. Çünkü her alanda kullanılabilecek bir program olacaktır. Türkiye'deki Linux kullanımının özendirilmesi amacıyla şirketlerin ve ofislerin içerisine girmenin en önemli yolunun böyle bir uygulama olduğunu düşündüm. Şu an için GNUİŞLETME stok ve cari işlemlerini kapsayacak ancak daha sonraki sürümlerinde muhasebenin ihtiyacı olan diğer özelliklerde eklenecek ve mümkün olduğu kadar son kullanıcıyı düşünerek bu işlemleri yapmaya çalışmaktayım. GPL uygulama yazılması konusunda bakılacak olursa Türkiye'deki uygulamaların gayet az olduğu bir gerçektir. Bu uygulamanın ciddi olarak bu açığın kapatılmasında önemli bir rol oynayacağı kanısındayım. Bu yazı hazırlanırken ilk ekran görüntüleri yerleştirilmiştir. Peki neden bu programlar yazılırken GTK seçildi? Linux'da ilk olarak konsolda program yazmaya başladım. Bir zaman sonra grafik arayüz kullanımının gerekli olduğu bir zamanda konsolda yazılan uygulamaların kullanımının az olması sebebiyle grafik arayüze geçiş yapmak için karar aldım ve Linux altında grafik kütüphanelerini incelemeye başladım. Karşıma bu konuda çıkan ilk kütüphane Qt oldu. Özellikle Qt ile yazılmış olan qtez adlı kullanım olarak C Builder'ı anımsatan uygulamayla epey bir süre ilgilendim. Ancak kendilerinin yazdıkları QPL lisansı altında bir lisans ile dağıtmaları onlara karşı bir antipati oluşmasına sebep oldu. Qt şu anda GPL bir sürümü mevcut ancak yıllarca UNIX sistemlerde grafik arayüzde programlama yapmak için kullanılan Motif kütüphanesinde GPL lisansı altına geçti. Bu iki büyük kütüphanenin GPL lisansı altına geçmesini tek nedeni kullanımlarının azalması. GTK GPL olması nedeniyle insanların rağbetine uğrayınca onlar da bu kararı aldılar. (Aslında tüm amaçlarının ticari bir yapıya dayandığı gayet açıktır.) Linus Torvalds bir kernel geliştirirken ve bunu GPL yaparken onun üzerinde çalışan bir uygulamayı neden GPL olamayan bir kütüphaneye yaslama ihtiyacı duyulsun? Bu cümlemden paralı uygulamalar yazılmasına karşı olduğum çıkmasın, ama paralı uygulamayı yazarken bu uygulamanın bir GPL sürümünün olması taraftarıyım. GTK ile nasıl uygulama geliştirilebilir? Şu an için piyasada Türkçe kitap olarak sadece yazdığım GTK+ Gnome programlama isimli kitap mevcut. Bu kitabın size yetmediği durumlarda size www.gtk.org adresini tavsiye edebilirim. Bu adreste her türlü GTK API'larına ulaşabilirsiniz. Programları geliştirmek için kullanılacak araçlar olarak size tavsiyem Glade (glade.gnome.org) ve Anjuta (anjuta.sourceforge.net) isimli programlardır. Anjuta benim Linux işletim sisteminde bu güne kadar gördüğüm en güzel tümleşik geliştirme ortamı ve kullanmanızı şiddetle tavsiye ederim. GTK'nın geleceği ne olacaktır? GNOME uygulamalarına her gün bir yenisi eklenmektedir. Bir çok konuda veri tabanı kontrollerinden tutunda grafik çizim programlarına (GIMP GTK kullanılarak yazılmıştır) kadar çok geniş bir alanda programlar mevcuttur. GPL olması sebebiyle durdurulamaz bir yükseliş içerisine girmiştir. İleride GNOME masaüstü ortamının linux altında tek desktop olacağı kanısındayım. Dolayısıyla yazılırken kullanılan GTK kütüphaneside yeni bileşenler ve yeni API'lar ile sürekli geliştirilmektedir. GTK'ya alternatif kütüphaneler nelerdir? Qt, Motif, fox, qvlib benim bildiğim ve geliştirme sürecinde belli bir kararlılık aşamasına ulaşmış kütüphanelerdir. Bu kütüphaneler hakkında detaylı bilgiye ulaşmak için www.freshmeat.net adresinden arama yapmanız yeterlidir. Bu yazı tamamen GPL uygulamalar altında yazıldı. Yukarıda bahsi geçen programları www.linuxprogramlama.com adresinden temin edebilirsiniz. Saygılarımla, M. Ali Vardar Yazıyla
ilgili görüş ve yorumlarınızı ali_vardar@yahoo.com
ve yorum@teknoTurk.org
adreslerine
yollayabilirsiniz. |