Sabtu, 23 November 2013

10 alasan browser HTML5 bisa menjadi raja dari OS


Di tahun 1995, Brendan Eich, Marc Andreessen, dan teman-teman mereka dari Netscape melihat World Wide Web (WWW) dan melihat sebuah dunia yang ditandai dengan dokumen yang statis - sebuah gurun komputasi di mana programmer tidak bisa menemukan keuntungan didalamnya.

Mereka memiliki visi yang berbeda: pixel yang ada di layar persegi panjang pada sebuah browser bisa hidup seperti user interface (UI). Mereka ingin menambahkan sedikit komputabilitas turing yang lengkap sehingga programmer bisa membuat lompatan halaman web (page jump). Dan JavaScript adalah jawabannya.

Pada awalnya, para programmer macho C melihat ciptaan mereka dan tertawa. Mereka bercanda tentang JavaScript sebagai sebuah mainan untuk anak-anak sekolah dasar buat memunculkan kotak peringatan. Brendan Eich, kemudian melihat sebuah cara bagi programmer untuk menarik informasi dari seluruh Web. Hal ini kemudian akan hadir di kemudian hari dalam bentuk XMLHttpRequest.

Tiga belas tahun berlalu, dan sekitar delapan tahun sejak itu semua kemudian diberi nama "AJAX," bahasa yang sebelumnya diejek sebagai mainan anak-anak SD itu dengan cepat menjadi bahasa yang dominan untuk segala hal. Kombinasi dari HTML, CSS dan JavaScript telah memberi kekuatan buat server, desktop, dan laptop. Hal ini, pada dasarnya, adalah sebuah platform standar, dan sebuah sistem operasi (OS) baru.

Secara teknis, browser tidak menawarkan apa yang kita harapkan dari sebuah OS tradisional. Para programmer yang kolot akan mengeluh: Apakah tim pengembang browser menyempatkan waktunya untuk mengkhawatirkan tentang device driver yang seperti benang kusut? Apakah browser bisa menjaga sistem file tetap bersih dan tidak corrupt? Apakah browser bisa menyulap beberapa thread yang berbeda prioritas dan membantu mereka berbagi core prosesor yang sama dengan cara yang mungkin dianggap adil? Programmer OS kemudian melihat Chrome dan tertawa karena browser ini cuma bisa melebar, membelah dirinya menjadi beberapa proses yang berbeda untuk setiap halaman web, membiarkan lapisan OS melakukan pekerjaannya.

Meskipun banyak keluhan yang muncul dari para programmer OS yang jenius, browser tetaplah sebuah lapisan dominan, satu penghubung untuk software, sebuah panel yang bisa melakukan sesuatu yang tidak bisa dilakukan oleh semua OS tradisional. Yang dibutuhkan hanyalah sebuah sistem operasi persegi panjang untuk menarik halaman Web, sedikit ruang penyimpanan, dan feed TCP/IP. Platform ini jika dibutuhkan juga bisa melakukan segala sesuatu dengan cara cross-platform, serta relatif bebas dari bug dan masalah lainnya.

Sisi positifnya, browser bisa mengurangi banyak aktivitas OS yang tidak perlu selain menyediakan informasi dalam beberapa feed. Seorang pengguna PC mungkin mengharapkan untuk bisa menggunakan perangkat lama mereka dan membuatnya bekerja dengan koleksi perangkat lama mereka - sebuah kejadian langka yang bisa diwujudkan melalui browser. Dan seorang pengguna browser ingin sebuah kotak untuk mengetikkan URL dan cara untuk mengirimkan sesuatu yang mereka klik ke lapisan JavaScript. Membuat perangkat yang hanya memiliki browser pun menjadi semakin mudah. Dan buktinya, Mozilla, yang didalamya cuma ada sekelompok kecil orang, ternyata bisa melahirkan Firefox OS dengan sebagian kecil engineer jika dibandingkan dengan yang bekerja di Apple, Google, atau BlackBerry.

Dan programer pun mengikuti pengguna yang mulai condong ke penggunaan browser dalam aktivitas keseharian mereka dengan menghadirkan fungsi yang diharapkan oleh pengguna saat ini sebagai prioritas utama mereka. Berikut adalah 10 alasan mengapa browser sekarang telah menjadi raja dari OS.

1. Munculnya aplikasi web yang melimpah dan kaya fungsi

Halaman web bisa berubah menjadi aplikasi yang lengkap. Cara terbaik untuk merasakan hal ini adalah mencoba untuk menjalankan sebuah halaman web seperti Gmail dengan cache yang bersih dan koneksi internet yang sangat lambat. Program ini cukup besar sehingga membutuhkan waktu yang lama untuk men-download semua potongan-potongan JavaScript. Mungkin ada hampir 100 file dalam rata-rata download yang dibutuhkan. Google telah mengakui bahwa Gmail mungkin sedikit terlalu besar untuk alasan-alasan tersebut, sehingga menawarkan versi basic HTML yang jauh lebih kecil dan ringan.

Gmail adalah salah satu contoh dari ribuan program besar yang secara teratur berjalan di browser Anda. Banyak bagian terbesar dari tugas yang dulu biasa dikerjakan melalui aplikasi native sekarang bisa diselesaikan melalui browser. Ada integrated development environments/IDE (Codio, Cloud 9, dan banyak lagi), paket editing image (AIE, diantara yang lain), dan banyak game HTML5. Browser saat ini tidak terbatas hanya pada dokumen statis dan pengisian formulir.

Dahulu kala, orang akan menunjuk ke aplikasi standar (native) untuk membaca email atau mengedit foto dan berkata, "Bisakah browser Anda melakukan itu?" Untuk sekarang jawabannya adalah ya.

2. Penambahan fitur yang mudah melalui plug-in

Semua browser utama memiliki arsitektur plug-in mereka sendiri. Jika Anda ingin melakukan sesuatu yang cerdas dengan browser, lapisan plug-in siap untuk menjalankan kode Anda. Anda bisa menulis beberapa kode JavaScript di browser dan menambahkannya sebagai fitur. Anda dapat menambahkan rutinitas baru untuk membersihkan tata letak atau informasi berharga tertentu seperti kutipan untuk makalah Anda bila mau. Lapisan plug-in pada browser bisa membuka bagian dalam dari browser untuk diutak-atik, dan ia melakukannya dengan bersih, sebuah cara yang lebih aman daripada yang dapat dicapai dengan sistem operasi tradisional.

3. Dikembangkan oleh organisasi open source

Ada banyak arti yang berbeda yang dimuat ke dalam frase "open source", dan browser menggambarkan salah satu yang paling berpengaruh. Bahasa-bahasa Web ini telah dan selalu mudah untuk dipahami - setidaknya dibandingkan dengan native binary code - dan ketika pengembang pemula memasukkan opsi "view source", mereka membuatnya mudah bagi programmer lainnya untuk saling mempelajari source code nya antar satu sama lain.

Keterbukaan mendorong inovasi, dan ini adalah salah satu alasan terbesar yang bisa kita lihat dari lapisan browser yang terus membengkak dengan begitu banyak penambahan yang inovatif. Membangun software untuk lapisan browser sangatlah mudah, sehingga mendorong lebih banyak pekerjaan yang bisa dilakukan di sana. Laju inovasi bisa berlangsung secara cepat karena ide-ide yang baik bisa ditiru dan ditingkatkan dengan cepat. Setiap orang dapat belajar dari karya orang lain, kemudian mengajarkannya pada semua orang kembali dari ilmu yang mereka dapat. Fitur ini sendiri telah menciptakan begitu banyak programmer di dunia karena kemudahannya dan sifatnya yang terbuka.

4. Metaprogramming

Keterbukaan tidak hanya berarti kode sumber atau source code tersedia untuk umum buat disalin, direvisi, dan diperluas - ini juga berlaku untuk data dalam browser saat ini. Beberapa paket software seperti Greasemonkey memungkinkan untuk menulis software yang berjalan di atas software yang berjalan pada halaman web. Greasemonkey dapat mencapai langsung ke code pada halaman Web untuk mengubah ukuran elemen, mengubah variabel, atau menulis ulang teks itu sendiri. Ini seperti coding open source secara real time.

Ada upaya untuk menawarkan fitur semacam ini untuk sistem operasi klasik (non HTML5), tapi sistem scripting tidak pernah memiliki akses yang mirip dengan Greasemonkey di browser. Bahkan tool scripting yang paling canggih, seperti AppleScript, bisa mengakses code hanya melalui API. Programmer yang kolot mungkin tidak menyukai seseorang bermain-main dengan variabel mereka, tetapi sesungguhnya mereka telah menjalani hidupnya dengan membosankan dan tidak menyukai hal-hal baru yang menyenangkan. Inilah sebabnya mengapa beberapa tool tercanggih tersedia di browser.

5. Sistem multiplatform yang sederhana dan mutabilitas

Perangkat mobile memiliki browser. Kulkas memiliki browser. Apakah kulkas mobile dengan browser tidak mungkin dibuat? Mengapa tidak? Semua orang ingin menempatkan HTML, JavaScript, dan CSS dalam kotak browser persegi panjang yang ada pada mesin mereka karena ini sangat mudah untuk beradaptasi. Apakah layar pada perangkat Anda pendek dan lebar atau tinggi dan sempit? Itu tidak masalah karena HTML bisa diterapkan ke dalam berbagai ukuran ruang yang diberikan. Engine layout melalui CSS akan mencari jalan keluarnya.

Ada beberapa orang yang menunjukkan bahwa tidak setiap halaman Web bisa terlihat baik pada layar yang berbentuk aneh. Beberapa situs web terlihat berantakan ketika mereka melihatnya pada layar ponsel yang tinggi dan sempit. Elemen-elemen tersebar di mana-mana, dan tidak ada yang membentuk tampilan yang utuh. Sepertinya ada yang salah dengan float style.

Permasalahan tersebut akan memudar jika desainer web sejak awal telah belajar bagaimana merencanakan ke depannya untuk rentang yang lebih luas dari berbagai peluang berbasis browser yang mungkin akan muncul. Mereka harus belajar untuk menjadi fleksibel dan elegan sehingga konten dapat mengalir dengan mudah terlepas dari perangkat yang akan muncul.

6. Sebuah lapisan abstraksi yang bersih

Organisasi open source yang mengembangkan web terus mendorong evolusi yang cepat melalui praktek-praktek terbaik untuk desain. Masih ada beberapa halangan yang hingga kini terpaku pada gaya lama - katakanlah Apple - di mana beberapa desainer mereka masih bersikeras semuanya harus dilakukan dengan cara menggunakan framework native mereka. Namun untuk semua keberhasilan Apple dalam memegang kendali buat platform mereka, hal itu tidak akan bisa mengalahkan web. Setiap inovasi yang diciptakan untuk iOS dengan cepat akan ditiru dan dibuat menjadi framework utama yang mendominasi dunia HTML5.

Populisme demokrasi di browser memungkinkan ide-ide terbaik untuk terus bermunculan karena semua orang akan terus-menerus melakukan eksperimen. Hal ini sebagian besar karena HTML dan CSS, yang telah berkembang menjadi lapisan abstraksi yang jelas yang memisahkan semua kekhawatiran, membuat kolaborasi menjadi lebih mudah bagi semua orang. Desainer dan programmer dapat menargetkan lapisan khusus mereka dan, jika mungkin, membawa library dan framework pradesain mereka buat desainer dan programmer lain untuk saling bekerjasama dalam kode mereka sendiri.

7. Model berbagi terbaik untuk library

Library selalu menjadi salah satu penyebab terbesar dari sakit kepala yang dialami oleh programmer. Salah satu aplikasi pada komputer, misalnya, ingin menggunakan versi 3.4.666 dari library, dan yang lain ingin versi 3.4.667, tapi sistem operasi hanya dapat menemukan salah satunya. Ketika hal-hal seperti ini tidak bisa dikompromi, ada yang menyebutnya "bitrot" dan yang lain menyebutnya "versioning errors." Jalan terbaik tidak akan pernah ketemu, dan semua orang merugi karenanya.

Dunia browser menawarkan cara yang lebih elegan dalam mendistribusikan library. Banyak halaman web membuat link ke salinan terpusat dari beberapa library populer seperti jQuery atau Dojo. Alih-alih menggunakan versi mereka sendiri yang di-host bersama situs web mereka, mereka lenih memilih memberikan link ke versi terpusat yang ditawarkan oleh salah satu perusahaan infrastruktur web seperti Yahoo. Ini lebih mungkin tertangkap oleh cache, sehingga menghemat halaman web berikutnya saat men-download versi library ini.

Versi terpusat ini bisa tertata dengan rapi. Jika dua halaman web menggunakan versi 1.9.1 dari jQuery, maka cache akan melakukan tugasnya. Jika seseorang beralih ke versi yang lebih baru, keduanya akan berfungsi. Cache mungkin tidak bisa menghemat banyak waktu sampai mereka mulai menggunakan versi yang sama lagi, tapi peralihan ini bisa bekerja tanpa hambatan.

Pendekatan ini masih belum sempurna. Jika salinan terpusat ini rusak atau terinfeksi dengan malware, setiap website yang menggunakannya bisa terancam. Tapi kapan terakhir kali ini terjadi? Beralih ke versi lokal dari library adalah upaya perbaikan yang cukup sederhana, dan juga tidak sulit.

8. Persaingan yang kompetitif

Jaman dulu hanya ada Netscape. Lalu Internet Explorer mendominasi. Sekarang tampaknya setiap orang memiliki browser favorit mereka sendiri-sendiri yang satu sama lain saling berkompetisi. Chrome, Firefox, IE, Safari, dan Opera hanya awalnya. Ada puluhan browser kecil lainnya yang muncul kemudian dengan pengguna mereka sendiri-sendiri. Platform mobile bahkan lebih banyak lagi.

Semuanya bersaing untuk merebut pangsa pasar. Yang terbaik menjadi pemenangnya, tapi hanya sampai siklus upgrade berikutnya. Karena kemudian kompetisi akan dimulai lagi.

Pertempuran yang tiada henti ini melahirkan kualitas. Browser terbaik dengan fitur yang paling berguna akan berkembang sementara hack kasual mulai menghilang. Hal ini tidak selalu terjadi di dunia, tetapi jika ini terjadi akan bagus bagi konsumen. Ketika itu bagus buat konsumen, maka akan menunjukkan kekuatan dari lapisan browser yang sebenarnya.

9. canvas, vector graphics, user interface yang luar biasa

Halaman-halaman web awalnya mungkin terlihat sedikit membosankan, tapi itu sebelum programmer yang pintar menemukan cara untuk menghidupkan properti CSS dari sebuah DIV atau SPAN. Sekarang persegi panjang dan kata-kata didalamnya bisa melakukan flip, spin, turn, fade, blink, dan bahkan seuatu yang diluar bayangan Anda.

Jika itu masih belum cukup, browser baru yang terbaik yang terintegrasi dengan video card (GPU) akan menawarkan hampir setiap fitur mereka untuk programmer JavaScript. Sementara desainer game masih perlu kode native untuk melakukan beberapa trik ekstrim yang mendorong video card untuk mencairkannya, hampir semuanya dari fitur software mereka yang tersedia dalam beberapa bentuk atau lainnya ke programmer JavaScript. Animated SVG, sebuah canvas object, dan beberapa video yang dapat melakukan hampir dalam semua hal. Bahkan ada lapisan 3G yang disebut WebGL yang mampu menangani rendering tiga dimensi. Browser memang tidak akan pernah mampu bersaing dengan konsol atau game native, tapi mereka akan melakukan pekerjaan dengan baik untuk grafis yang tidak terlalu rumit. Dan ini lebih dari cukup untuk menciptakan game yang bagus.

Semua ini berarti bahwa membangun user interface untuk halaman web sekarang jauh lebih mudah daripada menciptakan sebuah aplikasi sederhana. Desainer dapat bekerja dengan HTML, JavaScript, dan CSS, tiga bahasa yang mudah dipahami dan jauh lebih sederhana daripada Java, C++, atau Objective-C yang digunakan untuk aplikasi native. Sekali lagi, coding yang lebih mudah akan menarik lebih banyak programmer yang akan menciptakan lebih banyak code dan membuat platform ini menjadi semakin mendominasi.

10. Node.js

Mungkin bukti utama dari keberhasilan browser sebagai platform software atau sistem operasi dapat ditemukan di Node.js, sebuah server-side framework yang memungkinkan programmer browser yang mendalami JavaScript dan closure bisa menulis instruksi untuk server tanpa perlu belajar PHP atau Java.

Paket ini menawarkan kinerja yang spektakuler untuk beberapa pekerjaan hanya dengan meninggalkan model threaded yang umum digunakan dalam generasi masa lalu. Sebaliknya ia mengadopsi fungsi callback, salah satu idiom dalam pemrograman browser, untuk menangani workload. Di tangan orang yang tepat, programer dapat menghindari bahaya dan menghasilkan mekanisme yang bersih yang bisa menghadirkan informasi dari server dengan cepat dan efisien.

Ini adalah sedikit kemenangan bagi dunia JavaScript karena sebelumnya banyak yang mencibir pada closure yang rumit dan callback dari pemrograman browser, melihatnya sebagai sesuatu yang rumit dan terlalu lambat. Namun sekarang setelah terbukti memiliki kinerja yang yang cepat, orang-orang sudah mulai menerimanya sebagai standar baru. Kecepatan dan penghematan menjadi alasan utamanya.

Apakah masih ada sesuatu yang tersisa untuk JavaScript, HTML, dan CSS buat ditaklukkan? Jika PhoneGap mengkolonisasi dunia mobile, browser mengontrol desktop, maka Node.js bisa menjadi kemenangan terbesar. Dan terbukti mainframe IBM sering menjalankan server malalui Linux, yang berarti mereka juga menjalankan Node.js.

Keterbukaan akan mendorong inovasi, inovasi yang kemudian banyak bermunculan akan menciptakan kompetisi, dan kompetisi yang sehat akan menguntungkan buat konsumen. Begitu juga, kemudahan dalam hal coding akan melahirkan programer-programer baru, banyaknya programer yang muncul akan mendorong tumbuhnya ekosistem software yang besar, ekosistem yang kaya akan menguntungkan konsumen. Semua ini akan membuat browser bisa menjadi OS yang universal di masa depan.


Disadur dari Computerworld

Tidak ada komentar:

Posting Komentar