Peramban atau browser adalah salah satu jenis perangkat lunak yang sangat kompleks. Sebenarnya tidak ada yang menyangka bahwa teknologi web seperti HTML, CSS, dan Javascript akan berkembang sangat pesat seperti sekarang.
Penemunya, Tim Berners-Lee bervisi untuk membuat dokumen saling bertautan satu sama lain. Dari situ, teknologi web di tahun 2023 sudah tumbuh lebih dari visi penciptanya.
Demikian juga, Brendan Eich, penemu Javascript, awalnya hanya ingin membuat sebuah bahasa 'sederhana' yang bisa digunakan oleh orang yang ingin membuat website lebih dinamis.
di tahun 2023, Javascript bukanlah bahasa yang 'sederhana' dan perlu skill khusus untuk menguasainya
Karena internet makin populer, dan ternyata HTTP dan HTML menjadi protokol yang dominan, browser pun bersaing untuk menawarkan berbagai macam fitur dan API supaya pengembang bisa bikin ekstensi/plugin.
Karena 'ego sektoral' pembuat browser, cara pembuatan ekstensi pun lain-lain.
Microsoft $MSFT yang dominan di akhir 90-an dan awal 2000-an, menanamkan teknologi Component Object Model (COM) sementara saingannya, Netscape, membuat NPAPI.
Salah satu ekstensi yg ditulis dengan COM dan NPAPI yang populer di masanya adalah Macromedia/Adobe Flash.
Ekstensi/plugin semacam flash ini dibuat untuk mengakses kemampuan komputer yang tidak memungkinkan untuk ditampilkan di peramban.
Di awal tahun 2000an itu peramban TIDAK BISA memainkan video. Supaya bisa, ya harus pake plugin.
Ada masanya ketika seseorang itu punya pengaya Flash buat nonton Youtube. Quicktime buat nonton video-video apple. Real Player buat nonton video .rm dan .3gp 👀
Masih ingat dengan ikon-ikon ini?
Saya akan menerangkan kenapa browser lambat sebentar lagi. Tapi sebelumnya, kita akan bahas tentang masalah dari ekstensi browser.
Pertama, ekstensi tersebut mengganggu keandalan (reliability) dari browser karena mereka jalan di PROSES YG SAMA dengan browser.
Artinya, kalau misalnya plugin tersebut hang/crash, maka KESELURUHAN browser akan ikut crash. Yang disalahin siapa? Tentunya si pembuat browser.
Kedua, soal keamaanan. Plugin itu jalan dengan konteks keamanan (security context) dari proses browsernya dan punya AKSES PENUH ke komputer pengguna. Plugin sering dijadikan celah masuk dari peretas untuk masuk ke komputer pengguna. Dan flash adalah celah masuk yang populer :D
Karena masalah inilah, maka diciptakan arsitektur browser multiproses.
Dalam sistem operasi, tiap proses itu terisolasi, sehingga kalau ada proses yang crash, yang lain ga crash. Antar proses memorinya juga terisolasi karena masing2 proses mempunyai konteks keamanan sendiri.
Chrome adalah browser yang pertama kali menerapkan model ini.
Ada dua jenis proses, yaitu browser proses, yang menangani antarmuka utama dan proses renderer yang menangani konten website. Komunikasi antarproses ini dengan menggunakan IPC (interprocess communication).
Masing-masing proses tersebut di-sandbox. Yang artinya dibatasi aksesnya ke pengguna dengan memanfaatkan pembatasan akses dan model keamanan sistem operasi.
Sandbox di browser ini ga beda jauh dengan 'sandbox' yang dipakai ama teknologi "Cloud Native" zaman now. Masing-masing proses terisolasi, dan untuk komunikasinya, pakai IPC.
Ternyata masing-masing bagian browser yang anda punyai terdiri dari beberapa proses! Masing-masing tab punya renderer proses sendiri.
Menjalankan banyak proses sekaligus punya overhead/beban tambahan sendiri dibandingkan dengan menggabungkannya jadi satu proses.
Tapi apa yang kita dapatkan? Yang kita dapatkan adalah browser yang lebih handal (reliable) dan lebih aman (secure).
Jadi terjawab kan kenapa kalo kalian buka tab baru atau instalasi ekstensi baru, jadinya komputernya terasa lebih lemot? Ya, karena, buka tab baru sama aja dengan buka program baru.
Kalo punya 100 tabs, ya berarti sama aja jalanin 100 program berbarengan.
Tradeoff performa untuk meningkatkan keandalan dan keamanan perangkat lunak seperti ini lebih saya terima daripada hanya supaya 'clean code' *eh
Kalau suka dengan konten yg 'dalem' seperti ini, bisa tonton dan subscribe kanal youtube saya.
Dengar dari akun meme kalo ada yang kena PHK habis pindahan ke Jakarta.
Saya sebagai orang non Jakarta yang udah pindah dari tahun 2006, selalu bilang, kebisaan orang untuk 'settle' di Jakarta itu privilese. Saya perlu +- 7 tahun buat ngerasa 'settle' di kota ini.
Secara pribadi saya marah dan jengkel dengan pengampu kepentingan dan keputusan yang ga ada empatinya ini. Kalo emang mau di-PHK, kasih tau sebelum disuruh pindah ke Jakarta.
Karena biaya hidupnya akan naik berkali-kali lipat, dan juga perlu penyesuaian dgn gaya hidup di sini.
Mungkin buat teman-teman yang kena PHK habis memutuskan untuk pindahan ke Jakarta dan bahkan udah bawa keluarga.
Memang Jakarta 'keras', tapi di sini juga kesempatan banyak.
Setidaknya, "location barrier" sudah tidak ada jika dapat pekerjaan baru di sini.
Saya crypto skeptics. Dan menurut saya QRIS + Transfer Bank via VA itu revolusi.
Setiap kali saya menerangkan tentang sistem pembayaran dengan virtual account, dan transfer antarbank yang instan dengan biaya transfer kurang lebih cuma 20 sen, ga ada yang ga amazed.
Pembayaran via digital e-wallet dan virtual account di Indonesia itu sangat advanced, cepat dan lekas. Adopsinya juga sudah sangat luas di kalangan UMKM semenjak ada digital wallet.
The problem has been solved, the market already disrupted, and the adoption is already there.
Ini juga salah satu alasannya. QRIS ini menyatukan orang yang punya bank dan yang ga punya bank, cuma punya e-wallet.
It’s heartwarming that a person still remember your long-forgotten argument in a public group and forum and recalls the argument passive-aggresively as if it has a profound effect to his/her ego when that happens.
I'm still wondering why people have personal grudge whenever they couldn't defend the argument or opinion soundly.
As a person I have "strong opinion, weakly held" all the time. I'm open to learn and be challenged. This makes interpersonal relationship better and easier.
I don't have any personal grudge if my old opinion is not valid or uninformed. It's a chance to learn and improve myself.
I gonna give credits to @iqbal_farabi and @ponnappa for beautifully articulated this position.