noteがTypeScript×WebGL活用の高速コミックビューア開発、「キャプテン翼」サイトが採用

文章や写真、イラスト、音楽、映像などを手軽に投稿できるプラットフォームであるnoteを開発・運用しているピースオブケイクは7月28日、高速なページ送りと表示を実現したコミックビューアを発表した。第1弾として8月31日までの期間限定で「キャプテン翼公式サイト」で「小学生編」の全話無料公開に採用されている。同社によると、今後一定の実証期間を経て2019年中にnote上で公開予定とのこと。また、出版社・ユーザーが利用できるように広く提供することも考えているという。

今回発表されたコミックビューアは、同社CXOを務める深津貴之氏が今年の5月上旬に原型となるビューアを作ったのがキッカケ。深津氏は、既存のコミックビューアのUXに不満を感じていたことから、TypeScriptを使った高速なビューアの開発に至ったそうだ。

その後、この原型ビューアをnoteのエンジニアである板橋毅彦氏が改良を施したうえでの一般公開となった。レンダリングにWebGLを採用したことでさらに高速化できたという。WebGLとは、JavaScript APIの一種で、2D/3Dグラフィックスをレンダリングするためのライブラリ。TypeScriptは、JavaScript互換の静的プログラミング言語だ。

Facebookが新しいオープンソースプロジェクトでReactの敷居を低くする

BERLIN, GERMANY - FEBRUARY 24:  The Facebook logo is displayed at the Facebook Innovation Hub on February 24, 2016 in Berlin, Germany. The Facebook Innovation Hub is a temporary exhibition space where the company is showcasing some of its newest technologies and projects.  (Photo by Sean Gallup/Getty Images)

FacebookのReactは、JavaScriptで手早くアプリケーションとそのユーザーインタフェイスを作りたいときのための、オープンソースのライブラリだ。ただし、実際の話はこれほど単純ではない。Reactでアプリケーションを作るためには、JavaScriptのほかにも、いろんなツールを勉強しなければならないのだ。

FacebookはReact用の自社のツールについて語っているが、でも個人のデベロッパーやスタートアップの多くは、Facebookのような企業が持ってるリソースがない。

そこで、もっと多くの人がReactで仕事ができるために、同社は今日(米国時間7/22)、新しいオープンソースプロジェクト”Create React App”(Reactアプリケーションを作ろう)を立ちあげた。それは、あるハッカソンから生まれたプロジェクトで、Reactでアプリケーション開発を始めるために必要なツール集合を、たった一つのコマンドラインツールにまとめたものだ。

[Marcはあとちょっとで彼のReactの”hello world”アプリケーションを実装できるところだった]〔実際には複雑すぎてできなかった〕

FacebookのDan Abramovが今日の発表声明で次のように述べている: “従来、このようなプロジェクトはうまく行かないことが多かった。しかし先日、Christopher [Chedeau]がぼくに、複数の’React CLI’(Reactコマンドラインインタフェイス)を作り始めたけど、Facebookには無視された、と言った。コミュニティにも、同じような目標のツールが存在している。でも今のところは、それほど人気がない”。

Create React App(すごい分かりやすい名前だ!)の場合は、構成ファイルというものがない。環境のセットアップは、自動的に行われる。しかも、デベロッパーが手にするのは単一のツールだ。だから依存性も単一だ。しかし内部的には、JavaScriptやReactのエコシステムの既存のツールをたくさん利用している(Webpack, Babel, ESLint, などなど)。

このツールがユーザーをロックインしないことも、強調されている。この種のサービスでは、よくあることだが。ユーザーはつねに単一のコマンドを発行し、それが基本的にやるのは、ユーザーの構成を‘イジェクト’して、依存性を新しいプロジェクトへ構築することだが、プロジェクトはCreate React Appには依存しない。

Abramovはこう書いている: “‘イジェクト’によっていつでもCreate React Appの居心地の良いセットアップを去ることができる。コマンドを一つ発行するだけで、ビルドのすべての依存性、構成、そしてスクリプトがユーザーのプロジェクトへ移動する。その時点でユーザーは必要なものを何でもカスタマイズできるが、しかしそれはわれわれの構成をフォークして自分の道を進むことだ”。

これによって初心者がReactを使い始めるのが容易になるが、しかし経験豊富なデベロッパーでも、この新しいツールをは試してみたくなるだろう。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))

GoogleのAngular 2フレームワークがいよいよベータへ…今やES5よりもTypeScriptが人気

angular2

モバイルアプリとWebアプリケーションをHTMLとJavaScriptで作るためのGoogle製のフレームワークAngular 2が、ベータに入った。

GoogleがAngular 2を最初に発表したのは2014年の9月で、そのときはAngular 1と激しく違うことが論争になった。それから、アルファとデベロッパプレビューを経過した。Angular 2に‘ベータ’のラベルが付いたことは、そろそろ本格的なアプリケーション開発に使える、という意味だろう。Google自身はすでに、AdWordsやGoogle Fiber、社内的なCRMシステムGreenTeaなどのプロジェクトでAngular 2を使っている。

angular-2-code

Angular 2は今でもメインの用途はWebアプリケーションの開発だが、しかしNativeScriptとReact Nativeにより、AndroidとiOSのクロスプラットホームなネイティブアプリも作れる。

もうひとつGoogleが力を入れたのが、スピードだ。Googleによると、Webページのアップデートの表示はAngular 1の7倍速い。

本番リリースまでに、まだやるべきことが二つある、とGoogleは言っている。ひとつは、このフレームワークのバイナリサイズを縮小すること。もうひとつは国際化のサポートを改善しアノテーションをサポートすることだ。これらのほかにも、ドキュメンテーションや、起動時およびランタイムのパフォーマンス、Material Designのコンポーネント、などの部分でも今後さらに改良や充実化が行われる。

担当ディレクターのBrad Greenによると、ベータ以前の段階でも小さな変更がいろいろ加えられた。“最近の大きな変化としては、ケバブケースの成分名をキャメルケースに統一し、JavaScriptと同じ名前を使えるようにしたことだ”、と彼は述べる。“また、最近のJavaScriptはいろいろなツールやプロセスを使うので遅くなりがち、ということも学んだ…トランスパイラ(transpiler, ソースコード変換)、ビルドツール、ミニファイヤ(minifier, 圧縮)、継続的インテグレーションのスクリプト、デプロイメント、最小限でもこんだけあるね”。

Greenによると、Angular 2をMicrosoft作のTypeScriptで書くという決定はデベロッパたちに歓迎されたし、今ではAngular 2によるアプリケーションをTypeScriptで書くデベロッパが増えているようだ。“まだES5で仕事を続けたいデベロッパが多いはず、とわれわれは想定した。だからTypeScript派が多いことは、意外だった”。

彼のチームは最近、いろんなツールをコマンドラインから使えるためのAngular CLIというプロジェクトを立ち上げたそうだ。

[原文へ]。
(翻訳:iwatani(a.k.a. hiwa)。

Angular 2フレームワークとTypeScript言語でMicrosoftとGoogleが協働

宿敵と思われているMicrosoftとGoogleが、実は意外にも、JavaScriptでWebアプリケーションを書くためのGoogleのMVCフレームワークAngularJS(略称“Angular”)の、(反対意見少なからある)次期バージョンAngular 2で互いに協力している。

Angularはかなり前から、MicrosoftのTypeScriptのスーパーセットAtScriptを使っている。TypeScriptはJavaScriptを拡張しようとするMicrosoftの試みで、タイプアノテーションやジェネリック、モジュールなどの機能がある。いずれ、この二つの言語は一本化するのだろう。Angular 2はTypeScriptで書かれ、デベロッパはAngular 2のアプリケーションをこの言語で書くこともできる。

AtScriptが言語としてデビューしたのは昨年の10月だが、今後はAtScriptという名前は消えて、TypeScriptに統一されるようだ。

Angularは、最初JavaScriptで書かれ、その後はGoogleのDart言語やAtScriptで書かれたりした(Angular 1.xのDartバージョンやJavaScriptバージョンは今でも現存する)。AtScriptはTypeScriptに、イントロスペクション(introspection)やフィールドアノテーション、メタデータアノテーションなどの機能を加えている(上述)。で、今度はTypeScriptが、次の1.5からこれらの機能を取り入れる。そのベータのローンチは数週間後だ。

Microsoftのデベロッパ担当VP S. “Soma” Somasegarが、今日(米国時間3/5)の発表声明の中で次のように書いている:

“Angularのようなリッチなライブラリと密接に協働することにより、TypeScriptの言語機能も充実し、エンドツーエンドのアプリケーション開発がより容易になった。たとえばクラスの宣言にメタデータを加えるアノテーションを、依存性注入(dependency injection, DI)やコンパイラディレクティブのために利用できる。両者はこれからもTypeScriptとJavaScriptを将来的に一本化するための努力を続け、いずれは型付言語としてのJavaScriptのスタンダードとしてECMAScriptが採用するよう、働きかけていきたい”。

Angular 2はAngularの旧バージョンとの互換性が完全でないので、デベロッパコミュニティからの批判がとても多い。Microsoftが作った言語を使うことも、一部の人たちは気に食わないようだ。でもこれは明らかにTypeScriptの勝利であり、しかもそれは、昨年1.0がリリースされて以来、着実にユーザ数が増えているのだ。

この発表は、今日ユタ州ソルトレイクシティで行われたAngularカンファレンスng-confで行われた。そのときのビデオをご覧いただこう(TypeScriptの説明は20:00あたりから):

[原文へ]
(翻訳:iwatani(a.k.a. hiwa


MicrosoftのVisual StudioがTypeScriptを正式サポート

約1年半前にMicrosoftは、JavaScriptで大きなプログラムが書きやすくなるプログラミング言語TypeScriptを発表した。そして今日はTypeScript 1.0の最初のリリース候補の提供と、Visual Studio 2013の最新アップデートが行われ、TypeScriptはMicrosoftのIDEが正式にサポートする言語になった。

つまりTypeScriptはMicrosoftにおいてC#やVisual Basicと同格になったのだから、Microsoftとしてはいよいよ本気だ。これまで、TypeScriptをVisual Studioで使うためには、そのためのエクステンションをインストールする必要があった。それはたいした手間ではなかったけど、これからはVisual Studio本体がサポートするのだから、Microsoftがこの言語を相当重視していることが分かる。

TypeScriptはJavaScriptのスーパーセットで、オプションで静的型付けがサポートされ、クラス(上図)によるオブジェクト指向プログラミングができる。MicrosoftによればこれによってJavaScriptのためのより良いツールの開発ができるようになり、プログラマの生産性を高める。またそれと同時に、それまでのJavaScriptライブラリもそのまま使える。コードはすべて、通常のJavaScriptへコンパイルされるので、どんなブラウザでも動く。ランタイムライブラリはなく、コンパイラが不要なコードを注入することもない。Visual Studioに統合されたので、MicrosoftのIntellisenseや文の補完機能を利用できる。

TypeScriptのチーフアーキテクトは、あの偉大なるTurboPascalを作り、のちにDelphiやC#の制作にも貢献したAnders Hejlsbergだ。彼によると、TypeScriptは今、Microsoft内部での普及が急速に進んでいる。たとえばVisual Studio Onlineには今、30万行あまりのTypeScriptコードがあり、Windows 8.1用のXbox Musicの新しい機能はすべて、この言語で書かれた。またBing Maps、Photos、Microsoft Dynamicsなどそのほかのアプリケーションも部分的にTypeScriptで書かれている。

“JavaScriptでもきれいなコード*が書けるようにしたかった”、とHejlsbergは言う。TypeScriptで書いてもパフォーマンスが犠牲になることはないし、むしろコンパイラがプログラマの負担を取り除いてくれる部分が大きいから、素(す)のJavaScriptより生産性は高い、とも。〔*: JavaScriptのきれい化, GoogleのDart言語はどうか…。〕

TypeScriptはHejlsbergの期待を上回って、Microsoftの外の世界でも人気が出始めている。具体的には、今人気の高いIDEのほとんどがこの言語のためのプラグインを提供しているし、GoogleはTypeScriptコンパイラを同社のOctaneベンチマークに含めている。またGitHub上にはTypeScriptのタイプ(型)定義集DefinitelyTypedがあるなど、サードパーティのJavaScriptフレームワークをサポートする非常に活発なオープンソースコミュニティも、今ではTypeScriptをきわめて前向きに取り上げている。

3年前にTypeScriptの開発が始まったときには、できるかぎり軽量なフレームワークを作ろう、ということでチームの意思がまとまった。新しい言語を作るときは、あれやこれやと新しい機能を導入したくなるものだが、TypeScriptは自粛して新しい文をまったく導入していない。でもHejlsbergによると、今後は新しい文が増えるかも、という。しかしとにかく大筋では、今年の後半に公布される予定のECMAcript 6の規格に沿うことを鉄則とし、この新規格に盛り込まれたものはすべてTypeScriptにも含めることにした。

Hejlsbergによると、今日ローンチした1.0リリース候補(release candidate, RC)は、実質的には本番の1.0そのものだ。でも、ユーザが新しいバグを発見する可能性もあるから、控えめに‘リリース候補’と呼ぶことにした。もちろんこれまでのバージョンとの後方互換性には厳密に配慮しているが、言語本体の(未来指向の)開発も力を抜かずに継続していく意向だ。

Visual Studio 2013の最新アップデートは今すでにダウンロードできるが、Visual Studio 2012のユーザはTypeScript 1.0 RCを専用のインストーラを使ってインストールできる。Visual Studio 2013のアップデートには、TypeScriptの統合のほかにも、いろんな新機能やバグフィクスが盛り込まれている。詳しくはこのドキュメントで。

このアップデートの一環としてMicrosoftは、同社のTeam Foundation ServerやVisual Studio Online、それにTeam Explorer Everywhereのニューバージョンもローンチした。新しい機能の多くは、GitとJavaのビルドのサポートの向上に関連している。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))