Arsip Tag: mozilla

A good day for web

Hari ini bisa jadi adalah salah satu hari bersejarah untuk web, karena pada hari ini tidak cuma ada satu, tapi dua browser engine “baru” yang diumumkan. Kalau biasanya kita tahu WebKit (dipakai oleh Chrome, Safari, etc), Gecko (dipakai oleh Mozilla Firefox, etc), Trident (dipakai oleh IE), dan Presto (dipakai oleh Opera, tapi akan segera dipensiunkan), hari ini ada pengumuman dari Mozilla+Samsung dan Google.

Mozilla, bekerjasama dengan Samsung, akan merilis browser engine bernama Servo.

Google membuat fork dari WebKit yang dinamai Blink.

Untuk Servo, intinya ada pada pemanfaatan kemampuan perangkat keras masa kini: “Servo is an attempt to rebuild the Web browser from the ground up on modern hardware, rethinking old assumptions along the way. This means addressing the causes of security vulnerabilities while designing a platform that can fully utilize the performance of tomorrow’s massively parallel hardware to enable new and richer experiences on the Web.” [The Mozilla Blog]

Sedangkan untuk Blink, fokusnya ada di multi-processing: “[…] Chromium uses a different multi-process architecture than other WebKit-based browsers, and supporting multiple architectures over the years has led to increasing complexity for both the WebKit and Chromium projects. This has slowed down the collective pace of innovation – so today, we are introducing Blink, a new open source rendering engine based on WebKit.” [The Chromium Blog]

Selain itu beberapa waktu yang lalu ada kabar dari Opera bahwa mereka akan meninggalkan Presto dan beralih ke WebKit. Hari ini diumumkan bahwa Opera akan menggunakan Blink: “It’s great to be able to talk publicly about Blink, the new engine that will power Opera’s browsers (…) and Chrome henceforth. I know a lot of people worried that there would be less diversity on the Web once Opera Presto was retired, and the forking of WebKit into Blink restores that balance. Opera will be contributing to Blink in future.” [Bruce Lawson]

Mengapa dibilang a good day for web? Karena dengan dua engine baru ini berarti kompetitor di bidang browser engine semakin banyak, dan besarnya kompetisi akan memberi stimulasi untuk inovasi dan perkembangan teknologi yang lebih cepat. Meskipun mungkin bukan good day bagi para programmer web karena berarti nambah lagi browser yang harus di-support. Untung saya bukan programmer web. Hehehe…

Google Chrome

Google Chrome

Google corp., salah satu perusahaan raksasa yang bergerak di bidang perangkat lunak (khususnya perangkat lunak web), telah meluncurkan versi beta dari peramban terbarunya yang diberi nama Google Chrome. Peramban baru ini membawa inovasi-inovasi baru buah pikiran para analis di Google corp., baik dari sisi antarmuka perangkat lunak maupun dari sisi cara kerja perangkat lunak. Dengan inovasi-inovasi ini, Google Chrome diperkirakan dapat menandingi peramban-peramban yang telah ada sebelumnya seperti Microsoft Internet Explorer (kini Windows Internet Explorer), Mozilla Firefox, Opera, ataupun Apple Safari sehingga Google corp. dapat mengalahkan Microsoft sebagai perusahaan teknologi informasi terbesar di dunia.

Google Chrome sendiri sebenarnya menggunakan mesin penterjemah HTML (Hyper Text Mark-up Language) WebKit buatan Apple yang juga digunakan pada peramban Apple Safari. Namun, Google menggunakan beberapa pendekatan yang berbeda dari Apple Safari maupun peramban lainnya. Yang pertama adalah dari sisi antarmuka. Google Chrome lebih mengutamakan area yang luas untuk menampilkan halaman web, sehingga elemen-elemen lain dalam peramban dikurangi. Misalnya menu bar yang umumnya ada pada perangkat lunak, digantikan oleh dua buah tombol pada toolbar. Address bar pun diletakkan pada baris yang sama dengan toolbar sebagai address field untuk menghemat tempat, meskipun dengan mengorbankan jumlah tombol yang dapat ditampilkan. Bar yang menampilkan bookmark pun secara default tidak ditampilkan. Hal yang benar-benar baru dibandingkan dengan peramban lain ialah penggabungan address field dengan search field. Dalam Google Chrome tidak terdapat search field. Pencarian dengan kata kunci menggunakan mesin pencari seperti Google atau Yahoo dapat dilakukan dengan mengetikkan kata kunci pada address field dan memilih mesin pencarian yang akan digunakan. Jadi, secara umum desain antarmuka Google Chrome membawa perubahan paradigma dalam desain aplikasi peramban.

Dari segi cara kerja perangkat lunak, Google Chrome mengadaptasi fitur dari Mozilla (kini Netscape Browser) yang dapat membuka banyak tab pada satu jendela peramban sehingga tidak perlu membuka banyak jendela peramban untuk mengakses lebih dari satu halaman web sekaligus. Namun, secara internal cara kerja tab pada Chrome berbeda dengan Mozilla ataupun peramban lain yang kini juga telah mengadaptasi fitur multitab tersebut. Umumnya, sebuah jendela peramban berada pada satu process yang berjalan di atas sistem operasi, sedangkan tab-tab yang ada di dalamnya berjalan pada thread yang berbeda di dalam process tersebut. Pada Google Chrome, sebuah jendela peramban merupakan sebuah container untuk tab-tab yang ada. Container ini berjalan pada satu process, dan setiap tab yang ada pun berjalan pada process-nya masing-masing, bukan berupa thread yang berjalan di dalam process. Ada dua keuntungan dari penggunaan teknik ini: yang pertama, apabila salah satu tab mengalami crash, tab yang lain tidak akan terpengaruh, sebab tab tersebut berjalan pada process yang berbeda. Yang kedua, karena setiap halaman web dibuka pada process yang berbeda, maka untuk membuka satu halaman web dapat digunakan beberapa thread sehingga waktu yang dibutuhkan lebih sedikit. Namun, cara ini mempunyai kekurangan, yaitu pemborosan memory, sebab setiap process membutuhkan process table sendiri, sedangkan thread hanya “menumpang” pada process yang memiliki thread tersebut.

Google Chrome versi 0.2 ini masih berada pada tahap beta, sehingga wajar apabila di dalamnya masih terdapat banyak bug. Bug yang paling terasa menyulitkan pemakaian antara lain bug pada caching halaman web dan bug pada penerjemahan javascript dan CSS (Cascading Style Sheet) pada halaman web.