++C++; // 未確認飛行 C ブログ

http://ufcpp.net/

TypeScript

with 4 comments

マイクロソフトも better JavaScript、かつ、JavaScript に変換して使う言語を作ってきたようで。

「JavaScript を、最小限の変更で、ツール連携(静的チェックやコード補完)しやすくする」という観点でみて、結構よくできてる。

少し前に、Anders Hejlsberg が JavaScript がらみで何かやってるというような話が出ていましたが、これのことだったんですねぇ。

いいと思う点

  • ほぼ JavaScript
    • スーパーセット(型指定が増える程度で、式とかはそのままで実行可能)
    • 追加分も最小限
      • 型付けを持つことで、実行しなくても確認できるエラーが多い & Visual Studio による補完が協力
      • クラス、インターフェイス、モジュールをサポート
      • ラムダ式(TypeScript 的には「arrow function expression」。x => x * x みたいな匿名関数)もサポート
  • JavaScript への変換で実現
    • あくまで、標準に沿ったブラウザーなら何でも実行可能
    • 「IE だけ特別処理」みたいなこともしてない
  • コンパイラーがオープンソース

下手に新言語を作らないという、作成コストや移行コストの最小化路線。

あと、最近のマイクロソフトのオープンソース路線、かなりいい感じですね。いっそ、Roslyn(というか、C#で書かれたC#コンパイラー)とかもオープンソースになってくれたりしないものか。

いまいちと思う点

  • JavaScript な人にとっては Visual Studio でなく、Eclipse プラグインとかもあった方がよかったのでは
  • JavaScript への変換時点で型情報は消える
    • (標準ブラウザーでの実行面を考えるとやむを得ないやり方)
    • 型情報があれば本来できるはずな実行最適化はできない
  • 結局 JavaScript
    • 地盤が緩いものを何とかごまかして支えてるだけという状態からは変わってない
  • かなりの部分、ECMAScript 6.0
    • 標準化が滞りなく進んでいたら必要のなかった作業を、わざわざ各社ばらばらにやってるだけ
    • 「標準化をせかす」というのが最大の目的だったりするのかも
広告

Written by ufcpp

2012年10月2日 @ 17:11

カテゴリー: 未分類

コメント / トラックバック4件

Subscribe to comments with RSS.

  1. ECMA6標準化が進んでいてもこれは意味があると思いますよ。ユーザーは古いブラウザを使っていることがよくあるので。

    惑星

    2012年10月3日 at 09:40

    • それはそれで、なおのこと「標準ベース技術のむずかしさ」でしかないですけどもねぇ。

      実装できないベンダーがいるから標準化が流れ、仕様化しきれてない部分で非互換が生まれ、あげく、新しいブラウザーが普及しない。

      ufcpp

      2012年10月3日 at 10:13

      • 標準ベース技術は難しいというのは全くおっしゃるとおりだと思います。ゆえにこういった技術に意味があると思います。
        仮にこういうのがなくてもユーザーがバージョンアップしてくれるかというと、そんなことはないと思いますし。

        惑星

        2012年10月3日 at 12:35

  2. TypeScript « ++C++; // 未確認飛行 C ブログ…

    素敵なエントリーの登録ありがとうございます – .NET Clipsからのトラックバック…

    .NET Clips

    2012年10月16日 at 22:26


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。