Google社内の標準言語としてTypeScriptが承認される。ng-conf 2017

2017年4月10日

Googleが中心となって開発しているオープンソースのJavaScriptライブラリ「Angular」のイベント「ng-conf 2017」が、4月5日から3日間、米国ユタ州ソルトレイクシティで開催されました。

3日目の基調講演に登壇したGoogleのエンジニアディレクター Brad Green氏は、TypeScriptがGoogle社内の標準言語に採用されたことを明らかにしました。

この記事では公開されている動画から、基調講演のその部分を中心にダイジェストでまとめました。

2年掛かりでTypeScriptがGoogle社内の標準言語に

Brad Green氏。Googleには社内の標準言語(Canonical Languages)としてC/C++、Java、JavaScript、Python、Goが設定されている。

Google社内の標準言語(Canonical Languages)としてC/C++、Java、JavaScript、Python、Go

なぜかというと、もし社内のプログラミング言語が15種類もあったら、プロジェクトを変わるごとに大変な思いをすることになるからだ。この5種類に絞ることで、大規模に関連ツールなどを開発、展開し、生産性を高められる。

Angularの開発を始めたとき、JavaScriptを拡張し、クラスなどを追加した独自言語「AtScript」を使っていた。その後、マイクロソフトの協力を得てTypeScriptを採用することになった。

Angularの開発言語はAtScriptからTypeScriptへ

しかしこれはGoogleの社内でTypeScriptを使うことを意味しない。

AngularはGoogle社外のオープンソースプロジェクトであり、Googleはそれに参加しているということになるので、TypeScriptを使ってもオーケーだ、ということなのだ。

しかしTypeScriptは、Google社内のClosure Compilerを用いたJavaScriptよりもずっと効率が良い。IDEの支援もある。

そして幸いなことに、Googleには標準言語を社内に追加するための承認プロセスがある。追加したい言語を申し込むと、何ページもあるチェックリストにかけられ、その後に会議で承認される。ただし問題は、過去にこれで承認された言語はひとつもなかったことだ(笑)。

しかも会議とチェックリストのあいだを何度も往復した結果、このプロセスには2年くらいかかった。

Google社内の標準言語追加プロセスに2年かかった

そして晴れて、初めてTypeScriptがGoogle社内のフロントエンドにおける標準言語に承認されたことをここに報告する。(会場から拍手)

TypeScriptがGoogle社内のフロントエンドにおける標準言語に承認された

GoogleにおけるTypeScriptの利点は、読みやすく書きやすいInline types、高速なコンパイル、Decorators、Closure互換、IDEのサポート。われわれは社内でクラウドベースの独自IDEを使っているが、それ以外にも幅広くサポートされている。

静的解析可能で自動ビルドが可能、Closureからの自動変換、そして活発なコミュニティがある。

TypeScriptの利点

ただしまだCLIは標準言語になっていない。なぜか。

ビルドツールや最適化ツールは数多くある。しかしわれわれも独自のツールを利用している「Blaze」と「Closure」だ。

「Blaze」と「Closure」

社内ツール「Blaze」のオープンソース版は「Bazel」だ。Bazelは非常に高速でスケーラブル、Googleには大規模なプロジェクトがあちこちにある。ほかにも多くのメリットがある。

そしていま、Angularチームは「Angular With Bazel and Closure」に取り組んでいる。Closureはオプティマイザーとして利用する。

Angular With Bazel and Closure

これをAngular Coreからはじめて、Angular Materialプロジェクトや、アーリーアダプターに広げていくつもりだ。

※ 参考:TypeScriptが標準言語になっても、Dartのことは忘れてませんよとGoogle担当者がフォロー
※ 参考:マイクロソフトがTypeScript 2.4をリリース。動的importでモジュールの遅延ロード実現。列挙型に文字列を指定可能など

ng-conf 2017

あわせて読みたい

HTML/CSS JavaScript プログラミング言語 Angular Google




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本