jQuery'nin yaratıcısı ve aynı zamanda Mozilla 'hacker'larından
John Resig'in Ars Technica'daki '
Extreme JavaScript Performance' başlıklı yazısını gördükten sonra "JavaScript, nereye?" diye sormamak mümkün değil. Buna bir de Mozilla'nın CTO'su ve JavaScript'in yaratıcısı
Brendan Eich'ın "
JavaScript Gets Faster" röportajı eklenince sorunun vurgusu daha da güçleniyor. Peki ama neden?
Çünkü JavaScript sessiz sedasız gelmiş geçmiş en 'cross-platform' dil olma yolunda fırtınalı şekilde ilerlerken son kullanıcılar da gittikçe daha çok etkileşimli Internet servislerine, yazılımlarına, web programcıları ise JavaScript kitaplıklarına güvenmeye başlıyor. Bunun farkında olan büyük yazılım geliştirme ekipleri de yoğun bir rekabet içinde web tarayıcının belki de en önemli bileşenlerinden biri olan JavaScript motorlarını hızlandırmak için yarışıyorlar: Mozilla'dan
TraceMonkey, WebKit'ten
SquirrelFish ve Google Chrome ekibinden
V8 halihazırdaki web tarayıcılarımızdaki JavaScript'in en az birkaç katı performans sunuyorlar. Süreç içinde şimdiki JavaScript performansının yaklaşık 10 katına çıkması bekleniyor. Mevcut durumda ise, mesela Eich'ın verdiği bilgiye göre TraceMonkey optimize edilmemiş bir gcc çıktısı kadar performanslı çalışıyor.
Eich ekliyor: "Bunu bir de
canvas
elementi ile birleştirip GUI geliştirdiğinizi düşünün, işte o zaman performansın önemini anlamaya başlarsınız. Henüz Flash çıktısı üretmek için kullanılan güçlü araçlar kadar güçlü araçlar değil bu tür şeyleri hedefleyen ama altyapı çok hızlı şekilde hazır hale geliyor. Farklı plug-inler ile boğuşmak yerine doğrudan tarayıcının bir parçası olan 'native' bir sistemle her türlü şeyi yapmak istemez miydiniz?"
Görülen o ki JavaScript şu anda üzerinde en çok ve farklı optimizasyon tekniğinin denendiği dinamik dil / platform. Acaba JavaScript gibi dinamik bir dile uygulanan optimizasyon algoritmalarının sonuçları diğer dinamik dillere yansır mı? Tüm bu gelişmeler birkaç yıl sonra kullanacağımız web tarayıcıları ve daha da önemlisi Internet servislerini nasıl şekillendirir ve tabii web yazılımı geliştirme işini?
Not: Nedense aklıma Alan Kay'in çok alıntılanan laflarından biri geldi: "Until real software engineering is developed, the next best practice is to develop with a dynamic system that has extreme late binding in all aspects." (Kaynak:
The Most Important Idea in Computer Science)
Hepsi güzel hoş da lambda-the-ultimate de gördğüm haber "No more tail calls in Javascript?" [1] moralimi fena halde bozdu :/
[1] http://lambda-the-ultimate.org/node/3047