Kenapa Deno Beda Ngobrolin Runner JS/TS yang Lagi Naik Daun
Dulu banget, kalau ngomongin server-side JavaScript, atau buat jalanin kode JavaScript di luar browser, satu nama yang langsung muncul di kepala kita pasti Node.js. Udah kayak penguasa tunggal gitu deh. Node.js ini yang ngubah permainan, bikin JavaScript nggak cuma buat bikin website interaktif di depan mata user (frontend), tapi juga bisa ngurusin backend, bikin API, bahkan sampai ke Internet of Things (IoT) dan desktop apps. Keren banget kan?
Nah, tapi di dunia teknologi, apalagi yang namanya software development, itu nggak pernah berhenti berkembang. Selalu ada aja inovasi, ide baru, atau percobaan buat nyelesaiin masalah yang udah ada, atau bahkan buat bikin sesuatu yang lebih baik lagi. Dan muncul lah Deno.
Deno ini boleh dibilang "anak baru" di dunia runner JavaScript/TypeScript. Uniknya, yang bikin Deno ini orang yang sama lho sama yang bikin Node.js, namanya Ryan Dahl. Dia bikin Deno ini kayak "belajar dari kesalahan" waktu bikin Node.js dulu. Jadi, Deno ini lahir dengan beberapa filosofi dan pendekatan yang beda banget sama Node.js. Makanya, sekarang Deno lagi mulai banyak diobrolin dan dilirik sama para developer, terutama anak muda yang suka nyoba hal baru dan efisien.
Terus, apa sih bedanya Deno sama Node.js? Kok bisa dibilang lagi "naik daun" dan punya pendekatan yang beda? Yuk, kita bedah satu per satu.
1. Keamanan Itu Nomor Satu: Model Keamanan Berbasis Izin
Ini beda paling mencolok dan mungkin jadi selling point utama Deno. Kalau di Node.js, script yang kamu jalanin itu secara default punya akses full ke sistem kamu. Dia bisa baca file, nulis file, ngirim request ke internet, dengerin koneksi di port, pokoknya punya banyak izin tanpa perlu kamu kasih tahu secara eksplisit. Ini kadang bisa jadi celah keamanan kalau kamu nggak hati-hati atau kalau ada library pihak ketiga yang kamu pakai ternyata ada maksud jahat (misalnya, diam-diam ngirim data kamu ke server lain).
Nah, Deno beda 180 derajat. Deno itu secure by default. Artinya, script Deno yang kamu jalanin itu nggak punya izin apa-apa secara default. Dia nggak bisa baca file, nggak bisa nulis file, nggak bisa akses internet, nggak bisa ngakses environment variables, dan lain-lain, kecuali kalau kamu kasih izin secara eksplisit pakai flag tertentu waktu ngejalanin scriptnya.
Contohnya, kalau script kamu butuh baca file, kamu harus jalaninnya pakai perintah gini: deno run --allow-read namascript.ts
Kalau butuh akses internet: deno run --allow-net namascript.ts
Kalau butuh keduanya: deno run --allow-read --allow-net namascript.ts
Atau kalau butuh semua izin (tapi ini nggak disarankan): deno run --allow-all namascript.ts
Pendekatan ini bikin kamu jadi lebih sadar sama apa yang script kamu lakuin. Kamu jadi mikir dua kali sebelum ngasih izin, dan ini ngurangi risiko celah keamanan yang nggak disengaja. Ini mirip banget sama model keamanan di browser modern. Kode JavaScript di browser juga nggak bisa sembarangan akses file di komputermu kan? Deno bawa filosofi ini ke sisi server. Buat yang kerja di lingkungan yang sensitif soal keamanan, fitur ini jelas jadi nilai plus banget.
Tips aplikatif: Kalau lagi develop pakai Deno, biasain dulu jalanin script tanpa flag izin. Kalau ada error karena nggak punya izin (misalnya, error waktu nyoba baca file), baru deh tambahin flag izin yang spesifik --allow-read
. Ini bantu kamu ngasih izin cuma ke yang benar-benar dibutuhkan aja.
2. TypeScript itu Udah Bawaan Lahir
Ini juga fitur yang bikin Deno disukai banyak developer modern. TypeScript itu kan nambahin fitur static typing ke JavaScript, bikin kode lebih terstruktur, gampang di-maintain, dan ngurangi bug karena salah tipe data. Di Node.js, kalau mau pakai TypeScript, kamu butuh tools tambahan kayak tsc
(kompiler TypeScript), ts-node
(buat jalanin file .ts
langsung), atau bundler kayak Webpack/Rollup buat ngompilasi kode TypeScript jadi JavaScript sebelum bisa dijalanin. Agak ribet kan setup-nya?
Nah, Deno ini udah punya built-in support buat TypeScript. Kamu tinggal nulis kode pakai ekstensi .ts
, dan Deno bisa langsung ngejalaninnya. Deno udah punya kompiler TypeScript sendiri di dalamnya. Ini bikin developer experience (DX) atau pengalaman develop jadi lebih mulus dan cepat. Nggak perlu pusing mikirin setup konfigurasi tambahan buat TypeScript.
Tips aplikatif: Kalau kamu udah terbiasa atau pengen mulai pakai TypeScript, Deno ini platform yang paling friendly buat ngoding TS. Kamu bisa langsung fokus nulis kode TS tanpa mikirin toolchain tambahan. Ini cocok banget buat project-project baru.
3. Sistem Modul Mirip Browser: Bye Bye node_modules
!
Ingat folder node_modules
yang suka gede banget dan kadang bikin bingung di project Node.js? Itu karena Node.js pakai sistem modul CommonJS (meskipun sekarang udah bisa ESM juga) dan manajemen dependensi terpusat lewat npm (atau yarn/pnpm). Setiap project biasanya punya salinan dependensi yang sama, bikin ukuran folder membengkak.
Deno punya pendekatan yang beda banget soal modul. Deno pakai URL buat ngimpor modul, persis kayak di browser waktu kamu pakai