Microsoftの開発者が、Officeを完全にJavaScriptで書き直したとツイートしたことから騒動が巻き起こっていることが判明しました(MSPoweruser)。
問題の発言を行ったのは、Microsoft Web PlatformのTechnical Program ManagerであるSean Thomas Larkin氏で、「Office 365の全ては、JavaSriptと呼ばれる小さなスクリプト言語で完全に書き直されました」と以下のようにツイートしています。
(Ive never been able to say this yet)
🙋Well Actually!🙋All of Office 365 is (almost finished) being completely rewritten in this little scripting language called #JavaScript.
And Skype
And Microsoft Teams
And @Code
And all of @MSEdgeDev Debug Protocol (instead of C++)— Sean Thomas Larkin (@TheLarkInn) 2018年6月13日
このツイートを読む限り、巨大なOfficeソフト全体がJavaScriptで書き直されたと解釈するしかなく、パフォーマンス面や、従来Officeを記述するのに使用されていたC/C++などの言語と比較した場合の機能の少なさから、Officeの劣化を懸念するコメントが寄せられていました。
実際は今回、OfficeがJavaScriptで完全に書き直されたわけではなく、React Nativeを用いてUI部分のコードの共通化が行われたのが真実のようです。Larkin氏がツイートの真意を明確にするためにRedditに以下のような投稿を行っています。
Hi there!!! Original Tweeter here! I'm Sean and I'm a Program Manager at Microsoft working on Microsoft Edge and Edge Dev Tools!
Going to clarify across a few things. Some was lack of more then 280 chars in a tweet and not expecting this to get beyond #JavaScript twitter.
いくつかのことを明確にしたいと思います。
- MS Teams, VS Code, is already written _with_ TypeScript which is compiled to JavaScript powered by Electron. It is an electron application. VS Code is on GitHub and Open Source if you'd like to see examples of how or what.
MS TeamやVS Codeは既にElectronを利用しJavaScriptにコンパイルされるTypeScriptで書かれています。これはElectronアプリケーションです。 方法や例を見たい場合は、VS CodeはGitHubにありソースが公開されています。
- We are not abandoning C++, C#, or any of the other awesome languages, apis, and toolings that we use across Microsoft. EdgeHTML is almost entirely written in C++ like any other browser engine. However we do also run JavaScript (compiled from TypeScript) in DevTools, and leverage open source technologies like React and webpack to build the UI's for them.
私たちはC ++、C#、その他Microsoftが使用する言語、api、ツールなどを放棄するわけではありません。 EdgeHTMLは、他のブラウザエンジンと同様にC++で書かれています。 しかしDevToolsでJavaScript(TypeScriptからコンパイル)を実行し、Reactやwebpackなどのオープンソース技術を活用してUIを構築しています。
- Office 365's UI, a lot of it, but definitely not all of it, are pieces that are built using React Native (Windows). API's and Services are still going to be powered by C++, C#, or whatever is the most appropriate for that team. Nothing is converting to "all/completely" JavaScript/TypeScript.
Office 365のUIの多くは、React Native(Windows)を使用して構築されたものです。 APIとサービスはC++、C#、またはそのチームにとって最も適切なものであれば、引き続き利用されます。 「すべて/完全に」JavaScript / TypeScriptに変換されたわけではありません。
- React Native compiling JavaScript to "native code" is arguably wrong. Most of what is native are API's interactions and Native Modules that can be communicated with through JavaScript. WebViews power UI rendering thanks to React. Thanks to the Skype Engineer who sniped me on that in discussion.
React NativeでJavaScriptを"ネイティブコード"にコンパイルするというのは恐らく間違っています。ネイティブのほとんどは、JavaScriptを介して通信できるAPIのインタラクションとネイティブモジュールです。 WebViewsはReactのおかげでUIレンダリングを強化します。 Skype Engineerのおかげです。
- Feel free to ask anything else! It's the least I can do for tweeting some pretty unclear messaging.
誤解を招く表現だったかもしれませんが、クロスプラットフォーム展開を狙うアプリケーションの場合、React Nativeのようなフレームワークを利用するのが今後の主流になるのかもしれません。