Perubahan Deno di tahun 2023
- Deno kini memahami file
package.json, dan dapat mengimpor modul bawaan Node seperti node:fs dan node:crypto dengan menggunakan specifier node:.
- API server web baru
Deno.serve telah distabilkan, dan throughput HTTP meningkat sekitar 73% sepanjang tahun.
deno compile kini mendukung worker, dynamic import, dan modul npm.
- Deno memanfaatkan Web Streams (
ReadableStream dan WriteableStream) serta AbortController dengan 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:fs dan node:child_process melalui specifier node:.
- Beberapa fitur baru diperkenalkan untuk transisi yang lebih mulus dari Node ke Deno:
- Flag
--unstable-byonm memungkinkan penggunaan package manager npm pilihan Anda di dalam Deno.
- Flag
--unstable-sloppy-imports melonggarkan keketatan impor modul untuk mengakomodasi berbagai gaya dan praktik penulisan kode.
- Flag
--unstable-unsafe-proto mendukung Object.prototype.__proto__ yang menjadi dependensi banyak paket npm.
- 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.json agar tetap mudah digunakan:
deno.json kini juga dapat digunakan sebagai import map.
deno fmt mendukung titik koma, memberi fleksibilitas terhadap gaya penulisan kode.
- Integrasi dengan
package.json memudahkan perpindahan antara lingkungan Node dan Deno.
- Struktur
deno.json disederhanakan 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.