BerandaComputers and TechnologyDeno sama dengan Node.js, tetapi berbeda

Deno sama dengan Node.js, tetapi berbeda

JavaScript telah berkembang selama lebih dari satu dekade sekarang. Apa yang dimulai sebagai bahasa yang digunakan untuk menyebarkan beberapa interaktivitas ke HTML statis telah berkembang menjadi bahasa pemrograman tujuan umum yang paling luas di dunia. Hegemoni JavaScript juga terbukti di sisi server, dengan Node.js menjadi bahan pokok iklan lowongan selama bertahun-tahun. Baru-baru ini ada beberapa desas-desus seputar teknologi serupa: Deno

Mari kita cari tahu apa itu Deno dan bagaimana perbandingannya dengan Node.js . Hal pertama yang pertama: Nama Deno adalah anagram dari Node, dan mereka adalah dua proyek perangkat lunak sumber terbuka yang berbeda. Deno terdengar seperti tiruan murah dari Node.js yang lebih mapan, mengingat domain masalah kedua teknologi dan kesamaan keseluruhan. Tapi begitu Anda mengetahui bahwa keduanya awalnya dimulai oleh orang yang sama, Ryan Dahl , itu mengubah persepsi.

Dahl merilis yang pertama versi Node.js pada Mei 2009. Pada Januari 2012 dia minggir dari proyek untuk fokus pada hal lain. Yang mengejutkan banyak orang, dia mengumumkan Deno pada tahun 2018 pada konferensi berbicara berjudul 10 Hal yang Saya Menyesal Tentang Node.js . dalam ceramahnya, motor primus Node.js menguraikan beberapa hal yang akan dia lakukan secara berbeda hari ini. Itulah Deno: Sebuah alternatif mengambil runtime JavaScript sisi server

Sejak peluncuran Deno, komunitas pengembang telah tumbuh di sekitarnya. Bagi banyak orang di luar dunia pengembang, upaya mereka mencapai puncaknya dengan peluncuran Deno 1.0 pada Mei 2020.

Apa kesamaan antara Node.js dan Deno?

Deno dan Node berjalan pada platform teknologi yang sama: Mesin JavaScript V8 . Ini adalah runtime JavaScript yang tersebar luas yang sebagian besar dikembangkan oleh Google untuk browser web Chrome mereka, tetapi juga ada di Chromium varian seperti Opera dan Microsoft Edge . Proyek V8 telah menerima investasi besar dalam waktu dan sumber daya dari relawan dan perusahaan. Singkatnya, V8 adalah pembunuh: Sangat cepat dan mendapat fitur bahasa baru dari ECMAScript-262 (standar yang mendefinisikan JavaScript ).

Node dan Deno keduanya melakukan hal yang kurang lebih sama hal: Mereka menjalankan kode JavaScript di server (ya, selalu ada server, bahkan jika Anda tanpa server ). Kisaran aplikasi yang dapat dibangun sangat luas; pompa data proxying aliran data dari satu lokasi dan format ke yang lain adalah kasus penggunaan umum, seperti API backend untuk SPA , tetapi Anda juga dapat menulis aplikasi backend tumpukan penuh yang kompleks seperti platform blogging Ghost atau aplikasi khusus dengan kerangka kerja seperti Next.js yang berjalan di server dan klien .

Arsitektur bersama JavaScript / V8 berarti keduanya memiliki karakteristik kinerja yang serupa. Mungkin ada beberapa perbedaan, di mana yang satu lebih baik dari yang lain – tetapi sebagai dasar keduanya cukup berkinerja untuk sebagian besar penggunaan dan dapat diskalakan secara horizontal. Jika Anda mencari throughput terbaik mutlak, Anda mungkin harus melihat sesuatu seperti .NET Core atau level yang sangat rendah. Ada area di mana kinerja V8 tidak akan memotongnya, tetapi jika Anda berada di bidang itu maka Anda mungkin mengetahuinya.

Ekosistem JavaScript sangat besar. Keterampilan inti yang Anda butuhkan untuk bekerja dengan Node atau Deno sangat mirip. Sintaksnya identik, meskipun Deno benar-benar memaksakan penggunaan TypeScript di userland . TypeScript adalah superset dari JavaScript, menambahkan pengetikan opsional dan fitur lain yang dapat berguna dalam fase pengembangan. Perlu juga dicatat bahwa Anda juga dapat mengembangkan aplikasi Node.js di TypeScript, dan pada akhirnya mesin V8 mengeksekusi JavaScript secara longgar yang dikompilasi dari sumber TypeScript.

Apa perbedaan Deno dari Node.js?

Berbeda dengan Node, penggunaan TypeScript adalah persyaratan dengan Deno. Beberapa bagian Deno sendiri ditulis dalam TypeScript, tetapi tim ingin mengubahnya karena tidak cocok untuk tujuan itu. TS adalah tidak diketik secara ketat dan tidak menawarkan runtime anti peluru menegakkan keamanan jenis 100% , tetapi cukup mengandalkan jenis inferensi ke mengaktifkan pemeriksaan jenis dan perkakas waktu pengembangan terkait di IDE untuk JavaScript .

Perbedaan signifikan lainnya adalah model keamanan. Node.js tidak pernah memiliki model keamanan universal. Ini berarti bahwa mudah untuk menulis kode yang akan melakukan banyak kerusakan di tangan yang salah, secara tidak sengaja atau tidak sengaja. Pendekatan di Deno berbeda, sejalan dengan browser dan Ibexa Model izin DXP :

Deno diamankan secara default. Oleh karena itu, kecuali Anda secara khusus mengaktifkannya, modul deno tidak memiliki akses file, jaringan, atau lingkungan misalnya. Akses ke area atau fungsi sensitif keamanan memerlukan penggunaan izin yang akan diberikan ke proses deno pada baris perintah.
Deno Manual: Izin

Pustaka standar adalah area lain di mana Deno berbeda dari Node.js. Node memiliki pustaka standar yang cukup kecil, yang mengarah ke sejumlah besar paket eksternal untuk (menurut beberapa orang) harus ditawarkan secara default dalam distribusi. Untuk Deno ini sekali lagi berbeda, karena mereka menawarkan perpustakaan standar yang lebih komprehensif yang terinspirasi oleh Pergilah:

deno_std adalah pelabuhan longgar Perpustakaan standar Go . Jika ragu, cukup port Go kode sumber, dokumentasi, dan tes. Ada kalanya sifat JavaScript, TypeScript, atau Deno itu sendiri membenarkan penyimpangan dari Go, tetapi jika memungkinkan kami ingin memanfaatkan energi yang digunakan untuk membangun Go. Kami biasanya menerima port langsung dari kode Go.
Deno Standard Library

Terkait dengan paket eksternal, ini adalah perbedaan besar lainnya di antara keduanya. Node.js mengandalkan repositori pusat, NPM , untuk menyimpan dan mengirimkan pustaka dan kode lainnya. Ekosistem ini memberikan manfaat besar bagi pengembang karena mengurangi duplikasi. Dengan di atas a juta paket pada NPM , itu adalah frasa umum untuk dikatakan ada paket NPM untuk itu di lingkaran pengembang. Dan seringkali ini benar, dan manfaatnya jelas.

Kode yang dibagikan adalah kode yang baik, dan Deno tidak bermaksud untuk menerapkan semua yang ada di stdlib . Yang berbeda secara fundamental adalah model distribusinya. Alih-alih repositori pusat, URL apa pun dapat berisi paket. Proyek ini menjadi tuan rumah satu set paket di deno.land/x, tetapi tidak diberlakukan di mana pun. Artinya tidak ada pemilik sentral seperti NPM (sekarang dimiliki oleh GitHub milik Microsoft). Pendekatan ini berarti Anda dapat meng-host server HTTP (publik atau pribadi) dan pustaka referensi dari sana.

Area lain yang terkait dengan ekstensi adalah penyederhanaan pengemasan kode. Ketika Node.js muncul, tidak ada format modul standar dalam spesifikasi ECMAScript. Inilah mengapa Node.js meluncurkan format modulnya sendiri, yang dikenal sebagai CommonJS . Karena popularitas Node.js, CommonJS menjadi standar de facto untuk modul di ekosistem JavaScript. Sejak saat itu ECMAScript telah menerima pembaruan rutin dan sekarang menyertakan
Modul JavaScript standar yang juga berfungsi di browser .

Saat ini Node.js juga mendukung modul JavaScript , tetapi sebagian besar ekosistem terus menggunakan CommonJS. Kedua format melakukan hal yang kurang lebih sama, tetapi dengan sintaks yang berbeda. Ini dapat membuatnya membingungkan untuk bekerja dengan Node karena Anda dapat menggunakan dua cara berbeda untuk fungsionalitas inti. Deno melakukan standarisasi pada modul ES .

Terakhir ada maskotnya, Deno. Lihat saja karya seni dari koleksi (gambar utama posting blog milik Dimitrij Agal ). Siapa yang bisa mengatakan tidak kepada yang kecil?

Kesimpulan

Seperti kita ‘ Telah dipelajari bahwa ada sejumlah kesamaan antara Deno dan Node.js, tetapi juga beberapa perbedaan utama dalam filosofi dan implementasi. Mungkin Perbedaan paling kontroversial adalah novel yang mengambil manajemen ketergantungan di Deno. Menyelesaikan sekumpulan dependensi yang kompleks bisa jadi lebih menantang (dan berpotensi lebih tidak dapat diandalkan) dalam model terdistribusi penuh ini. Perlu dicatat bahwa Anda dapat menggunakan paket dari katalog NPM dengan
jspm yang menghosting paket NPM sebagai modul ES .

Node.js memiliki pengaruh besar di pasar, ini adalah teknologi panas dan pengembang banyak dicari oleh perusahaan rintisan dan perusahaan. Ekosistem yang dinamis membuktikan bahwa tidak ada yang salah secara fundamental dengan Node.js dan ini adalah bagian besar dari kisah sukses JavaScript dalam dekade terakhir. Node.js tidak ke mana-mana, tetapi Deno bisa membuat ceruk untuk dirinya sendiri. Satu hal yang terlintas dalam pikiran adalah FaaS ( Function as a Service ), yang pengembangannya bisa lebih sederhana dengan pustaka standar Deno yang lebih luas.

Tapi tunggu sebentar … Ini adalah blog Ibexa . Apa hubungan Deno denganmu? Nah, sekarang belum ada. Kami menggunakan banyak JavaScript, misalnya, Komponen React.js untuk antarmuka pengguna administrasi, dan pipeline build aset kami adalah Berbasis Node.js, milik Symfony Encore . Tapi seperti sekarang lini produk Ibexa DXP tidak menggunakan daemon server JavaScript aktif di Node.js, Deno atau Netscape Livewire .

Implementasi di mana Ibexa DXP diterapkan adalah kasus yang berbeda. Teknologi kami sering kali merupakan bagian dari teka-teki yang melibatkan banyak komponen teknologi, dari layanan pengujian A / B untuk diintegrasikan sistem backend perusahaan seperti ERP. Di sinilah JavaScript sisi server banyak digunakan, paling umum sebagai Aplikasi Node.js yang juga berjalan di Ibexa Cloud , tetapi semakin meningkat seperti fungsi cloud Fungsi Azure atau AWS Lambda .

Sebagai tempat meleburnya data dan layanan, Platform Pengalaman Digital harus dapat berinteraksi dengan segalanya. Inilah mengapa ini bagus untuk klien kami, mitra dan kami harus waspada terhadap teknologi yang muncul. Integrasi adalah kunci untuk DXP dan Deno bisa menjadi pesaing di ruang itu dalam waktu dekat. Dan bahkan jika tidak, Anda selalu belajar dengan mempelajari solusi alternatif untuk masalah. Bahkan yang Anda pilih untuk tidak pergi.

Read More

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments