Pemikiran Ryan Dahl tentang JavaScript Containers
(tinyclouds.org)- Docker memopulerkan container Linux: virtualisasi tingkat OS yang mempermudah deployment perangkat lunak
- Cloudflare Workers dan Deno Deploy adalah implementasi konsep JS Container (di lingkungan yang berbeda)
- Bagaimana JS container akan berkembang dalam beberapa tahun ke depan?
Universal Scripting Language
- Semakin banyak hal yang saling terhubung berbasis web: The web is eating the world
- Web adalah medium dasar informasi umat manusia, dan JS terhubung sangat dalam dengan infrastruktur web sehingga berbeda dari bahasa lain
- Bahasa scripting menyelesaikan banyak masalah di sisi server, dan memungkinkan business logic ditulis lebih cepat serta lebih murah
- Bahasa script itu berguna dan banyak yang mirip satu sama lain, tetapi JavaScript digunakan paling luas dan kemungkinan akan tetap dipakai di masa depan
- Dengan kata lain, JavaScript bisa dianggap sebagai universal scripting language
Shell : Executables :: JavaScript : WebAssembly
-
Muncul JavaScript Sandbox, sebuah container tingkat tinggi baru untuk server
-
Ini bukan sesuatu yang dibuat untuk menyelesaikan masalah yang ditargetkan oleh container Linux
-
Ini muncul sebagai hasil dari penyederhanaan
→ Meminimalkan boilerplate dari business logic layanan web
→ Berbagi konsep dengan browser, sekaligus meminimalkan konsep yang perlu dipahami programmer -
Semua web engineer sudah mengenal JavaScript browser API
→ Karena abstraksi JS container dibangun di atas browser API yang sama, jumlah hal yang perlu dipelajari jadi berkurang
→ Universality dari JS menurunkan kompleksitas -
Shell adalah bahasa scripting terinterpretasi untuk menjalankan program Unix
→ Ada ekspresi kondisional, loop, dan variabel, tetapi sifatnya terbatas sehingga sulit dipakai untuk pemrograman. Fungsionalitas sebenarnya dijalankan oleh executable -
Dalam lapisan abstraksi server baru ini, JS mengambil posisi Shell
→ Lebih cocok untuk scripting daripada Bash/Zsh, tetapi seperti Shell yang memanggil executable, JS Sandbox memanggil WASM
→ Jika memerlukan pekerjaan kompleks seperti image resizing, lebih baik memakai WASM daripada menulisnya di JS
→ Sama seperti di bash kita tidak melakukan image resizing secara langsung, melainkan memanggil Imagemagick
The North Star
- Masa depan scripting adalah JavaScript browser
- Kesalahan paling mendasar dari Node.js adalah terlalu banyak menemukan hal di luar browser ketika API baru kemudian distandardisasi
→ Pada 2010 kita bahkan belum punya ES modules, tetapi setelah distandardisasi itu harus dibawa ke Node
→ Hal yang sama terjadi pada Promise, Async/Await, Fetch, Streams, dan banyak lainnya
→ CommonJSrequire,package.json,node_modules, npm, dan objek globalprocessyang non-standar pada akhirnya akan distandardisasi lalu ditambahkan ke browser, atau diganti dengan sesuatu yang lain yang berbasis web - Container tingkat tinggi masih belum distandardisasi, dan belum jelas bagaimana semua ini akan berkembang
- Saat ini Cloudflare Workers dan Deno Deploy menggunakan FetchEvent API, tetapi mungkin saja nanti ditemukan antarmuka yang lebih baik
Kesimpulan
- JavaScript adalah bahasa scripting serbaguna
- Karena sifat universal JavaScript, mulai muncul abstraksi baru mirip container yang menyederhanakan server
- Ini bukan berarti container Linux akan hilang. Tingkat abstraksi itu akan tetap berguna
→ Untuk banyak "business logic" yang ditulis orang, itu adalah abstraksi yang agak low-level
→ Saat membangun website, hal seperti konfigurasi systemd adalah boilerplate - Mungkin banyak "web service" bisa disederhanakan jika dipikirkan dari sudut pandang JavaScript container, bukan Linux container
- Di Deno, kami sedang mengeksplorasi ide ini
→ Berupaya menyederhanakan abstraksi server secara mendasar
2 komentar
Sudah ada artikel terjemahannya ya
https://medium.com/@yujso66/…
Kalau saya rangkum dengan pemahaman saya sendiri, mungkin kurang lebih seperti ini
Kurang lebih bisa diringkas seperti itu, menurut saya.
Tautan lain untuk membantu pemahaman