Slide 1

Slide 1 text

歴史から理解する JAVASCRIPT TypeScriptも

Slide 2

Slide 2 text

ブレンダン・アイク(~1995) OSやネットワークプログラミング もともとLISPを研究していたらしい JavaScriptを開発

Slide 3

Slide 3 text

1995 NETSCAPE 締め切りは2週間後 でもまねしすぎるとパクリみたいだからクラスは使わないで Javaって言語が流行っているみたいなのでそれに似せて ブラウザ上で動くLISPを作ってほしい

Slide 4

Slide 4 text

JAVAっぽい普通の構文 if for while switch

Slide 5

Slide 5 text

シンプルなオブジェクト オブジェク トリテラル 第一級オブ ジェクトとし ての関数 初期化関 数 オブジェク ト指向

Slide 6

Slide 6 text

プロトタイプベースのオブジェクト指向 Selfを参考 クラスは使わない 関数オブジェクトによるメソッドの実装と相性が良い

Slide 7

Slide 7 text

非常に高度なライブラリを可能とする jQuery React Vue 魔法のような高度なライブラリの実現性ならトップクラスかも

Slide 8

Slide 8 text

争いの歴史 ~2003頃 •MicrosoftとNetscape •多くの非互換を残す •EcmaScript4中止 2008頃 •方針の違い •EcmaScript4再度中止 •見捨てられたActionScript •後継規格のコードネームはEcmaScript Harmony

Slide 9

Slide 9 text

AJAXの出現で需要が高まる ホームページにちょっと効果を足す言語から、アプリケーションを作る言語に • 文字列処理ではCを上回る処理速度とまで言われる ブラウザ各社がものすごいパフォーマンスチューニングを繰り返す

Slide 10

Slide 10 text

ECMASCRIPT2015 クラス アロー演算子 テンプレート文字列

Slide 11

Slide 11 text

ALTJSの出現 CoffeeScript Dart TypeScript WebAssembly

Slide 12

Slide 12 text

TYPESCRIPT JavaScript 静的型 TypeScript

Slide 13

Slide 13 text

TYPESCRIPT 生粋の静的型付き 言語ではありません

Slide 14

Slide 14 text

静的型付き言語と動的型付き言語 • 型の設計を重視した言語設計 • 設計は型の設計 • APIは型があることを前提 静的型付き言語 • オブジェクトはオブジェクト。なんでもいい。 • 受け取った側でうまく処理する。 • APIも型を前提とせず、人間を相手にした設計 動的型付き言語

Slide 15

Slide 15 text

TYPESCRIPT ライブラリはほぼす べてJavaScript互換 型システムと APIの設計 は動的型付 き言語

Slide 16

Slide 16 text

TYPESCRIPT 動的型付き 言語 静的型 チェック TypeScript

Slide 17

Slide 17 text

TYPESCRIPT •動的型付き言語の空気を読む方の表 現をすべて実現 •型チェックでミスは減らす 型の設計は動的型付き言語

Slide 18

Slide 18 text

歴史から理解するJAVASCRIPT シンプルながら非常に応用力のある文法 今風のシンタックスシュガー TypeScriptによる型チェック