Google Chrome’a Dair İzlenimlerim

Google bir süredir üzerinde çalıştığı İnternet tarayıcısı Chrome’u (Chrome’un Türkçe karşılığı “krom”dur), beta aşamasında kullanıcıların beğenisine sundu. Açıkçası şu anda Internet Explorer 8 de beta aşamasında ve indirilebiliyor, ancak indirip denemek henüz içimden gelmedi. Fakat Chrome’u duyunca, ilk işim indirmek oldu. Beta aşamasında olan bilgisayar programları genellikle problem çıkarma potansiyeli açısından yüksek olurlar, çünkü henüz tam anlamıyla testleri ve geliştirmesi sona ermemiştir. Birkaç saattir Chrome’u kullanıyorum ve dikkatimi çeken bazı şeyleri sizinle paylaşmak istedim. Bununla birlikte Google Chrome’un çalışma prensibine ve özellikliklerine de değineceğim.

Çalışma Prensibi

Chrome aslında 4 adet açık kaynak projenin birleştirilmesinden oluşuyor: Chrome İnternet İşletim Sistemi, V8 JavaScript Motoru, Web Geliştiriciler için Gears ve HTML okuyucu (motor) Webkit.

  • Chrome: Chrome tarayıcının çekirdeği olan Chrome’u (iki kere tekrarlanmış gibi görünüyor, ama aslında İnternet tarayıcının ismi aynı olduğundan kaynaklanıyor) “İnternet İşletim Sistemi” olarak sınıflandırmamızın nedeni şu: Her yeni tab açtığınızda, bu tablar işletim sistemindeki işlemlere (processes) özgü nitelik göstererek çalışıyor. Bunun anlamı da şu: Her tab açışınızda, o tabın kendine ait hafızası (protected memory), hakları (permissions) ve ayrı bir işlem (process) özelliği var. Örneğin Chrome ile 3 farklı siteyi farklı tablarda açın. Sonrasında Ctrl + Alt + Delete tuşlarına basarak ulaşacağınız Görev Yöneticisi’nde (Task Manager), İşlemlere (Processes) bakın. Burada 3 adet “chrome.exe” işlemi göreceksiniz.
  • V8: JavaScript‘in kullanıma başlanması Aralık 2005 yılında dönemin popüler İnternet tarayıcısı olan Netscape‘in 2.0B3 (2.0 Beta 3) versiyonuna denk gelir. Çok iyi hatırlıyorum, JavaScript kitaplarında genellikle “efektlere” dayalı işlemler anlatılır, ama şu andaki kullanımına dayalı herhangi bir şey yer almazdı (şimdi de efektlere dayalı işlemler için de kullanılabiliyor). AJAX’ın gelişimiyle birlikte JavaScript adeta ikinci baharını yaşamaya başladı. Genellikle “Script” dilleri “uygulama dilleri” olarak kabul edilirler, “programlama dili” olarak anılmazlar. Hatta bu pek çok programcı tarafından halen süregelen bir tartışma konusudur. Fakat JavaScript’e artık uygulama dili demek ayıp olur. Her ne kadar “Java” olarak bilinse de (isminden dolayı), aslında JavaScript, Java’nın İnternet ayağı değildir, ayrı bir dildir. Chrome’da JavaScript uygulamaları (AJAX, JQuery de dahil olmak üzere) V8 aracılığıyla derlenip işlemlere (processes), sınıf (class) ve obje (object) kapsamında ilişki kurularak yönetiliyor. Bunun sonucunda da diğer tarayıcılara oranla ortaya çok yüksek bir JavaScript performansı çıkıyor:

Google Chrome JavaScript Genel Performans

Yukarıdaki resim Cnet‘ten alınmıştır. Bu grafikte İnternet tarayıcılarının genel JavaScript performansları görülmektedir. Daha detaylı performans analizini gösteren grafik için buraya tıklayabilirsiniz.

  • Gears: Gears Google tarafından, Google ve Google haricindeki siteler için geliştirilmiş bir platformdur. Öncelikli amacı İnternet uygulamarının masaüstü uygulamaları ile uyumlarını sağlamak olan Gears, bu kadarıyla yetinmeyerek HTML 5.0 ve JavaScript’in bütün nimetlerinden yararlanmayı amaçlamaktadır. Gears kullanılan web sitelerinde performans normal şartlara oranla daha hızlıdır. Ancak şu anda kullanımı pek yaygın değil. WordPress‘in yeni sürümlerine de Gears özelliği eklendi.
  • Webkit: Webkit, bu çözümler arasında Google’a ait olmayan tek projedir. Günümüzde oyun sektörü çok gelişti ve artık eskisi gibi 1.44MB’lık disketlerde satılmıyor. Oyun üreticileri ya kendi oyun motorlarını geliştiriyorlar ya da varolan oyun motoru üzerine yeni oyunlar geliştiriyorlar. Mesela Quake, Doom oyun motoru üzerine kuruludur ya da Counter Strike, Half Life oyun motoru üzerine kuruludur. Aynı durum İnternet tarayıcılar için de geçerli. Aslında Webkit, Linux İnternet tarayıcısı olan Konqueror (KDE masaüstü ortamı ile entegrelidir ve istenirse ayrı da yüklenebilir) ve Apple‘ın Safari İnternet tarayıcısında kullanılan bir İnternet tarayıcısı motorudur. İnternet tarayıcısı motorunun esas işlevi, İnternet sayfalarındaki XHTML dizilimini doğru bir şekilde anlamak (render) ve bunu kullanıcıya doğru bir şekilde göstermektir. Kullanıcıların bu konu ile ilgili tartışmaları çoktan başladı. Google acaba kendi İnternet tarayıcısı motorunu mu yazmalıydı, Webkit kullanarak doğru bir karar mı verdi yoksa Mozilla Firefox’un kullandığı Gecko motorunu mu kullanmalıydı? Aslında bunu biraz da zaman gösterecek.

Chrome’un Artıları

  • Performans grafiklerini “takmasak” bile, kullanmaya başladığınızda anlayabileceğiniz gibi, Chrome gerçekten Firefox’tan bile hızlı.
  • Basit bir arayüzü var ve bu kullanımı kolaylaştırıyor. İlk başta “dosya, düzen, favoriler” vs. gibi menü sisteminin bulunmaması eksi bir özellik görünebilir, ancak bana göre doğru bir karar verilmiş.
  • Tab’lar en üstte yer alıyor ve bence kullanımı kolaylaştıran bir etken.
  • Her bir tabda açılan sitenin ayrı bir işlem (process) gibi değerlendirilmesi çok mantıklı. Böylece hız performansı artıyor. Ayrıca bir İnternet sitesinden kaynaklanan sorundan dolayı tarayıcının hata vermesi sonucunda, bütün siteleri kapatmanız gerekmiyor, sadece o sitenin işlemini (process) sona erdirmeniz yeterli.
  • Ciddi anlamda çok az bir ayar menüsüne sahip ve bu benim oldukça hoşuma gitti. Ayar menüsünün az olması, yönetim konusunda sizden bir şey çalmıyor, gereken bütün ayarlar var.
  • “Gizli İnternet Sörfü” özelliğini içinde barındırıyor (Incognito). Bu sayede girmiş olduğunuz web sayfaları nerden geldiğinizi, hangi sayfaları gezdiğinizi, ücretsiz gülen yüzlere (smiley) bile yerleştirilebilen “klavye takipçileri” (keylogger) sizin hangi tuşlara bastığınızı bilemiyorlar. Web sayfaları size çerez gönderseler bile Incognito penceresi kapandıktan sonra bunların hepsi otomatik olarak siliniyor. Dilerseniz Incognito özelliğini belli linklere giderken kullanabiliyor (linke sağ tıkladıktan sonra “Open link in incognito window” seçmine tıklamanız gerekiyor), dilerseniz de ayrı bir pencere olarak açabiliyorsunuz (Chrome’da adres satırının sağındaki sayfa imgesine tıkladığınızda “New incognito window” yolunu ya da Ctrl + Shift + N klavye kısayolunu takip etmeniz gerekiyor.
  • Adres satırı aynı zamanda Google arama motoru. İsterseniz bunu Google haricinde bir arama motoruyla da değiştirebiliyorsunuz. Girilen kelime veya kelimelerin otomatik olarak web sitesi olmadığının sonucuna varılıp, Google’da arama sonuçları görüntüleniyor.
  • Mozilla Firefox ile tam uyumlu çalışan İnternet siteleri, Chrome’la da uyumlu çalışıyor. Ben şu ana kadar CSS kullanarak tasarladığım (ya da hazır tasarımlarını kullandığım – örnek: bu blogtaki tasarım) bütün siteleri Chrome ile kontrol ettim. Herhangi bir kayma, görüntü bozukluğu bulunmuyordu.

bloG

Google Chrome’da şu anda yazısını okumakta olduğunuz sitenin görüntüsü.


Chrome’un Eksileri

  • Daha yeni bir tarayıcı olduğu için, herhangi bir eklenti geliştirilmiş değil. Yani şu anda olan eklentisiz, sade bir tarayıcı.
  • Apple Safari ve Firefox’un Ubuntu ile entegre sürümünde olduğu gibi, yazı kutucuklarına (textbox) tıkladığınızda etrafı renklenerek dikkat çekicilik katılmış (Chrome’da turuncu bir renk). Ancak bu CSS ile tasarlanmış arama kutucuklarında sorunlara neden olabiliyor. Örneğin Canartuc.com adresli İngilizce bloğumda kullandığım arama kutucuğunun çevresi yuvartılmış ve bu yuvarlaklıkların ardında kalan arka planına da, başlığın taban rengi verilmiştir (transparan gif ya da pngler, küçük boyuttaki yuvarlama işlemlerinde çok iyi sonuç vermiyor, bu şekilde arka planı renkli yuvarlama işlemleri daha iyi görsel sonuçlar veriyor). Fakat bu kutucuğa tıkladığınızda Chrome bunu bir bütün olarak algılıyor (ki aslında haklı da) ve yuvarlatılmış kutucuğu bir anda dikdörtgen olarak renklendirebiliyor. O yüzden bu özelliğe ne kadar ihtiyaç olduğu bence tartışılır.

Arama Kutucuğu

Yukarıdaki resimde turuncu renk Chrome’un belirginleştirme rengi. Görüldüğü gibi arama kutucuğunun kenarlarının yuvarlatılması, belirginleştirme sonrasında yalan oluyor =:-)

  • Bazı yazı kutucuklarında (textbox), yazdığınız bir metinin belli noktasına geri dönüp, harfi sildikten sonra düzeltme yapmak istediğinizde, sonrasında yazacağınız her şey, mevcut metin üzerine yazılıyor. Bu her zaman tekrarlanan bir şey değil, benim başıma Gittigidiyor.com ‘da bir satıcıya mesaj atarken geldi. Birkaç saat sonra satıcıdan cevap geldiğinde, cevap yazarken yeniden başıma geldi. Ancak sonrasında tekrar bir mesaj yolladığımda aynı olay tekrarlanmadı. Bazen yazı kutucuklarında köşede kalmış ” (çift tırnak) ya da ‘ (tek tırnak) karakterlerini yutabiliyor.
  • İndirmek için “yükleyici” (installer) kullanılmış. Yani Google’dan Chrome’u indirdikten sonra (474KB), yükleme tamamlanmış olmuyor. İndirdiğiniz dosya, İnternet üzerinden “esas” Chrome dosyalarını indirip kurulum gerçekleştiriyor. Bu benim oldukça rahatsız olduğum bir uygulama şekli. Tamamının indirilebilir olmasında ne tür bir sakınca var, halen anlayabilmiş değilim. Bu tarz indirme uygulamalarının en büyük fanatiklerinden biri de Adobe’dir.
  • Alışık olduğumuz “Dosya, düzen…” vs. menüsü bulunmadığından, favorilerinizin ilk başta nerede olduğunuzu anlamıyorsunuz. Favorilerinizi sürekli görünür kılmak için adres satırının yanındaki anahtar ikonuna tıkladıktan sonra “Always show bookmarks bar” seçimini ya da Ctrl + B klavye kısayolunu takip etmeniz yeterli.

Son Olarak

Bir kişinin İnternet üzerindeki hareketlerini, alış-veriş alışkanlıklarını, gezdiği sitelerin genel kategorisini bilmek, o şirkete günümüzde oldukça büyük avantaj sağlıyor. Nitekim bugün Amazon.com ‘a girip bir ürün aradıktan sonraki tekrar ziyaretinizde, son aramanıza yönelik ürünler ayrı bir başlık altında toplanıyor (bu işlem çerezlerle (cookie) yapılıyor). Bu durum ne kadar etik, halen tartışma konusu. Hatta Robert Spector’un yazmış olduğu ve Scala Yayıncılık tarafından piyasaya sürülen “Amazon.com ve Yaratıcısı Jeff Bezos” isimli kitapta bu konuya da değinilmiş, ancak Amazon.com yetkilileri bunda herhangi bir suç olmadığını belirtmişlerdir.

Şu anda Google dünyada en çok kullanılan arama motoru. Dolayısıyla bizim arama alışkanlıklarımızı biliyor. iGoogle gibi özelleştirilebilir servisleri ile, İnternet üzerinde ne okuduğumuzu (e-posta, RSS beslemeleri gibi) da biliyor. Şimdi Chrome ile de hangi siteleri ziyaret ettiğimizi de bilecek. Bu konudaki Google tutumunun ne olacağı merak konusu.

Bizim programlama dilinde kullandığımız “memory leak” sorunu, Chrome’da hissediliyor. “Memory leak”, düzgün yazılmamış bir sistem uygulamasını (windows, linux programları gibi) kapattığınızda, RAM’de kapladığı alanı düzgün boşaltamaması (release) sorunudur. Daha çok oyunlarda yaşanan bir problemdir. Oyun oynamayı bırakıp masaüstünüze geri döndüğünüzde, bilgisayarın bazen kendini toparlayamadığına ve yavaşladığına şahit olursunuz (Ben buna FM 2005′te çok rastlıyorum). Bilgisayarı yeniden başlattığınızda sorun ortadan kalkar. Şu anda piyasada bulunan ve “RAM Hızlandırıcı” (Rambooster) olarak anılan bütün programların çalışma mantığı aslında budur. Düzgün boşaltılamayan hafızaları düzgün boşaltılmış hale getirir. Hiçbir RAM hızlandırıcı, 1GB’lık RAMinizi, 3GB performansına getiremez, bu doğa kanunlarına aykırıdır. Örnek olarak 100 metrelik bir mesafeyi eğer 15 saniyede koşuyorsanız, ne kadar enerji içeceği içerseniz için 100 metreyi 5 saniyede koşamazsınız. Ben bu konuda RamBooster 2.0 programını kullanıyorum. Şu ana kadar kullandığım RAM hızlandırıcı programlar arasında en stabil çalışanı bu program ve üstelik ücretsiz. Google Chrome kullandığım süre zarfında, programın sürekli aktif olduğunu ve RAM’i düzgün bir şekilde boşaltmaya çalıştığını gördüm. Bunun nedeni, ayrı tablarda açtığınız web sitelerinin Google Chrome çalışma prensibine göre ayrı sistem işlemleri (processes) olarak değerlendirilmesi ve RAM’de yer kaplamasıdır.