5 poin oleh GN⁺ 2024-02-06 | 2 komentar | Bagikan ke WhatsApp

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 ini disembunyikan.]
 
GN⁺ 2024-02-06
Komentar Hacker News
  • Seorang pengguna menyoroti bahwa ia masih belum menemukan cara untuk mengambil aplikasi Deno di lingkungan yang tidak terhubung ke internet, dan sama sekali tidak ada dokumentasi tentang hal itu. Pengguna ini menganggap Deno tidak punya harapan di lingkungan perusahaan.
  • Pengguna lain menyatakan ketertarikannya pada fitur WebGPU, dan menjelaskan bahwa ia sedang membuat GUI desktop dengan JavaScript/TypeScript melalui framework Slint tanpa browser atau webview. Jika Deno bisa langsung menampilkan window, ia berharap bisa mendistribusikan wasm alih-alih biner native untuk semua platform. Namun, ia menambahkan bahwa fitur WebGPU tidak mencakup API untuk menampilkan window, sehingga tetap memerlukan library tambahan.
  • Seorang pengguna berharap situasi kompilasi Deno membaik, sambil menyoroti bahwa executable yang dihasilkan berukuran lebih dari 90MB dan muncul error saat dikompresi, sehingga sulit didistribusikan seperti bahasa Go. Ia menyebut Deno kini lebih buruk dari solusi pkg milik Node.js dalam hal ukuran.
  • Pengguna lain ingin melihat dukungan yang lebih besar agar Deno bisa di-embed ke dalam proses host Rust. Ia sedang menulis JavaScript bundler dan membutuhkan runtime Node.js untuk menjalankan plugin, tetapi menyebut crate deno-core sangat 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.
  • Seorang pengguna mengatakan bahwa ia tidak menyukai JavaScript, tetapi setelah mencoba Deno, pengalamannya terasa sangat mulus dan cepat.
  • Pengguna lain mengatakan bahwa pada 2023 ia untuk pertama kalinya men-deploy aplikasi Deno yang nontrivial ke production, dan meski mengalami kesulitan dalam proses belajar menyinkronkan file lock di repositori dengan beberapa entry point, secara keseluruhan itu adalah pengalaman yang baik.
  • Menanggapi kabar bahwa Jupyter kini mendukung JavaScript dan TypeScript dengan menggunakan Deno, seorang pengguna memberi respons positif, tetapi juga menyebut bahwa Python memiliki dukungan yang sangat baik untuk angka dan matematika, sehingga ia mempertanyakan apakah ada orang yang benar-benar ingin menggunakan ini.
  • Seorang pengguna mengatakan bahwa kita bisa mendaftar ke daftar tunggu JSR yang ditautkan di akhir artikel, dan ia penasaran dengan apa yang sedang dibuat oleh tim Deno.
  • Ada pengguna yang membagikan tautan tentang kabar bahwa Deno Deploy mengurangi region GCP dari 35 menjadi 12.
  • Ada pengguna yang ingin memakai Fresh, framework pengembangan web, tetapi menilai dukungan yang saat ini hanya untuk Tailwind terlihat belum matang. Ia juga merasa heran mengapa iterasi berikutnya memprioritaskan view transitions alih-alih bundling CSS.