Zerobase Dev Blog

コードネームYentry

TypeScriptとMeteorでアプリケーション開発へ

Smalltalkでのウェブ開発を断念してDartを検証中でしたが、DartをやめてTypeScriptにしようと思います。また、Node.jsベースのMeteorというアプリケーション・フレームワークを使うつもりです。(※さらに詳しい『これまでの経緯』)

TypeScriptとMeteorの組み合わせにした理由についてまとめます。

TypeScript

TypeScriptはJavaScriptにコンパイルする言語なのですが、

しかし、Dartと大きく違うのは、Dartが「JavaScriptにもコンパイルできる、JavaScriptを置き換える事を狙った言語」であるのに対して、TypeScriptはあくまでも「JavaScriptをより便利に使う為のコンパイル言語」にとどまっている点です。また、TypeScriptの仕様のほとんどが、基本的にはECMAScriptの先取りになっている点にも注目です。jQueryとnode.jsが、すでにTypeScriptベースで提供されている点もすばらしいですね。

JavaScriptを書くならTypeScriptを使え! - 部屋とボードゲームと私と酒と泪と男と女

つまり既存のJavaScript資産やnpm (Node.js)資産が活用しやすい。これがDartに対するJavaScriptのアドバンテージですね。

また、JavaScriptにコンパイルできる言語としてはCoffeeScriptHaxeもあります。CoffeeScriptはTypeScriptの競合で、HaxeはDartの競合という感じです。いずれもTypeScriptより魅力的ではありませんでした。

Meteor

Meteorの解説は『第1回 Meteorをはじめよう:体感!JavaScriptで超速アプリケーション開発 -Meteor完全解説』に譲ります。Discover Meteorが出版されて、習得しやすくなりました。

そもそも『UIコンポーネント単位のエンド・ツー・エンドの開発パイプライン』を模索していました。また、『Smalltalkでのウェブ開発を断念してDartを検証中』に書いたように、Dartを使う目的に

  • frontendとbackendを同じ言語で書く
  • ドメイン・モデルのコードを共有・再利用する
  • ブラウザのJavaScriptが有効ならAjax、無効ならサーバーサイド・レンダリングの切り替えを、透過的に行う

がありました。この目的を実現するならMeteorでもよさそうです。そして言語自体を比較するとDartよりTypeScriptのほうが魅力的でした。

そんなわけで、TypeScriptでMeteorアプリを開発する方向で研究しているところです。言語とフレームワークという、もっとも基盤的な技術の選定は、これで確定だと思っています。いよいよアプリケーション開発に着手です。