Mengapa browser moderen adalah aplikasi di komputer kalian yang makan resource banyak dan suka bikin nge-lag komputer bagus nan mahal kalian?

Dan kenapa browser modern menerapkan teknologi kontainer jauh sebelum docker.

Sebuah utas panjang 🧵

#TentangPerforma #web #browser
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. Splash screen Macromedia Flash 4
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? Tampilan kumpulan ikon plugin multimedia tahun 2000an. Terli
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). Gambar arsitektur chrome, yang menerapkan arsitektur multipr
Masing-masing proses tersebut di-sandbox. Yang artinya dibatasi aksesnya ke pengguna dengan memanfaatkan pembatasan akses dan model keamanan sistem operasi.

Dokumen desainnya ada di sini untuk sistem operasi Windows.
chromium.googlesource.com/chromium/src/+…
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.

Sebentar... kok mirip ya ama #Microservices 😜

Ya emang mirip. Emangnya, server aja yang bisa begitu?
Sekarang mari kita lihat dengan $MSFT Edge.

blogs.windows.com/msedgedev/2020…

Ternyata masing-masing bagian browser yang anda punyai terdiri dari beberapa proses! Masing-masing tab punya renderer proses sendiri. Multiproses di Edge
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.

youtube.com/kodingajadulu

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Noor | 💉💉💉 Triple Vaccinated 🇮🇩

Noor | 💉💉💉 Triple Vaccinated 🇮🇩 Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @lynxluna

Mar 12
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.
Read 4 tweets
Mar 29, 2022
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.

Read 22 tweets
Mar 29, 2022
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.
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(