Media Pengembangan Web & App | by APPKEY

Pembuatan WebsiteWeb ProgrammingMengenal Deno JS, Runtime TypeScript dan JavaScript yang Lebih...

Mengenal Deno JS, Runtime TypeScript dan JavaScript yang Lebih Cepat

-

Last Updated on April 18, 2022 by

Jika Anda seorang developer JavaScript, tentu sudah tidak asing lagi dengan Node JS, platform untuk menjalankan kode-kode yang ada di JavaScript melalui sisi server. Node diciptakan oleh Ryan Dahl. Kemudian, di bulan Mei 2018, Ryan Dahl menciptakan kembali platform yang mirip dengan Node, yaitu Deno.

Berkenalan dengan Deno JS

deno-js-2

Cara kerja dan fungsi dari Deno di sini sangat mirip dengan Node. Keduanya sama-sama platform untuk menjalankan Deno JS adalah runtime JavaScript.  Namun, Ryan Dahl menciptakan Deno agar dapat digunakan untuk menjalankan kode TypeScript juga, serta memiliki keamanan, modul, dan dependensi yang lebih baik.

Ryan Dahl mengklaim Deno sebagai platform untuk menjalankan TypeScript maupun JavaScript yang aman, di mana Deno sendiri dibangun pada runtime engine Google yang diciptakan untuk JavaScript dikenal juga dengan V8.

Beberapa fitur lain yang disematkan pada Deno:

  1. Inti dari Deno ditulis dengan Rust. Berbeda dengan Node yang intinya ditulis dalam C++.
  2. Tokio atau event loop pada Deno ditulis dengan Rust.
  3. Deno juga mendukung penggunaan JavaScript maupun TypeScript.
  4. Deno dibangun dengan V8, JavaScript Runtime yang diciptakan oleh Google dan digunakan pada Chrome, Node, dan lainnya.

Banyak developer JavaScript yang sudah pernah menggunakan Node menyatakan Deno adalah alternative yang dapat digunakan selain Node.

Deno JS : Menjalankan TypeScript dan JavaScript dengan Keamanan Tinggi

Dengan menggunakan Deno, ada beberapa tujuan keamanan:

  1. Menggunakan fakta bahwa JavaScript adalah sandbox yang aman. Secara default, skrip harus berjalan tanpa sistem file atau akses tulis jaringan.
  2. Akses opt-in diaktifkan melalui tanda: –allow-net dan –allow-write.
  3. Kemampuan keamanan yang memungkinkan pengguna menjalankan utilitas yang tidak tepercaya, seperti linter.
  4. Fungsi asli sewenang-wenang tidak akan terikat ke V8.
  5. Panggilan sistem dilakukan dengan melewatkan pesan
  6. Ada dua fungsi asli: kirim dan terima.
  7. Audit pada Deno yang lebih mudah diaktifkan.

Fitur-fitur yang ada pada Deno sebagian besar berfokus pada keamanan. Berbeda dengan Node, Deno secara default mengeksekusi kode di dalam sandbox, yang berarti runtime tersebut tidak memiliki akses pada, sistem file (file system), network, eksekusi dari skrip lainnya, dan variabel-variabel lingkugan (environment variables).

Artikel Terkait  TLS Adalah? Mengenal Istilah SSL/TLS dan HTTPS

Begini cara kerja persmission system yang ada pada Deno:

(async () => {
const encoder = new TextEncoder();
const data = encoder.encode('Hello world\n');
await Deno.writeFile('hello.txt', data);
await Deno.writeFile('hello2.txt', data);
})();

Skrip tersebut membuat dua file teks yaitu ‘hello.txt’ dan ‘hello2.txt’ dengan sebuah pesan ‘Hello World” di dalamnya. Kode tersebut pun akan dieksekusi di dalam sandbox, sehingga ia tak punya akses ke sistem file.

Cara kerja Deno dalam meningkatkan keamanan melalui Node.js tersebut sangatlah sederhana. Secara default, Deno tidak akan membiarkan program mengakses disket, jaringan (network), subproses, atau variabel lingkungan (environmental variables).

Jika Anda perlu mengizinkan salah satu dari ini, Anda dapat ikut serta dengan panji baris perintah, yang dapat dibuat sedetail mungkin, misalnya –allow-read = / tmp atau –allow-net = google.com.

Peningkatan keamanan lain di Deno adalah bahwa Deno akan selalu mati pada kesalahan yang tidak dapat ditemukan, tidak seperti Node.js, yang akan memungkinkan eksekusi untuk dilanjutkan setelah kesalahan yang tidak tertangkap, dengan hasil yang mungkin tidak dapat diprediksi.

Modul pada Deno JS

Di Node.js, Anda memuat modul CommonJS menggunakan kata kunci yang dibutuhkan dan semuanya, standar dan pihak ketiga, secara implisit berasal dari ‘npmjs.com.’ Padaa Deno, Anda memuat modul ES menggunakan kata kunci import dan secara eksplisit menyatakan URL. Sebagai contoh:

import * as log from “https://deno.land/std/log/mod.ts”;

Modul Deno dapat dihosting di mana saja. Tidak ada repositori terpusat untuk modul pihak ketiga. Selain itu, modul selalu disimpan dalam cache dan dikompilasi secara lokal dan tidak diperbarui kecuali Anda secara eksplisit meminta penyegaran (refresh).

Oleh karena itu, Anda harus dapat menjalankan program Deno yang sudah ada di perangkat Anda, selama semua impor telah diselesaikan satu kali, bahkan jika Anda berada di pesawat tanpa konektivitas.

Deno memang memiliki kumpulan modul standar terpusat yang tidak memiliki ketergantungan eksternal dan ditinjau oleh tim inti Deno. Hal itu pun tinggal di server deno.land. Koleksi modul deno_std adalah port lepas dari library standar Go.

Dahl menulis prototipe Deno terutama dalam bahasa Go, tetapi kemudian Dahl menemukan potensi konflik antara garbage collector di Go dan V8. Ryan Dahl dan kolaboratornya kemudian menulis ulang Deno dengan V8, Rust, dan paket I / O asinkron Rust Tokio. Mereka menerapkan pustaka standar Deno di TypeScript.

Artikel Terkait  20 Bahasa Pemrograman Populer yang Harus Kamu Pelajari!

Pada titik ini, Deno adalah environment yang masuk akal dan menyenangkan untuk digunakan untuk membangun proyek skrip pribadi berskala kecil di TypeScript. Menurut Dahl, Deno tidak akan pernah mempengaruhi kesuksesan Node.js. Namun demikian, setelah Deno mencapai versi 1.0, ini mungkin menjadi pilihan yang layak untuk membangun proyek yang lebih besar.

Deno dibuat dengan tujuan agar kompatibel dengan berbagai browser. Secara teknis, saat menggunakan modul ES, Anda tidak perlu menggunakan alat build apa pun seperti webpack untuk membuat aplikasi kita siap digunakan di browser.

Namun, tools seperti Babel akan mentranspilasi kode tersebut ke JavaScript versi ES5 dan akibatnya, kode tersebut dapat dijalankan bahkan di browser lama yang tidak mendukung semua fitur terbaru dari bahasa tersebut.

Tapi tools tersebut juga datang dengan harga yang berisi banyak kode sehingga tidak diperlukan di file akhir yang dapat mengakibatkan membengkaknya file output. Sehingga, terserah developer untuk memutuskan apa tujuan utama penggunaan modul ini dan memilih yang sesuai.

Perbedaan Node.js dan Deno JS

javascript-1

1. Perbedaan pada Package Management (Manajemen Paket)

Satu perbedaan utama antara Deno dan Node adalah: Deno menghilangkan kebutuhan akan package manager (manajer paket). Saat ini, Node.js menggunakan manajer paket NPM yang populer. Dahl pun menyatakan, di Deno sendiri bahkan tidak ada paket.

Hal ini pun memudahkan pekerjaan Anda, karena Anda hanya perlu menautkan ke file JavaScript seperti yang Anda lakukan di web pada umumnya.

Sementara pada Node.js menggunakan npm package. Ketika menggunakan npm untuk menginstal sebuah paket pada proyek Anda, maka file package.json digunakan untuk untuk menentukan nama paket dan rentang versi yang dapat diterima. Paket itu sendiri (ditambah paket apa pun yang bergantung padanya) kemudian diunduh ke folder node_modules di dalam proyek Anda.

2. Perbedaan pada API

Perbedaan lainnya terletak pada API. Saat Node pertama kali dirilis, tidak ada dukungan bawaan untuk Promises. Akibatnya, sebagian besar API untuk operasi asinkron ditulis untuk melakukan callback error-first:

const fs = require('fs');
fs.readFile('readme.txt', (err, data) => {
if (err) {
// Handle the error
}
// Otherwise handle the data
});

Meskipun developer Node sekarang memiliki akses ke Promises dan sintaks async / await, API masih mengharapkan callback untuk menjaga kompatibilitas ke belakang.

Artikel Terkait  Prototype Produk : Mencoba Memahami No-Code Untuk Membangun Prototype

Sementara pada Deno, API Deno telah dirancang untuk memanfaatkan fitur JavaScript modern. Semua metode asynchronous mengembalikan Promises. Deno juga mendukung await tingkat atas, yang berarti Anda dapat menggunakan await di skrip utama Anda tanpa harus membungkusnya dalam fungsi async.

try {
const data = await Deno.readFile('readme.txt');
// Handle the data
} catch (e) {
// Handle the error
}

Tim pengembangan Deno juga membuat keputusan untuk menggunakan standar web jika memungkinkan, yang berarti mereka telah menerapkan API browser jika praktis untuk melakukannya. Deno menyediakan objek jendela global, dan API seperti addEventListener dan fetch.

Memiliki akses untuk mengambil sangat bagus, karena dengan Node Anda harus mem-polyfill ini atau menggunakan pustaka pihak ketiga.

3. Dukungan Bahasa

Deno mendukung fitur ES2020 seperti ‘Promise.allSettled ()’ dan keyword (kata kunci) ‘globalThis.’ Modul ECMAScript pada Deno bersifat default, dengan modul CommonJS tidak didukung kecuali Anda menggunakan pustaka kompatibilitas Node (lebih lanjut tentang ini nanti).

TypeScript didukung sebagai bahasa kelas satu di Deno, yang berarti bahwa ini berfungsi di outbox. Anda tidak perlu menginstal alat tambahan untuk mentranspilasi ke JavaScript terlebih dahulu. Tentu saja, mesin V8 tidak mendukung TypeScript secara bawaan, jadi Deno masih mentranspilasi kode di balik terpal, tetapi ini semua menjadi mulus dan transparan bagi Anda sebagai developer.

Sementara pada Node dukungan bahasanya sedikit berbeda. Rilis Node LTS saat ini (v12.18.1 pada saat penulisan) mendukung sintaks dan fitur JavaScript modern. Hal ini juga mendukung sekitar 75% dari spesifikasi ES2020.

Modul ECMAScript juga didukung, tetapi saat ini hanya diklasifikasikan sebagai eksperimental: Anda perlu menggunakan ekstensi file .mjs, atau menambahkan properti “type”: “module” ke file package.json proyek Anda.

Untuk menjalankan TypeScript (atau bahasa lain) di Node, kode perlu dikompilasi ke JavaScript agar mesin V8 dapat dijalankan. Ada beberapa cara berbeda untuk melakukan ini, dengan pro dan kontra yang berbeda, jadi bangun dan menjalankan berarti harus memilih salah satunya dan mengikuti proses penyiapan yang diperlukan.

Demikianlah penjelasan tentang Deno, serta perbedaanya dengan Node. Jika Anda ingin mencoba menggunakan Deno, Anda dapat menginstalnya dengan mengunjungi link https://deno.land/manual/getting_started/installation. Selamat mencoba.


Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.

Jasa Pembuatan Aplikasi

Jasa Pembuatan Website

Jasa Pembuatan Paket Aplikasi

Jasa Pembuatan Internet Marketing

Mau posting artikel iklan?

Yuk klik dan ikuti ketentuan layanan dari kami, dapatkan penawaran paket dengan harga terbaik!

Subscribe Sekarang

Dapatkan beragam informasi menarik tentang Website, Aplikasi, Desain, Video dan API langsung melalui email Anda. Subscribe sekarang dan terus belajar bersama kami!

Kategori

Blog Post Ranking 10

Contoh PHP Curl : 10 Hal Luar Biasa yang dapat Anda Kembangkan dengan Curl

Meningkatnya jumlah aplikasi yang pindah ke web telah membuat "HTTP Scripting" lebih sering diminta dan diinginkan. Untuk dapat secara...

Encoding Adalah : Proses Komunikasi Encoding dan Decoding

Jika kita dapat melihat percakapan antar komputer, mungkin akan terlihat seperti ini: "010110111011101011010010110". Bahasa ini disebut dengan biner, encoding...

Looping Adalah Algoritma Perulangan: Berikut Contohnya

Jika anda sudah mendalami atau sedang mendalami dunia pemrograman terdapat sebuah konsep yang dapat memudahkan anda dalam menyusun struktur...

Rekomendasi 7 Aplikasi Pembuat Animasi 3D Terbaik. Ayo Cek!

Apakah Anda bercita-cita untuk menjadi seorang animator profesional? Belajar membuat animasi kini sudah menjadi hal mudah yang bisa dilakukan...

Metadata Adalah? Fungsi dan Jenis-Jenis Metadata

Pernah mendengar istilah metadata? Mungkin, kita sering mendengar istilah metadata. Tetapi, banyak dari kita yang belum tahu arti dari metadata...

Cara Membuat Aplikasi di Playstore dengan Mudah

Membuat aplikasi di Playstore bisa Anda lakukan dengan mudah. Terdapat beberapa situs yang bisa membantu Anda untuk membuat aplikasi...

4 Cara Mengatasi Autentikasi Google Play Store dengan Cepat dan Mudah

Apakah Anda sedang mengalami masalah autentikasi Google Play Store? Permasalahan autentikasi Google Play Store adalah permasalahan umum sering dialami...

Ini Cara Mudah Membuat Redirect PHP | Seri Belajar PHP

Fungsi redirect PHP sangat banyak digunakan dalam kehidupan berwebsite alias mengelola website. Script redirect PHP banyak dipergunakan oleh user...

Cara Mudah Menambahkan Lokasi Alamat Bisnis Anda di Google Maps

Saat ingin hunting tempat makan atau tempat nongkrong terbaru, tak jarang beberapa dari Anda biasanya mendapatkan informasi terkini melalui...

Rekomendasi 10 Aplikasi Coding Android Terbaik

Ketersediaan aplikasi coding Android memang banyak dicari oleh orang-orang yang sedang atau akan memulai untuk membuat aplikasi android. Jika...

Bisnis

Online Service

Peluang Bisnis

Model Bisnis

Entrepreneurship

Uang

Ketrampilan

Outsourcing

Monetize

Pemasaran

SEO

Internet Marketing

Dasar Pemasaran

Strategi Pemasaran

Situs Web Analitik

Iklan

Teknologi

Teknologi Terbaru

AI

Komputer

Jaringan

Paling Sering dibaca
Mungkin Anda Menyukainya