Howノードの課題に取り組んでいます。jsはRyan DahlのDeno
ノードの挑戦に取り組んでいます。オープンソースのJavaScriptランタイムであるjsは、先週15番目のバージョンをリリースしました。 今年で11年目を迎えました。jsはこれまでと同じくらい人気がありますが、2020年には新興の競争相手が登場しました。 5月にリリースされたオープンソースのJavaScriptランタイムであるDenoは、Nodeの元の作者であるRyan Dahlによって作成されました。js”を発表した。 あなたの製品を裏返しに知っている競合他社を持つよりもさらに悪いことに、DenoはDahlがNodeの重要な弱点として認識したものを修正するために特別に作js-セキュリティの問題、集中型リポジトリシステム(npm)の使用、および”重い手のツール。”
どのようにノードの現在の世代を見つけるために。jsメンテナは新しい挑戦者に対処しています—そして拡張として、彼らがDahlの批判に対処するために何をしているのか—私はRed HatとNodeのシニアソフトウェjs技術運営委員会委員。 Griggsはノードに関与しています。主にノードを使用して、2016年以来のjsプロジェクト。jsリリースワーキンググループ。
ノード。jsを使用すると、開発者はwebブラウザの外でJavaScriptコードを実行できます。 当初の目的は、ブラウザに送信する前にサーバー上に動的なwebページを作成することでした。 より一般的には、ノード。jsはバックエンドwebプログラミングのデフォルトになっています(フロントエンドにはReactやAngularなどが使用されています)。 開発者は、バックエンドとフロントエンドの両方で同じ言語JavaScriptを使用できるという考えです。
ノード。また、jsは非常にスケーラブルで、イベント駆動型のプログラミングモデルを備えています。
“ノード。jsは、クラウドネイティブマイクロサービスとバックエンドアプリケーションを構築するための主要なランタイムの1つであり続けています」とGriggs氏は語ってくれました。 私のお気に入りの例の1つは、NODEを使用したNASAです。宇宙服のデータを監視するjs。”
宇宙服はさておき、ノード。jsはもはやJavaScript開発のホットな新しいものとは見なされていません(次の。フロントエンドのReactフレームワークであるjsは、おそらくそのマントルを取っています)。 そして、Denoの最先端の性質と比較して—例えば、Denoは流行の新しいプログラミング言語、Rust—ノードで書かれていました。jsプロジェクトは、今日では比較的保守的な開発パスに従います。 そのため、Nodeのバージョン15は驚くことではありません。jsはインクリメンタルアップグレードです。
Griggsは、v15の最も重要な更新であるとして、”未処理の拒否にデフォルトでスロー”を引用しました。 これは、開発者がアプリケーションのエラーの処理を省略しているという早期のフィードバックを得ることができることを意味します。”貴重な技術的な更新、間違いなく、しかし、ハイテクTwitter上で熱狂的な議論を生成する可能性はありません。Ryan Dahlの批判に応えて
私がもっと興味を持っていたのは、ノードかどうかでした。jsプロジェクトチームは、Ryan Dahlがここ数年にわたって提起した懸念のいくつかに対処するために、新しい開発、または修正を行っていますか?数年前、DahlはNodeを作成した後、彼の後悔についてのプレゼンテーションをしました。
js”を発表した。 主なものは、彼がランタイムを彼が持っているほど安全にしなかったということでした—Denoを作成するときに彼が対処したこと、これは”デフォルトでは安全である”と宣伝されています。 マニュアルに記載されているように、”Denoはファイル、ネットワーク、および環境へのアクセスに明示的なアクセス許可を必要とします。”
ライアン-ダールJSConf EU2018で。
外交的に、Griggsは私にそのノードを教えてくれました。jsは、この問題やその他の問題についてDenoから”インスピレーションを受けます”。 しかし、彼女はノードと言いました。jsプロジェクト”は、Denoが発表される前から、セキュリティの実施とApiへのアクセスの制限に関する議論の歴史を持っていました。”彼女はセキュリティのためのいくつかの”実験的な機能”を指摘しました(例1、例2)。
また、Griggsは、Denoの安全第一のアクセスアプローチがNodeに適しているとは確信していません。js”を発表した。 「実用的なアプリケーションのためには、すぐに多くのApiへのアクセスを許可することにフォールバックする必要があるため、正味の価値と複雑さは低”
ノード間の関心がありますが。griggs氏によると、より強力なセキュリティ機能を試すjsプロジェクトチームは、「Denoと同じトレードオフをすべて採用する説得力のあるケースはありませんでした。”
モジュールの閉鎖されたエコシステムとしてのnpmのDahlの批判については、Griggsはノードの理由を見ていません。それを変更するjs。
“モジュールがどのように管理されているかに関しては、モジュールのエコシステムは、ノードの成功の大きな部分となっています。js”を発表した。 モジュールを提供するレジストリであるクライアントの統合に関する議論が進行中ですが、主な焦点は、管理方法を変更するのではなく、ES6モジュールの”
npmを使用するのではなく、DenoはUrlまたはファイルパスとして参照されるモジュールを使用することを選択しました。
サーバー側のJavaScriptはまだ強い行く
NextのようなJavaScriptフレームワークの現在の人気と。jsとGatsbyは、Jamstackの台頭とその静的サイト生成アプローチとともに、GriggsにサーバーサイドJavaScriptのユースケースに影響を与えているかどうか尋ねました。
“サーバー側のレンダリングのためのテンプレートエンジンのようなものの使用が減少する可能性があります”と彼女は言った、”しかし、ノード。jsは、Jamstackのようなアプローチを使用してデプロイされる可能性のある静的ページをバックするマイクロサービスを構築するために ノード。jsは、クライアント側のJavaScriptの開発パイプラインを構成するツールでも引き続き頻繁に使用されています。”
ノードの先物。jsとDeno
だから、ノードの次は何ですか。js? バージョン15についての発表記事では、GriggsはNodeの10周年を祝った後にそれを書いた。jsは昨年、”プロジェクトは、ノードの次の10年をキックオフしました。jsの努力。 “
私はGriggsに、プロジェクトメンバーが今後十年間にどのような取り組みを実施しようとしているのか尋ねました。
“これまでのところ、私たちは開発者の経験、安定性、運用品質、ノードとして私たちの優先順位を定義しました。jsメンテナの経験、そして最新の技術とApi”と彼女は答えました。
これらは現在、値と優先順位と題されたGitHubのドキュメントで概説されています。 セキュリティは、”運用品質”のサブカテゴリとして一度言及され、単に述べています:”責任ある方法でセキュリティの脆弱性に対処します。”
それは、特に最初の場所で脆弱性を回避しようとするDenoのより野心的な目標と比較して、次の十年のための高いバーの目標のように思えません。
しかし、ノード以来。jsは安定した比較的長時間実行されるプロジェクトであり、いくつかの非常に大規模なエンタープライズソフトウェアベンダー(Griggの雇用主、Red Hatのような) それは他の人がサーバーサイドJavaScriptの将来についてより大きく大胆に考えるための開口部を残していますが、これはDahlと彼のDenoプロジェクトがやってい
Red Hatは新しいスタックのスポンサーです。
機能画像を経由して。