19 poin oleh xguru 2022-05-10 | 2 komentar | Bagikan ke WhatsApp
  • 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
    → CommonJS require, package.json, node_modules, npm, dan objek global process yang 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

 
xguru 2022-05-20

Sudah ada artikel terjemahannya ya

https://medium.com/@yujso66/…

 
xguru 2022-05-10

Kalau saya rangkum dengan pemahaman saya sendiri, mungkin kurang lebih seperti ini

  1. Belakangan ini banyak bermunculan teknologi sandbox yang memanfaatkan WASM.
  2. JavaScript digunakan seperti skrip untuk menjalankan WASM.
  3. Sandbox WASM memungkinkan semuanya berjalan di atasnya, mulai dari OS, container, hingga framework.
  4. Kalau begitu, bisa jadi akan muncul standar container tingkat tinggi baru dengan model JS Container seperti ini, sehingga kita hanya perlu fokus pada business logic.
    Kurang lebih bisa diringkas seperti itu, menurut saya.

Tautan lain untuk membantu pemahaman