Deno di Tahun 2023
(deno.com)Perubahan Deno di tahun 2023
- Deno kini memahami file
package.json, dan dapat mengimpor modul bawaan Node sepertinode:fsdannode:cryptodengan menggunakan specifiernode:. - API server web baru
Deno.servetelah distabilkan, dan throughput HTTP meningkat sekitar 73% sepanjang tahun. deno compilekini mendukung worker, dynamic import, dan modul npm.- Deno memanfaatkan Web Streams (
ReadableStreamdanWriteableStream) sertaAbortControllerdengan lebih baik di seluruh API untuk memperkecil kesenjangan antara pemrograman browser dan sisi server. - File konfigurasi Deno,
deno.json, kini juga dapat digunakan sebagai import map, dengan skema yang disederhanakan, dukungan glob, dan penambahan properti tingkat atas"exclude"yang berguna. - Jupyter, alat notebook open source, kini mendukung Deno menggunakan JavaScript dan TypeScript.
- WebGPU ditambahkan ke Deno setelah hampir satu tahun pengembangan.
- TypeScript tanpa konfigurasi milik Deno kini memiliki integrasi editor yang lebih baik berkat peningkatan signifikan pada LSP dan integrasi VS Code.
- Fresh, framework web berbasis Deno, diperluas dengan fitur seperti dukungan Tailwind, Partials, dan file layout.
- Deno Deploy menjadi lebih kuat dengan komponen bawaan yang terdistribusi secara global seperti Deno KV, Queues, Cron.
- Platform ini meluncurkan subhosting swalayan agar dapat men-deploy dan menjalankan JavaScript multi-tenant yang tidak tepercaya.
Peningkatan kompatibilitas dengan Node dan npm
- Deno memperluas kompatibilitasnya dengan ekosistem Node, termasuk modul bawaan Node seperti
node:fsdannode:child_processmelalui specifiernode:. - Beberapa fitur baru diperkenalkan untuk transisi yang lebih mulus dari Node ke Deno:
- Flag
--unstable-byonmmemungkinkan penggunaan package manager npm pilihan Anda di dalam Deno. - Flag
--unstable-sloppy-importsmelonggarkan keketatan impor modul untuk mengakomodasi berbagai gaya dan praktik penulisan kode. - Flag
--unstable-unsafe-protomendukungObject.prototype.__proto__yang menjadi dependensi banyak paket npm.
- Flag
- Dengan stabilnya Node-API, kini paket npm yang bergantung pada Node-API dapat digunakan tanpa flag
--unstable, sehingga cakupan dukungan menjadi lebih luas.
Server web yang lebih sederhana dan cepat dengan Deno.serve()
- Fungsi
Deno.serve()diperkenalkan dan distabilkan, memungkinkan developer menjalankan server dengan kode seminimal mungkin. - Kinerja meningkat signifikan melalui optimasi terarah pada library inti dan mekanisme event loop.
- Throughput HTTP Deno meningkat secara mencolok dalam uji benchmark menggunakan konfigurasi server dasar "Hello, world".
deno.json yang lebih fleksibel
- Deno berpegang pada prinsip pemrograman yang dapat digunakan tanpa konfigurasi rumit, dan terus menyempurnakan file konfigurasi
deno.jsonagar tetap mudah digunakan:deno.jsonkini juga dapat digunakan sebagai import map.deno fmtmendukung titik koma, memberi fleksibilitas terhadap gaya penulisan kode.- Integrasi dengan
package.jsonmemudahkan perpindahan antara lingkungan Node dan Deno. - Struktur
deno.jsondisederhanakan agar lebih intuitif untuk dijelajahi developer. - Pengenalan pola glob memungkinkan kontrol yang lebih presisi atas penyertaan atau pengecualian file dan direktori.
Pengalaman pengembangan yang lebih mulus melalui LSP
- Integrasi Language Server Protocol (LSP) milik Deno menyediakan fitur seperti go-to-definition yang akurat, IntelliSense yang komprehensif, dan formatting kode yang mulus untuk proyek TypeScript.
- Banyak upaya dilakukan untuk meningkatkan LSP sehingga menulis kode di Deno menjadi lebih mulus dan intuitif.
WebGPU
- WebGPU menghadirkan ke Deno teknologi mutakhir yang memungkinkan developer memanfaatkan langsung performa hardware GPU menggunakan JavaScript.
- WebGPU tersedia di balik flag
--unstable-webgpu, dan menjadi tonggak penting yang memperluas kemampuan aplikasi Deno.
Notebook Jupyter
- Jupyter, alat notebook open source, kini mendukung Deno menggunakan JavaScript dan TypeScript.
- Hal ini memungkinkan data science, visualisasi, dan lainnya dilakukan dengan JavaScript dan TypeScript modern serta API standar web.
Rust crate open source yang patut diperhatikan
- Deno terhubung dengan berbagai proyek open source dan berkontribusi aktif untuk memperluas set fitur Deno serta mengoptimalkan performanya.
- Tahun ini Deno merilis beberapa Rust crate yang juga dapat berguna secara mandiri.
Fresh
- Fresh adalah framework web full-stack modern dari Deno yang secara default tidak mengirimkan JavaScript sisi klien, dan terus disempurnakan agar mudah digunakan serta meningkatkan performa.
Ekspansi bisnis cloud Deno
- Deno Subhosting beralih menjadi layanan mandiri sambil mendukung edge function Netlify dan toko e-commerce pelanggan Deco.cx, sehingga kini siapa pun dapat menggunakannya secara gratis.
- Dengan meluncurkan komponen cloud seperti Deno KV, Queues, dan Cron, Deno membuat kemajuan menuju visinya untuk menyederhanakan pengembangan web secara fundamental.
Deno 2
- Deno 2 akan menghadirkan runtime yang lebih baik, termasuk pengumuman menarik terkait peningkatan kompatibilitas dengan Node dan npm, serta cara mengelola dan mengoptimalkan dependensi proyek.
Pendapat GN⁺:
- Penting bahwa Deno sangat meningkatkan kompatibilitas dengan Node.js dan berfokus pada penyederhanaan pengembangan web. Ini dapat mempermudah developer Node.js yang sudah ada untuk beralih ke Deno, sekaligus mendorong adopsi Deno.
- Integrasi fitur mutakhir seperti WebGPU menunjukkan bahwa Deno sedang berkembang melampaui sekadar platform server-side dan menjadi cocok untuk pengembangan aplikasi yang lebih luas. Ini bisa sangat menarik terutama bagi developer yang membutuhkan komputasi berperforma tinggi dengan memanfaatkan GPU.
- Perkembangan framework Fresh dan Deno Deploy menunjukkan bahwa Deno dapat memainkan peran penting dalam pengembangan web full-stack, sekaligus memperkuat posisinya sebagai layanan berbasis cloud. Perkembangan ini meningkatkan kemungkinan Deno menjadi pemain utama dalam pengembangan web modern.
2 komentar
Komentar Hacker News
pkgmilik Node.js dalam hal ukuran.deno-coresangat dasar dan sulit di-embed. Ia berharap Deno bisa menjadi "runtime plugin" di dunia tooling JS, dan menjelaskan bahwa saat ini ia berkomunikasi dengan child process Node.js menggunakan stdio dari proses host Rust.