6 Şubat 2009 Cuma

Web Frameworks ve Java

Java ve open source ... Evet bu iki kavram birbirlerinden bağımsız dursalar da şunu kabul etmek gerekir ki ikisi de birbirlerine sıkı şekilde bağımlılar. tabi ki open source yazılımlar için java şart değil veya javanın var olabilimesi open source olması gerekli değil. Ancak open source yazılımların geliştirilmesindeki en çok kullanılan dillerden biri bugün baktığımızda java. Başlığa bakarak ne zırvaladığımı sorabilirsiniz o vakit sadete gelmekte fayda var : Evet open source ve javanın etkileşiminden hepimiz son derece memnunuz tomcat , eclipse , struts , spring,hibernate ,gwt ve en önemlisi javanın kendisi opensource ve ücretsiz ancak java ile web programlama yapanlar bilirler ki konu web yazılımı geliştirmek olunca işler biraz kompleksleşiyor.
Tabi bu karmaşa sizin bir web frameworkünden beklentilerinizle de değişiyor basit bir tabloya basım ve form işlemleri için struts 2(struts değil) gayet yeterli olacakken web 2.0 kavramı ile hayatımıza giren ajax işleri zorlaştırdığı gibi sizden beklentileri yükseltiyor. Tabi ajax var olan teknolojilerin sentezinden doğdu bir çok başarılı web sitesinde de karşımıza çıktı ancak şu var ajax ile yaptığınız görsel bileşenler html , css ve javascriptin zorunlu dansından ibaret oluyor daha çok yani java , flash veya işletim sistemlerinde gördüğümüz görsel bileşenler gibi değiller daha çok farklı nesnelerin sentezlenip size suggestion box , autocomplete gibi komponentler sunuluyor bunun birçok başarılı örneği varken (jQuery,dojo,gwt) aslında bu komponentlerle development yapmanın sancılı ve zor olduğunu düşünüyorum örnek olarak klasik bir swing veya windows forms uygulaması geliştirmemiz için sadece tek bilmemiz gereken ilgili kütüphanelerken burda javascript , css , dhtml , html vede az biraz grafiker olmamız gerekiyor.
İşte insanlar bunlardan sıkılmış olacaklar ki karşımıza flex , java fx , silver light , open laszlo gibi teknolojiler çıktı ancak bunlarında kendilerine göre dezavantajları html in bir çok ortamda çalıştırılabilir olması ve örneğin flex gibi frameworklerle uygulama geliştirmenin server side tarafında pekte rahat olmadığı yönünde , kimileri bunun JEE ruhuna aykırı olduğunu düşünüyor açıkcası silverlight kısmı hakkında bir fikrim yok ama eminim microsoft bu entegrasyonu iyi sağlamıştır tabi flash gibi bir vm'niz varken browserda silverlighta insanların ne kadar ilgi göstereceği ayrı bir muamma. İşte kendilerine ait vmleri olan bu çözümleri bu sebeplerle geride bırakıp tekrar ajax destekli web frameworklerine geldiğimizde java tarafında bir çok eksikliklerin ve development sürecinin zorluğunu görüyorsunuz. Bazen insanlar bu kadar çok frameworkü takip ederken yoruluyorlar ve aklımıza şu soru geliyor bu kadar çok webframework olacağına ve bu kadar çok eksik web frameworkü geliştirmek için sunulan eforları birleştirip daha iyi bir şeyler ortaya çıkması sağlansa sanırım open source'un en kötü yanı bu güçlerin birleştirilmeyip heba olması.
Tabi konuya şu açıdan da bakabilirsiniz bu kadar katkı varken sen tüketmekten başka ne yapıyorsun ? Evet kişisel eleştiri olarak tüketiciliğimizle yeni bir web framework öğrenmekle övünmemizle dalga geçebiliriz ama bu da türkiye gerçeklerine kadar uzanan ayrı bir yazı konusuna işaret eder ki konudan tamamen sapmış oluruz. Evet kişisel gözlemlerim olarak java web frameworkleri konusunda şunları söyleyebilirim bu kadar geyikten sonra :
BEĞENDİKLERİM
  1. ZK : Tayvanlı bir firmanın arkasında olduğu güçlü seçenekleri olan ancak layoutları konusunda benim pek beğenmediğim bir framework ancak yeterince incelemediğimi de belirtmem gerek.
  2. GWT : Hepimizin duymuş olduğu Google Web Toolkits gram javascript yazmadan swing , swt uygulaması yazar gibi çıktı almak hatta arka planda server bağlantısı olmayan basit html , javascript tabanlı oyun , uygulamaları yazıp dağıtmanızı sağlıyacak yegane yazılımlardan. Kişisel gözlemime göre google elini ağırdan tutuyor gwt konusunda özellikle serverlarınızdan veri aktarmak veya serverınıza veri göndermek çeşitli sorunlardan dolayı zor olabilir örnek hibernate ve dinamik proxy objeleri gibi ancak gene de ilerleyen versiyonlarında gwt-ext gibi framework entegrasyonları ve instantations firmasının .net benzeri visual editorü ile iddialı olacağına eminim.
  3. JSF-Richfaces : ajax4JSF olarak ortaya çıkan ve önce exadel bünyesinde sonrada exadel'in jboss tarafından satınalınmasıyla meydana çıkan bir framework. Öncelikle kullanmak için JSF bilmeniz gerekli tabi JSF piyasada learning curve'i yüksek olan bir framework olarak nitelendiriliyor. Bunun dışında JSF in component modelinin server a çok yük getirdiği bir gerçek evet Richfaces burda ortaya çıkıyor istediğiniz bir JSF implementasyonuyla MyFaces , Standart Sun implementasyonuyla kullanıp sayfanın tümünü refresh etmenize gerek kalmadan AJAX requestleriyle uygulama geliştirmenizi acaip derecede kolaylaştırıyor ve tabi muhteşem gridler sunduğunu da belirtmeme gerek yok. Ancak şöyle eksiklikleri var : gridlerinde hidden column yok , ajax requestlerle de yapsak hala bir çok widgetın state ini serverside da tutmak zorundayız malesef client side da bu işi bizim için otomatize edecek kütüphanelerin varlığına rastlayamadım ancak şöyle özellikleri de yok değil javascript yazarak serverınıza gitmeye gerek kalmayabiliyor ancak bunu isteyen olur mu bilmiyorum...
  4. Flex : Development ı hakkında fikrim olmasa da widget olarak en solid widgetları sunan , browser uyumsuzluklarına her browser da çalışan vm iyle karşı gelen bir framework ancak önceden de belirtiğim gibi JEE ile konuşturmanız için yapmanız gerekenler ve muhakkak öğrenmeniz gereken bir action script dili var.
Evet şimdilik hakkında fikir beyanedebileceklerim bu kadardı ilerleyen yazılarda buluşabilmek ve yazılım adına birşeyler öğrenebilmek dileğiyle...

Hiç yorum yok:

Yorum Gönder