Microsoft Edge JavaScriptエンジンのソースコードが1月にオープン

先週、 JSConf US Last Call会議(フロリダ州、米国)で、Microsoft Edgeで使用されるJavaScriptエンジンChakraの主要コンポーネントのソースコードをChakraCoreプロジェクトの形式で開くことを発表しました。 ソースコードは、来月MITライセンスの下でGitHubで利用可能になります。





JSConf US Last CallのステージにいるGaurav SethChakraCoreを発表しました。 スライドはGitHubで入手できます。



Chakraは、ES2015の機能と予測可能なパフォーマンス、信頼性、およびスケーラビリティの最大のカバレッジを備えた最高のJavaScriptエンジンの1つです。 ChakraCoreは、クラウドサービスからモノのインターネットや他の環境まで、これらの要因が大きな役割を果たすシナリオで使用できることをお勧めします。



今日、私たちはこれまで以上にチャクラの改善に投資しており、さらなる改善を実施するためのコミュニティコラボレーションを開発する機会を得たことを嬉しく思います。 Intel、AMD、NodeSourceを含むいくつかの組織がすでにChakraに貢献することに関心を示しています。将来のコラボレーションについては楽観的です。



チャクラ:最新のJavaScriptエンジン







2008年に、コードネームChakra という新しいJavaScriptエンジンをゼロから作成しました 。 開発の基本原則の1つは、Chakraが最新のWebに必要なレベルのパフォーマンスを提供し、使用されるさまざまなハードウェアの新しいシナリオに簡単に適応できるようにすることでした。 簡単に言えば、これは、使用される鉄の潜在能力を十分に発揮しながら、チャクラをすばやく起動し、高速で動作し、優れたユーザーエクスペリエンスを維持する必要があることを意味しました。 インタープリター、マルチレベルのバックグラウンドJITコンパイラ、並列および部分的なメモリクリーンアップを実行できるガベージコレクターなど、独自のマルチステージ実行チェーンを通じてこれらの目標を達成します。





ChakraおよびChakraCoreのマルチステージコード実行スキーム



Chakraの登場以来、JavaScriptは、主にWebブラウザー内で動作する言語から、 ストア 、サーバーアプリケーション、クラウドサービス、NoSQLデータベース、ゲームエンジン、開発ツール、および新しいトレンド-物事のインターネット用のアプリケーションを作成できるテクノロジーに成長しました。 時間の経過とともに、Chakraはこれらの新しいコンテキストの多くを表示するように進化し、それに応じて最適化されました。 つまり、コードの実行に加えて、Chakraはネイティブポータビリティをサポートし、スケーラブルであり、限られた条件でコードを実行するためのリソース消費を管理できる必要がありました 。 Chakraインタープリターは、異なるプラットフォームアーキテクチャ間の技術移転の容易さにおいて重要な役割を果たしました。



現在、Microsoft Edgeブラウザーに加えて、Chakraエンジンは、Windowsがサポートするすべてのフォームファクター(Xbox、スマートフォン、または従来のPC)のユニバーサルWindowsアプリケーションでも動作します。 Azure DocumentDBCortana、 Outlook.comなどのサービスの基礎をなし、 TypeScriptと組み合わせて使用​​されます( TypeScript向けに最適化されています)。 また、Windows 10の一部として、Chakraの上でNode.js起動して、Node.jsエコシステムのパワーを新しいIoTプラットフォームであるWindows 10 IoT Coreにもたらすことも可能にしました



この夏のWindows 10のリリースにより、Chakra はWebでさらに高速になっただけでなく、他のブラウザーメーカーが開発した主要なJavaScriptエンジン速度テストで結果を2倍以上に増やしました。





JavaScript速度テストでのChakraパフォーマンス-OctaneおよびJetstream(システム情報:Windows 10で4.0GB RAMを搭載したIntel Core i5-34755 @ 2.90Ghzの64ビットブラウザー)



さらに、Chakra はECMAScript 2015(別名ES6)のほとんどの機能と、 Async FunctionsSIMDなどのECMAScriptの将来のバージョンの一部の機能をサポートしています。 asm.jsのサポートを追加し、 WebAssemblyおよび関連インフラストラクチャの開発にも関与しています





Chakraは、ほとんどのES6機能をサポートしています( Kangax ES6互換性表



したがって、2008年以降、Chakraは徐々に進化し、Web、クラウドサービス、およびモノのインターネットに最適な選択肢になりました。 本日の発表では、次のステップに進み、開発者に完全にサポートされたオープンソースJavaScriptエンジンを提供します。これをプロジェクトに埋め込み、その上で何かを実行し、変更をChakraCoreに提案できます。



ChakraCoreとは何ですか?



ChakraCoreは、派生プロジェクトに統合でき、NoSQLデータベース、生産性アプリケーション、ゲームエンジンなどのスクリプトの使用を必要とするアプリケーションをサポートできる、本格的で自給自足のJavaScript仮想マシンです。 ChakraCoreを使用すると、Node.jsおよびクラウドサービスと組み合わせて、サーバー上のJavaScriptの機能を拡張できます。 他のMicrosoft Edgeコンポーネントに依存せずにJavaScriptコードを解析、解釈、コンパイル、実行するために必要なすべてが含まれています。



ChakraCoreには、Microsoft EdgeのChakraと同じ機能セットが含まれていますが、2つの重要な違いがあります。 まず、ブラウザーまたはユニバーサルWindowsプラットフォーム(UWP)とのバインド用のプライベートAPIは公開されません。これは非常に特殊なシナリオです。 そして第二に、現在Chakraで使用されているCOMベースの診断APIを提供する代わりに、ChakraCoreは、原則として、長期的に異なる実装間で標準化または互換性を持たせることができる、最新のプラットフォームに依存しない診断APIの新しいセットをサポートします。 この新しいAPIセットが実装されると、それらをChakraに追加することも計画しています。





ChakraおよびChakraCoreデバイス



ChakraCore開発の次のステップ



最新のJavaScriptエンジンは、IoTアプリケーション用の小型デバイスからクラウドテクノロジーに基づいた並列サーバーベースのアプリケーションを備えた巨大なソリューションまで、あらゆるものを含め、単なるブラウザースクリプトよりも広いコンテキストで検討する必要があります。



ChakraCoreは、あらゆるアプリケーションスタックに適合するように設計されており、高速でスケーラブルで軽量なエンジンが必要です。 Windowsエコシステム内とそれ以外の両方で、時間の経過とともにさらに柔軟にする予定です。 最初の1月のリリースはWindowsのみを対象としていますが、将来的にChakraCoreを他のプラットフォームに移行する意図も確認できます。 開発者を招待して、この願望を実現させてください.ChakraCoreのサポートを希望するプラットフォームをお知らせいただければ、リソースと投資に優先順位を付けたり、興味のあるプラットフォームへの移植を支援することもできます。



ChakraCoreに貢献する方法



1月から、コミュニティ向けにGitHubで公開リポジトリを開きます。 この時までに、初期開発の優先順位に関する追加の詳細と、プロジェクトでの作業と変更を行うためのガイドを共有します。 コミュニティはオープンソースプロジェクトの中心であるため、リポジトリのクローン、コードの調査、新しいビルド、および新しい機能からテストやバグ修正までのすべての貢献を歓迎します。 また、ビジネスに不可欠な特定のシナリオでChakraCoreを改善するためのヒントも喜んで提供します。



Microsoft Edgeとそれに関連するエコシステムを、コラボレーションによる革新、相互運用性、および開発における生産性の向上の一例にしたいと考えています。 この意図により、新しいMicrosoft Edge Devサイトの作成、 プラットフォームステータスの公開およびMicrosoft Edgeチームとコミュニティ間の対話を促進するためのUser Voiceの使用が既に行われています。 ChakraCoreコードを開くことは、この取り組みの自然な継続であり、オープン性と透明性の同じ原則に触発されています。



この基準点は近日中に公開されます。オープンな開発プロセスにより、世界中の開発者とより緊密に連携できるようになり、誰にとってもより良い製品を作成できるようになることを願っています。 ツイッター@MSEdgeDevで、いつでもEdgeに関する質問をすることができます。 年末年始の告知をお待ちください!



-プリンシパルPMマネージャー、Gaurav Seth

-アダルベルトフォレスティ、プリンシパルプログラムマネージャー



ボーナス



Christian Heilmannは、JavaScript、Chakra、およびChakraCoreの開発に関するGaurav Sethとのインタビューを記録しました。




All Articles