昨今、フロントエンド開発にてTypeScriptの採用率が高まっています。
- TypeScriptで何が作れるのか?
- TypeScriptを採用した企業の活用事例
本記事では、TypeScriptによって何が作れるのか、採用した企業の活用事例を解説します。
TypeScriptとは
TypeScriptは、MicroSoftによって開発されたプログラミング言語です。
TypeScriptの応用範囲は幅広く、JavaScriptを用いる新規プロジェクトではTypeScriptが使われるというのが当たり前の光景になりつつあります。
TypeScriptで作れるもの
基本的に、以下の条件下で上記のTypeScript(フレームワーク含む)が効率的に利用されています。
- SPA開発
- 大規模なWebアプリ開発
- スマホアプリ開発(クロスプラットフォーム)
それぞれのフレームワークにも特徴はありますが、開発現場で有効になるFWを活用するのがおすすめです。
TypeScriptが何ができるか詳細に理解したい人は、「TypeScriptは何ができる?特徴・メリット・活用事例などを解説!」を一読ください。
TypeScriptができないこと・不得意なこと
現在、プログラミング言語の中でもTypeScriptはトップクラスに人気がありトレンドになっていますが、不得意な開発領域が存在します。
以下は、TypeScirptの不得意な開発領域になります。
- AI開発
- 高速処理が必要な開発
- 組み込み系開発
- OS開発
それぞれの開発領域について解説します。
AI開発
TypeScriptはAI開発に利用するには適していません。
数学系や分析系のライブラリが豊富なプログラミング言語Pythonで実装されることが多いです。
AI開発に適していない理由として、大量の数値計算・統計など不得意だからです。
やはり、データベースとの連携に適したサーバーサイド言語GoやPythonがAI開発に利用される現状になります。
高速処理が必要な開発
Webブラウザサイトにて高速処理が必要な場合もTypeScriptの実装は適していません。
JavaScriptがベースであるTypeScirptは、ブラウザサイド(フロントエンド)の言語であるためブラウザ実行環境に依存します。
そのため、高速処理が必要な開発はサーバーサイド言語での実装がよいです。
組み込み系開発
さらに開発領域を拡大すると、Web/オープン系のアプリケーション開発ではなく、ハードウェア/組み込み制御系アプリケーション開発に適していません。
組み込み系アプリケーションは、C言語などアセンブラに近いプログラミング言語の領域になってきます。
そもそも、TypeScriptが組み込み系に利用できない理由は、実行環境としてWebブラウザが必要になるからです。
OS開発
OS開発も組み込み系開発と同様に、TypeScriptによる開発は適していません。
こちらもやはり、TypeScriptは実行ブラウザ環境が必要になるからです。
またプログラミング言語の仕様の観点から、TypeScriptはメモリを管理する機能が備わっていません。
OSやミドルウェア・ハードウェアに関しては、メモリを意図的に管理する必要があります。
そのため、TypeScriptはプログラミング言語の仕様からOS開発に必要な要件を満たしていないです。
TypeScriptの活用事例
TypeScriptは、Googleの標準開発言語として採用されているため、Google関連のサービスに活用されています。
海外企業では採用率が高まっており、以下の企業はすでに導入されています。
- MicroSoft
- BMW
- VMWare
もちろん、上記の企業は一部に過ぎず、普及率はかなり高いようです。
また、日本企業でも採用されており、以下の一部の企業でも利用されています。
- ビズリーチ
- ベネッセコーポレーション
- SEROKUフリーランス
- Postfor
こちらもWebサイトだけにかかわらず、ビジネスシーンで活用されるアプリケーションにも拡大しています。
TypeScriptによる代表的なサービス
TypeScriptは、日常的に利用されるアプリやビジネスシーンで使われるアプリなど、様々なケースで採用されています。
活用事例として、以下のサービスがあります。
- Slackの活用事例
- LINE NEWSの活用事例
それぞれのサービスにTypeScriptが活用されています。
Slackの活用事例
Slackでは、JavaScriptからTypeScriptへ移行したようです。
TypeScriptを採用した理由としては、大規模なJavaScriptのコードベースを管理しやすくするためです。
また、TypeScriptのメリットとして、JavaScriptのスーパーセット(上位互換)であることから、コードを大幅修正せず使用できる理由もあるようです。
実際に、「TypeScirptの最も基本的な使用法で多くのメリットを享受できた。」とSlackのデスクトップエンジニアであるFelix Riseberg氏が語っています。
開発現場では、TypeScriptのコンパイラオプションを徐々に有効化する方針で、移行作業は難航したようですが、コンパイラの役割によってバグが見つかり大幅な改善が見られたようです。
このように、JavaScriptとの互換性が非常に高いこと、静的型付け言語であることが効果を発揮した結果になっています。
LINE NEWSの活用事例
特に日本では、スマートフォンで連絡を取る代表的なサービスとしてLINEが最も普及率が高いです。
また、LINEにはニュース配信サービスが組み込まれており、TypeScriptが採用されています。
実際に、サービス開発時のブログ内容では、TypeScirptについて解説されています。
TypeScriptを採用する背景として、LINE NEWSは利用者数から必然的にアクセス数が膨大になります。
そのため、最適化されたJavaScriptによる通信を実現しなければサーバー・クライアントともに負担が増大します。
そこでTypeScriptを採用することで、最適化したJavaScriptのコードベース管理を実施によって負荷の軽減を実現しています。
TypeScriptの開発領域
TypeScriptを習得すると、様々な開発領域で利用することができます。
なぜなら、TypeScriptはJavaScriptへコンパイルして利用する言語のためです。
そのため、JavaScriptで作れるものはTypeScriptに置き換えて考えることもできます。
以下は、TypeScriptを学習することでどんなソフトウェアを作れるか、開発領域を記載します。
- フロントエンド開発
- バックエンド開発
- デスクトップアプリ開発
- CLIアプリ開発
- サーバーレス(FaaS)
- インフラ構成管理(IaC)
- Google Apps Script(GAS)
- ブラウザ拡張ツール
- 機械学習系ソフトウェア
- 組み込み系ソフトウェア
- WebAssembly
特に、最もTypeScriptを活用されているフロントエンドとバックエンドについて詳細に解説します。
フロントエンド開発
TypeScriptが最も活用される開発領域は、フロントエンド開発になります。
ブラウザアプリでは、JavaScriptが圧倒的に地位を確立しているため、必然的にTypeScriptも利用される形になります。
TypeScriptは、JavaScriptの上位互換になる言語であるため、フロントエンド開発で言語特徴を遺憾なく発揮します。
バックエンド開発
次にTypeScriptが利用される開発領域は、バックエンド開発になります。
技術的観点で言えば、Node.jsといったサーバーサイドJavaScriptによって開発を可能にしています。
現在は、バックエンド言語としてGo、Java、Python、Ruby、PHPなど多数競合が存在しますが、TypeScriptも一つのサーバーサイド言語として選択肢になります。
TypeScriptを導入・採用するメリット
開発領域としてフロントエンド・バックエンド両方でTypeScriptを導入・採用すると、多くのメリットが享受できます。
つまり、開発プロジェクト内で使用する言語が1つであることはメリットになります。
開発言語が1つであれば、以下の利点が生まれます。
- モジュール共有
- 開発プロジェクト内のノウハウ共有
- 学習コストパフォーマンス最大化
想像が容易いかと思いますが、開発領域を超えてTypeScriptで統一できれば、開発に利用するモジュールあるいはノウハウが領域間で共有できます。
また、言語2つ以上になれば学習コストが大幅に膨らみます。
そのため、統一言語としてTypeScriptを利用できれば、学習コストが減りパフォーマンスを最大化できます。
TypeScriptの弱点とは
TypeScriptを利用する上で、TypeScriptで解決できない場面を把握しておくことは重要です。
開発時にTypeScriptの弱点を理解することで、改善策が立てやすいからです。
TypeScriptの言語特性からアプローチできるかどうかを知っておきましょう。
- 実行時の高速化・省メモリ化に影響しない
- TypeScriptランタイムはない
- TypeScriptコンパイラは最適化しない
上記の各弱点をさらに詳しく理解したい人は、「【TypeScript】言語の難易度やJavaScriptと比較して徹底解説!」を一読ください。
コメント