GWT 2.5 ile birlikte gelen yenilikler nelerdir?

Uzun süredir GWT geliştirme ekibinin sesi soluğu çıkmıyordu ve nihayet, kısa bir süre önce GWT 2.5 RC (Release Candidate) sürümünü yayınladılar. Yazılım geliştiriciler arasında uzun bir süredir, GWT’nin geliştirilmeye neden devam edilmediği ve GWT teknolojisinin sonunun gelip gelmediği üzerine yoğun tartışmalar yaşanıyordu. GWT ekibi 2.5 RC sürümünü yayınlayarak bu tartışmaların hepsine son noktayı koymuş oldu. GWT ekibi aynı zamanda, bir ay içerisinde de GWT’nin 2.5 (stable) versiyonunu yayınlayacağını duyurdu.

Bütün bu gelişmeler üzerine ben de sizlere GWT 2.5 ile birlikte gelecek önemli yenilikleri paylaşmak istedim. Tek tek yeni özelliklerin -bazıları devrim niteliğinde- üzerinden geçelim.

Derleyici Optimizasyonları

GWT 2.5 ile birlikte geliştirilen ve optimize edilen derleyici yapısı ile üretilen kodların boyutları daha da küçülüyor. Aynı zamanda GWT 2.5 bizlere, Closure Compiler (JavaScript’in daha hızlı indirilmesini ve çalıştırılmasını sağlayan, Google tarafından geliştirilen bir derleyici. İlginç bir şekilde ve klasik bir derleyicinin aksine, bir programlama dilinden makina koduna derlemek yerine bu derleyici, mevcut JavaScript kodundan daha iyi JavaScript kodu üretiyor) kullanma fırsatını da veriyor. Hemen aşağıdaki grafikler ile GWT 2.5 ile birlikte gerçekleştirilen derleyici optimizasyonlarının sonuçlarını daha iyi görelim.

Şekil 1. GWT versiyonlarının geçerli derleyici ayarları ile karşılaştırılması

GWT 2.5’te yapılan derleyici optimizasyonlarının ne kadar başarılı olduğunu görüyorsunuz. Şekil 1’de GWT Showcase ve GWT MobileWebApp projelerinin GWT 2.4 ve 2.5 versiyonlarında oluşturulan kod boyutlarını görüyorsunuz. Şimdi Google Closure derleyiciyi de hesaba katarak sonuçları yeniden görelim.

Şekil 2. GWT 2.4 ve GWT 2.5 + Closure karşılaştırması

SuperDevMode

GWT 2.5 ile birlikte gelecek olan bu yeni mod ile tarayıcı plugin’ine ihtiyaç duymadan ve aynen production modunda olduğu gibi, hızlı bir şekilde kodun yeniden derlenmesi ve çalıştırılması sağlanıyor. SuperDevMode ile geliştiriciler, Java, JavaScript ve muhtemel diğer istemci taraflı programlama dillerini, tarayıcı üzerinden debug edebiliyor olacaklar.

Source Maps

GWT 2.5 ile birlikte gelen en iyi özelliklerden birisi bence bu arkadaşlar. Source Maps (Kaynak Haritaları) ile Java, JavaScript ve diğer istemci taraflı programlama dillerini direkt olarak tarayıcı üzerinden debug edebiliyor olacağız. Şunu da belirtmeden geçmeyelim, bu özellik şu an için yalnızca Google Chrome ile destekleniyor ve Firefox için de çalışmalara devam ediliyor.

GWT ile birlikte Source Maps (Kaynak Haritaları) kullanımı

Elemental Kütüphanesi

Elemental, geliştirilmesi hala devam eden ve GWT üzerinden, kullanılan tarayıcının desteklediği hemen hemen bütün özelliklerine erişebilmenize olanak sağlayan yeni bir JavaScript kütüphanesi. Tarayıcıların WebIDL dosyalarından, JavaScript motorları kullanılarak otomatik olarak üretilen bu kütüphane, özellikle mobil uygulamalar için çok kullanışlı ve HTML5‘in istisnasız tüm özelliklerini destekliyor arkadaşlar.

Kod Bölme (Code Splitting) Geliştirmeleri

Bence, tüm yenilikler içerisinde en önemli olanlarından birisi bu arkadaşlar. GWT ile ilgili en fazla şikayet edilen durumlardan bir tanesi şuydu: GWT ile yazılan uygulamalar büyüdükçe, GWT ile oluşturulan JavaScript kodlarının boyutu doğal olarak artıyordu. Buna çözüm olarak getirilen kod bölme (code splitting) yapısı ile bu durum kısmen aşıldı ancak bu defa da kod bölme sırasında, farklı bölümlere ayrılmış olan kodların ortak olarak kullandıkları kod parçalarını tutan bölümün boyutu zamanla artıyordu. Bu durum da, her ne kadar kod-bölme kullanılmış olsa da, uygulamaların ilk açılış sürelerini büyük oranda arttırıyordu.

İşte GWT 2.5 ile gelen bölüm birleştirme (Fragment Merging) özelliği ile, bölümlere ayrılmış kod parçalarının ortak olarak kullandıkları kodlar, derleyici tarafından bu bölümlerle birliştiriliyor ve bu durum uygulamaların ilk açılış sürelerini büyük bir oranda azaltıyor. Aşağıdaki grafik bu yeni özelliğin sonucunu gösteriyor arkadaşlar.

Şekil 3. GWT ile bölüm birleştirme (fragment merging)

 

ARIA, UIBinder ve CellWidget Geliştirmeleri

GWT 2.5 ile ARIA’nın tüm özellikleri kapsama alınıyor ve her ne kadar kullanmasam da, UIBinder ve CellWidget ile ilgili önemli geliştirmeler yapılıyor.

HTML Kodu İçerisinde Java kullanabilmek

Evet, yanlış okumadınız arkadaşlar. GWT 2.5 ile aşağıdaki gibi HTML kodlarınızın içerisinde direkt Java kodu kullanabiliyor olacaksınız. Müthiş!

<script type="text/java">
   String helloWorld = "Hello world";
   Window.alert(helloWorld);
</script>

GWT icra komitesi

Yukarıda saydığımız, GWT 2.5 ile birlikte gelen yapısal değişiklikler ve özelliklerin yanısıra, Google, GWT ile ilgili radikal bir değişikliğe daha gidiyor ve GWT’nin yönetimini aşağıdaki kişilerin oluşturduğu bir “icra komitesine” devrediyor. Bu komite genel olarak GWT’nin yol haritasına, plitikası ve felsefesine karar veriyor olacak. IBM böyle bir değişikliği Eclipse ile ilgili olarak seneler önce yapmıştı ve ilerleyen yıllarda bu kararın ne kadar doğru olduğunu gördü.

GWT icra komitesi üyeleri

  • Ray Cromwell (Google)
  • Artur Signell (Vaadin)
  • Darrell Meyer (Sencha, GXT)
  • Mike Brock (RedHat, Errai/JBoss)
  • Thomas Broyer
  • Stephen Haberman (Bizo)
  • Daniel Kurka (MGWT)
  • Christian Goudreau (Arcbees, GWTP Kütüphanesi)

Bir yazımızın daha sonuna geldik arkadaşlar, GWT ile ilgili paylaşımlarıma devam ediyor olacağım. Beni takip etmeye devam edin.

Selamlar…

, , , , , , , , , , ,

No comments yet.

Bir Cevap Yazın

Font Resize