🦖

Deno 2 正式版リリース!公式アナウンス内容を完全分解

2024/10/11に公開

Deno 2 正式版が10月9日にリリースされました。

Image from Gyazo

Deno 2が目指すビジョンや詳しい変更内容については、公式ブログのアナウンス記事で詳しく説明されています。
https://deno.com/blog/v2.0

今回はブログ記事と同名のタイトルで公開されたYouTube動画について、内容をチャプターごとに解説します。
内容そのものも興味深いので(特に最初の2分半)、ぜひ本記事を参考に視聴してみてください。

Announcing Deno 2

https://www.youtube.com/watch?v=d35SlRgVxT8

00:00 コールドオープン

Image from Gyazo

Ryan Dahlが面白おかしな舞台演出で登場し、複雑になってしまったNode.jsの現状を指摘するとともに「Programming should be simple」というDenoのビジョンを説明するパートです。

このかっこいいオープニングだけは別動画に切り出されて公開されています。

Programming should be simple - YouTube

02:37 キーノート

Image from Gyazo

JavaScriptはプログラミング言語の中で最も使われている「default language」であり、その開発体験をこれからもっと良くするためにDenoが存在することが説明されます。

03:59 デモ:単一ファイルのプログラム

Image from Gyazo

Denoではpackage.jsonもnode_modulesも必要ありません。ファイル一つあればプログラムが実行できることをデモで示します。
TypeScriptコードも設定ファイルなしで書けるし、deno check で型チェックさえできます。

Deno のインストール方法と新しい Deno プロジェクトの作成方法について説明します。簡単な "hello, world" プログラムを作成し、Deno の構文と機能を紹介します。

08:31 オールインワンツールチェイン

Image from Gyazo

「オールインワンランタイム」であるDenoは、Node.jsのエコシステムを構成しているコンパイラーやフォーマッター、その他多くのツールを統合しています。

09:05 deno compile デモ

Image from Gyazo

deno compile でシングルバイナリー実行ファイルにコンパイルできるので、Denoなしでもプログラムを配布できます。デモ機はApple SiliconのMacですが、WindowsやLinux用の実行ファイルへのクロスコンパイルにも対応しています。

10:39 Deno 2の発表

Image from Gyazo

Denoユーザーにとってこれまで課題だったのは、npmや既存プロジェクトなどのエコシステムとの互換性でした。Deno 2ではES Modulesで書かれたNodeプロジェクトとの後方互換性を確保し、Denoを少しずつ採用できるようになっています。

11:58 Next.js デモ

Image from Gyazo

それを示すデモとして、Next.jsアプリを新規作成します。npx create next の代わりに deno -A npm:create-next-app を実行するとボイラープレートコードが展開されました。Astroをはじめとするその他のフレームワークでも同様のことが可能です。

14:18 Nodeとnpmとの互換性

Image from Gyazo

URLによる直接インポートは、npmライブラリでは npm: をプレフィックスにすることで可能です。chalkをはじめとする従来のライブラリが、node_modulesやpackage.jsonなしで使えることを見ます。

17:22 パッケージ管理

Image from Gyazo
それでもパッケージ管理が必要な場合はあります。Deno 2では deno installdeno remove といったサブコマンドで、パッケージの追加や削除が簡単になりました。

18:17 deno install デモ

Image from Gyazo

既存のNodeプロジェクトでnode_modulesを削除し、deno install で再構築した後でもNext.jsが動作しています。

19:00 JSR

Image from Gyazo

JSRはnpmを後継する新しいパッケージレジストリです。TypeScriptもサポートしており、Nodeだけでなく多くのランタイムに開かれています。代わりにCommonJS仕様にはもはや対応していません。

20:14 Deno標準ライブラリ

Image from Gyazo

Nodeではテストやコレクション操作のためのライブラリがnpmのサードパーティーライブラリとして開発・提供されてきました。Denoではこれらを標準ライブラリとして提供し、ユーザーが迷わず利用できるようにしています。

21:18 JSR デモ

Image from Gyazo

JSRライブラリを利用するには、名前に jsr: プレフィックスをつけてインポートします。パッケージをパブリッシュするのも簡単で、コードの簡単な追加や修正を加えて deno publish するだけです。

27:20 エンタープライズ機能

Image from Gyazo

エンタープライズ企業にももっと利用してもらいたいので、Deno 2ではエンタープライズ向けの新しい機能が追加されています。これには、プライベートレジストリ、ワークスペース、および長期サポートが含まれます。

27:51 プライベートレジストリ

Image from Gyazo

ひとつ目がプライベートレジストリです。npmと同様に、会社内部のプライベートレジストリにアクセスできます。

28:14 ワークスペースとモノレポ

Image from Gyazo

ふたつ目はワークスペース機能で、複数のプロジェクトをひとつのリポジトリで管理できます。

28:44 長期サポート

Image from Gyazo

最後が長期サポート(LTS)で、半年ごとにLTS版をリリースします。これにより企業は安定したバージョンのDenoを利用できます。

29:42 Denoは高速

Image from Gyazo

DenoがNodeやBunよりも高速であることは、さまざまな種類のベンチマークで示されています。

30:36 deno jupyter デモ

Image from Gyazo

DenoはなんとJupyter Notebookも標準でサポートしています。JSRやnpmのライブラリを利用して、データの分析やプロットなどによる可視化をJavaScriptコードで対話的に行うことができます。

34:42 アウトロ

Image from Gyazo

Deno 2からはロゴも新しくなりました。みなさんもぜひ使ってみてください。

35:03 Q&A

Deno開発チームによるQ&Aのライブセッションが行われていました。

記事についての補足

最後にこの記事をどうやってまとめたかについて簡単に紹介します。

YouTube動画のURLとチャプター情報をGemini 1.5に渡してチャプターごとの要約を生成し、それを人手で書き直して解説を盛り込みました。

‎Gemini と話してアイデアを広げよう

YouTube動画の撮影にはGyazoブラウザ拡張機能の動画フレーム撮影機能を利用しました。

Gyazo - Webページのスクリーンショットを保存

Discussion