wxWidgets 08 January 08, Tuesday @ 10:07

Son kullanıcı yazılımın detayını bilmez. Kurduğu programda iki şey bekler: Hızlı çalışsın ve rahat kullanılsın.

Hızlı çalışması, programı yazan yazılımcının zaten üstüne çok düşündüğü işler arasındadır. Tasarım sürecinde hızlı ve verimli çalışan bir program yazabilmek için elinden geleni yapar. Ama raht kullanılabilen, kullanıcı dostu, bir program, arayüzle ilgilidir. Kod yazarken her türlü cambazlıklardan ayrı bir zevk alan yazılımcılar, nedense arayüz tasarlarken sürükle-bırak tarzı ve arayüzle programın iletişimini en kolay şekilde sağlayabileceği araçları tercih eder.

İşte bu araçlar içinde sektörde daha çok tercih edilen birkaç araç vardır. Yazılımı yapan kişi olarak, sizin ihtiyacınıza göre bunlardan birini tercih edersiniz. Ben en çok önem verdiğim konulardan biri taşınabilirlik, yani hazırlanan arayüzün farklı işletim sistemlerinde çalışabilme yeteneğine sahip olması, olduğu için en çok Qt ve WxWidgets severim. Bu yazının konusu da WxWidgets ve bunun Qt ile karşılaştırması.

WxWidgets nedir?

wxWidgets, 1992 yılında Edinburg Üniversitesinde Julian Smart tarafından başlatıldı. İlk olarak Unix ve Windows'ta çalışan uygulamalar geliştirmek için başlatılan bir proje olmasına rağmen zamanla gelişerek Mac platformu, WinCE, ve başka birçok platformda çalışabilir hale getirildi. Açık kaynak kodlu olması sebebiyle çok hızlı gelişen, AOL gibi önemli firmalar tarafından da kullanılan bir araç olarak her geçen gün biraz daha güçlenmekte.

wxWidgets, programcının grafik arayüzüne sahip uygulamalar hazırlaması için bir araçtır. wxWidgets, birçok sınıf ve metot bulunan bir kütüphaneye sahiptir. WxWidget, dosyalar, çok kanallılık, uygulama ayarları, süreçlerarası iletişim, veritabanı erişimi ve benzeri birçok yaygın işle ilgili sınıflara sahiptir.

wxWidgets,platformun kendi kütüphanelerini kullanması sayesinde, hangi platformda çalışıyorsa o platformun görüntüsünü sağlayabilmektedir. Tek ihtiyacı olan gerekli kütüphanelerle bağlantı ve bir adet C++ derleyicisi. Bu sayede OS X üzerinde Aqua, Linux üzerinde GTK ya da Motif gibi her platformda platformun kendi arayüz özelliklerini kullanır.

wxwidgets, bedava ve açık kaynak kodludur. Bu wxWidgets'ın sadece maliyet düşürmek için kullanılması gerektiği anlamına gelmez. Aksine, diğer bütün açık kaynak kodlu yazılımlar gibi,açık kaynak kodlu yazılımlara gönül vermiş birçok deneyimli ve yetkin yazılımcının desteğini alarak, gücünü arttırması, wxWidgets'ı güncel ve ihtiyaçları fazlasıyla karşılayan bir yazılım halini alıyor.

wxWidgets, MFC'nin kullandığına benzer bir olay sistemine sahiptir. Bu sistem, olayları üye fonksiyonlarla statik ya da dinamik olarak ilişkilendirmeye izin verir.

 

Çok dil desteği:

wxWidgets genellikle C++ ile birlikte anılır. Fakat bunun yanında başka dillere de destek verir. Bu dillerden bazı yaygın olanları; Perl, Python, Ruby, Basic, JavaScript. Ayrıca Java ile birlikte kullanılması için de çalışılıyor.

Araçlar:

wxWidgets için uygun olan araçlardan en yaygın olanları wxDesigner, DialogBlocks, ve wxDev-C++. Başka araçlar da vardır ve açık kaynak kodlu olduğu için yeni ihtiyaçlara göre yeni seçeneklerin de karşımıza çıkması şaşırtıcı olmaz.

 

wxWidgets Qt karşılaştırması:

  • Hem wxWidgets, hem Qt arayüzle ilgisi olmayan özelliklere de sahiptir.(tarih, ağ, openGL özellikleri gibi)

  • Qt3, Mac ve Unix platformlarında geliştirilen açık kaynak kodlu uygulamalar için GPL lisansına sahiptir. Ticari uygulamalar ve Windows üzerinde geliştirilen her türlü uygulamalar için ise QPL lisansı vardır. Qt4'ün Windows için GPL lisansı vardır. Fakat wxWidgets her platformdaki ticari ya da ticari olmayan her uygulama için değiştirilmiş bir LGPL lisansına sahiptir ve uygulama geliştiriciler için herhangi bir lisans sorunu yoktur.

  • QT, wxWidgets gibi yerel portlara sahip değildir. Yani her ne kadar gerçekçi çizimler elde edebiliyor olsa da Qt her platformda kendi arayüz parçalarını(widget) çizer. Arayüz parçalarının programın kendisiyle iletişimini bizzat Qt yapar. Benzer bir özellik, wxUniversal ile birlikte wxWidget tarafından da kazanılmıştır. Ayrıca diğer platformlar için Qt'nin arayüz parçaları yerel değildir fakat KDE ve Qtopia platformları için bunlar yereldir.

  • wxWidgets, AOL Communicator gibi bazı büyük projeler tarafından kullanılmaktadır, fakat QT bu tür büyük çaplı projelerde daha yaygın olarak kullanılmaktadır.

  • Qt'nin sanal fonksiyonları, onu daha nesne yönelimli bir merkeze çeker. Burada ortaya çıkan fark şudur: Qt ile yazılan kodlar daha kısadır fakat wxWidgets daha hızlı çalışır.

  • Qt, QtDesigner adında bir arayüz tasarlama aracına sahiptir. wxWidgets ise bu konuda birden fazla seçenek sunar.

  • wxWidgets başka kütüphaneleri kullanabildiği için, Qt gibi görünen wxWidgets programları yazmak da mümkündür.

Sonuç:

Bu yazıda wxWidgets'ın ne olduğunu anlatmaya çalıştım. Vakit bulabilirsem ilerde daha detaylı ve teknik bir yazı da hazırlar, wxWidgets'ı kullanmaya karar veren insanlarayardımcı olmaya çalışırım.

Son bölümde sadece Qt ile karşılaştırmamın sebebi, halen en çok bilinen ve kullanılan alternatifin Qt olmasıdır. Nette kısa bir arama sonucunda diğer alternatiflerle de karşılaştırmalar bulabilirsiniz.

 



Tags: Programlama  wxWidgets  Arayüz Programlama 

Comments

#1   Gökmen Görgen commented 04 June 08, Wednesday @ 21:55

Benim gibi işe yeni başlamış biri için oldukça açıklayıcı bir yazı olmuş. Teşekkürler.

Post a comment (max. 3000 character)

Your name: Comment:
Number of remaining characters: