BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Denoはプロダクションで利用可能

Denoはプロダクションで利用可能

原文(投稿日:2020/06/12)へのリンク

2年間の開発の後、Denoは2020年5月にようやくバージョン1.0に到達した。公式Webサイトによると、DenoはJavaScriptとTypescriptのためのセキュアなランタイムである。Node.jsのように聞こえますか ? はい、DenoはNode.jsの最初の開発者であるRyan Dahl氏によって作成され、「Node.jsについて後悔している10のこと」と呼んだものに対応している。Denoは、Node.jsと同じように、基盤となるV8エンジンでJavaScript、TypeScript、またはWebAssemblyアプリケーションを実行する。アプリケーション開発者にとって、DenoとNode.jsの間にはいくつかの顕著な違いがある。

Node.jsのモジュラーバイナリと異なり、Denoは単一のバイナリアプリケーションである。NPMのような複雑な依存関係管理ソリューションを利用していない。代わりに、開発者は直接URLを使用してソースコードの依存関係を宣言する。すでに500を超えるサードパーティのDenoモジュールが利用可能である。このアプローチがエンタープライズアプリケーションに拡張できるかどうかを確認するのは興味深いことだ。その結果、Denoは一般にNode.js用に作成されたNPMパッケージと互換性がない。ただし、同じファミリのプログラミング言語とフレームワークを使用しているため、移植はかなり容易である。Denoはすでに多くのNode.js組み込みライブラリオブジェクトをサポートしている。また、Node.jsとは対照的に、Denoランタイムはデフォルトでセキュアである。アプリケーションがファイルシステムまたはネットワークにアクセスする必要がある場合、開発者はそれを明示的に宣言する必要がある。

APIのプログラミングに関して、DenoはTypeScriptを第一級市民にする。DenoランタイムAPIは、TypeScript/JavaScriptはPromiseとasync/await APIを多用する、しかし、Node.jsは設計時には利用できなかった。TypeScriptとJavaScriptに加えて、DenoアプリケーションはWebAssemblyバイトコードプログラムをロードして実行できる。たとえば、DenoのSqliteモジュールはC++からWebAssemblyにコンパイルされる。さらに、開発者はRustでDenoを拡張できる。これにより、Rustの依存関係/パッケージ管理システムであるCargoを使用してDenoプラグインとアドオンを管理できる。

内部的には、DenoはNode.jsのC/C++ではなくRustを使用して、基盤となるV8エンジンにアクセスする。libuvではなくRustのTokioクレート (ライブラリ) を使用して、Webアプリケーションでの高い同時実行性をサポートする。

Denoはv1.0に到達したばかりであるが、AWS LambdaAzure FunctionsGoogle Cloud Runなどの主要なクラウドプロバイダなど、業界の著名なプレーヤによってすでにサポートされている。Begin.comのBrian Leroux氏がAWSでDenoをテストしたところ、わずか6秒で開始された。JavaScript用の人気のあるIDEであるJetBrainのWebStormも、Denoのサポートを発表した。

Denoの将来については楽観的ですが、ただし、ほとんどの開発者はNode.jsが今後も続くと信じている。Node.jsを取り巻く大規模なエコシステムとエンタープライズアプリケーションのため、近い将来にDenoがNode.jsを追い抜くことは非常に困難である。

Denoは ... アイデアに関する約2年間の作業の集大成です。それはまだプロダクションシステムで試行およびテストされていません。... そしてそれが実現するまでは、アーリーアダプタ (Early Adopters) が遊ぶためのおもちゃにすぎません。 — Node.jsの専門家および本の著者であるFernando Doglio

Denoのv1.0リリースから3週間で、Denoチームはすでにバグ修正のために5のマイナーリリースを作成した。プロジェクトの次のリリースであるv1.1では、CLI、パブリックAPI、およびRustプラグインシステムの改善が計画されている。Denoの将来の計画について詳しくは、無料のOpenJS WorldカンファレンスのRyan Dahl氏の今後のプレゼンテーションをご覧ください。

Denoは、MITライセンスの下で利用可能なオープンソースソフトウェアである。貢献はDeno Projectを通じて奨励されており、Deno貢献ガイドラインに従う必要がある。

この記事に星をつける

おすすめ度
スタイル

BT