昨今、トレンドはあれど様々なプログラミング言語が存在し利用されています。
また、議題に上がるTypeScriptに対して「難しい・わかりづらい」などの意見も目にします。
- TypeScriptが難しい理由
- TypeScriptの学習においてどのように取り組むべきか
本記事ではこれらの問題について解説します。
TypeScriptとは
TypeScriptは、MicroSoftによって開発されたプログラミング言語です。
TypeScriptの応用範囲は幅広く、JavaScriptを用いる新規プロジェクトではTypeScriptが使われるというのが当たり前の光景になりつつあります。
TypeScriptが難しい理由
TypeScriptが難しい理由として以下のものが考えられます。
- 静的型付けといったプログラミング言語
- コンパイラの役割を持つ言語を扱ったことがあるか
TypeScriptは、”JavaScript + 静的型付け”である言語です。
基本的に、”型”を意識することなく実行できる動的型付けの言語は、変数などで型定義が必要ありません。
そのため、動的型付けであるJavaScript(他言語で言えばRubyやPython)からプログラミングを始めた人にとって、静的型付けであるTypeScriptを学び直すのが難しい理由に挙げられます。
また、コンパイラ(ソースコードを翻訳・変換)の役割を持つ言語を扱ったことがない人であれば、同様に学習難易度は高くなります。
静的型付けと動的型付け
一般的に静的型付けと動的型付けである言語に分けられます。
また、”型”による違いによって各言語の振る舞いは大きく異なります。
静的型付けとは
プログラマがコードを記述する際に、あらかじめプログラマ自身が変数や関数の引数など、値に対してどのように「データ」を扱うのか、プログラマ自らが指定します。
つまり「型」を決めて使う方法を「静的型付け」と言います。
動的型付けとは
プログラマによって書かれたコードを元に、変数や関数の引数、返り値の型を基本的に指定しません。
インタープリターが実行時にデータの型を解釈・決定して扱う方法を「動的型付け」と言います。
TypeScriptにおける”型”を理解する
TypeScriptが難しい理由を並べ、これらの解決策として考えるべきなのは”型”を理解することです。
以下の”型”が特徴的です。
- 型注釈
- 型推論
特に、”型注釈(型の定義)”について理解を深める必要があります。
例えば、型注釈は「変数が型を持っている」といった静的型システムの特徴を最も直接的に表す構文と言えます。
また、型推論の機能も充実しており、型注釈がなくても型を決めてくれる機能が同時に存在します。
さらに詳しくTypeScriptの特徴やメリット・デメリットを知りたい人は「【TypeScript】特徴やメリット・デメリットを徹底解説!」を一読ください。
型推論と動的型付けの違い
「型を書かない」といった振る舞いで考えると、JavaScriptをはじめRubyやPythonなどの動的型付け言語でも同様です。
しかし、型推論と動的型付けは異なる点があります。
型推論はコンパイルのタイミングで型が決定され、その型が変更されることはありません。
型をプログラマが書くかコンパイラが自動で決めるという点で違いがあり、あくまで静的型付けの枠に収まります。
一方で、動的型付け言語では実行時に型が決まるため、実行タイミングにより型が変化します。
そのため、実行タイミングで型が変化することから、型推論ではエラーになる処理も動的型付け言語では正常に動作する違いがあります。
TypeScriptの欠点とは
TypeScriptを利用する上で、TypeScriptで解決できない場面を把握しておくことは重要です。
開発時にTypeScriptの欠点を理解することで、改善策が立てやすいからです。
TypeScriptの言語特性からアプローチできるかどうかを知っておきましょう。
- 実行時の高速化・省メモリ化に影響しない
- TypeScriptランタイムはない
- TypeScriptコンパイラは最適化しない
上記の各欠点をさらに詳しく理解したい人は、「【TypeScript】言語の難易度やJavaScriptと比較して徹底解説!」を一読ください。
TypeScriptはなぜ人気なのか?
JavaScriptに対してコンパイルし利用する言語を「AltJS」と呼び、TypeScriptもその一種になります。
多くのAltJSの中でもTypeScriptは、最も人気な言語の一つです。(ランキングトップクラス)
実際に、「Stack Overflow」や「The State of JavaScript」など様々なアンケート調査・サイトで人気度の高さを誇っています。
他にも以下のポイントで人気を博しています。
- ネット上における圧倒的な情報量
- エコシステムの充実度
- TypeScriptによる就職採用率
ネット上における圧倒的な情報量
エンジニアによる採用率が高く満足度も高いTypeScriptを選ぶことは、様々なメリットが発生します。
最初に考えられるのは、ネット上での圧倒的な情報量です。
新規で学ぶ言語あるいは不明点がある状況でも、学習時・トラブル時であっても情報の豊富さが開発のしやすさにつながります。
エコシステムの充実度
次に考えられるのがエコシステムの充実度です。
VSCodeやJetBrains IntelliJ IDEAといったTypeScriptをサポートするIDEがあり、数多くのフレームワークやパッケージもTypeScriptに対応しています。
開発を取り巻く環境が整備されていなければ、ツールやパッケージの再開発を余儀なくされます。
TypeScriptはエコシステムが充実しているため、再開発・再発明は比較的に不要です。
TypeScriptによる就職採用率
最後に考えられるのが採用や就職の面におけるTypeScriptの優位性です。
開発者が多いということは企業側にとってエンジニアが探しやすく、求職者にとってプロジェクトを探しやすいということです。
TypeScriptは調査結果から高い満足度が非常に高いです。
そのため、TypeScriptを採用しているプロジェクトは、エンジニアから人気が出やすくモチベーションの高いエンジニアが集まりやすいです。
TypeScriptを導入・採用するメリット
開発領域としてフロントエンド・バックエンド両方でTypeScriptを導入・採用すると、多くのメリットが享受できます。
つまり、開発プロジェクト内で使用する言語が1つであることはメリットになります。
開発言語が1つであれば、以下の利点が生まれます。
- モジュール共有
- 開発プロジェクト内のノウハウ共有
- 学習コストパフォーマンス最大化
想像が容易いかと思いますが、開発領域を超えてTypeScriptで統一できれば、開発に利用するモジュールあるいはノウハウが領域間で共有できます。
また、言語2つ以上になれば学習コストが大幅に膨らみます。
そのため、統一言語としてTypeScriptを利用できれば、学習コストが減りパフォーマンスを最大化できます。
コメント