はじめに こんにちは、皆さん!素敵なエンジニアライフをお過ごしでしょうか?
私は最近、GitHub CopilotとCursorに囲まれて幸せに過ごしています。プログラミングと言えば、少し前まではインターネット上で隠れている解決策を探し出す作業でしたが、今ではAIの進化によって、コードがより快適に書けるようになりました。素晴らしいことです。
ですが、AIで幸せになりすぎた結果、そのありがたみを忘れてしまった存在があるのではないでしょうか? それは… TypeScriptです!
この記事では、Webフロントの救世主(メシア)であるTypeScriptの歴史を振り返り、その解決した問題の大きさを学びましょう。
TypeScriptとは何か TypeScriptは、Microsoftによって開発されたJavaScriptの上位互換言語(スーパーセット)です。上位互換言語ということは、TypeScriptはJavaScriptに対する互換性を持ち、すべてのJavaScript機能を使用できます。
この関係は、SassとCSSやC++とC言語に似ています。
TypeScriptが上位互換言語として提供する特徴的な機能は、静的型付けです。名前の通り、TypeScriptはJavaScriptに静的型付けを導入することを目指しています。これにより、変数、引数、返り値に型を指定することで、JavaScriptの問題であった「実行するまでコードの安全性が保証されない」という問題を解決しました。
なぜTypeScriptが必要だったのか TypeScriptを導入することで、JavaScriptに型という安全性がもたらされますが、それと同時に、JavaScriptの柔軟性が制限されることになります。実際にTypeScriptを書いてみると、今まで許されていた柔軟な書き方が許されなくなり、最初はストレスを感じることもあります(慣れてきても、初めて使うライブラリの型定義を理解するまではストレスが続きます)。
しかし、JavaScriptの良さを失うことになっても、エンジニアたちはWebフロントの世界で型による安定を求めました。それはなぜか?その流れを歴史から学んでみましょう。
TypeScriptの歴史
JavaScript誕生 JavaScriptは1990年代にNetscapeによって、クライアントサイドで動作するプログラミング言語として開発されました。当時、JavaScriptはHTMLの補助的な役割を果たしていたため、あまり注目されていませんでした。
Flashの黄金時代 2000年代初頭、JavaアプレットやAdobe Flashを使用したWebアプリケーションが登場しました。この流れの中で、JavaScriptにも注目が集まり始めました。
失われた10年 JavaScriptに注目が集まり、大規模な開発が求められ始めました。そこで、ECMAScript 4(ES4)という仕様が議論されましたが、Microsoftの反対もあり、ES4は中止となりました。
Google Mapの登場 Google Mapが登場し、JavaScriptを使った大規模なアプリケーションが作れることが証明されました。これにより、JavaScriptの可能性が広がりました。
AltJSの登場 JavaScriptの限界を感じたエンジニアたちは、JavaScriptにコンパイルできる言語を作ろうと考え、CoffeeScriptなどのAltJS(Alternative JavaScript)が登場しました。
ECMAScriptの進化 ECMAScript 2015(ES6)では、JavaScriptにモジュール構文やクラス構文が導入され、JavaScriptの進化が加速しました。
TypeScriptの誕生 2012年、TypeScriptが発表されました。TypeScriptはJavaScriptのスーパーセットであり、型付けやモジュール化といった機能を提供することで、大規模開発を支援しました。TypeScriptは既存のJavaScript資産を活用できる点も大きな魅力です。
まとめ TypeScriptは、JavaScriptのスケーラビリティの問題に対処するために生まれました。その優位性は、JavaScriptの進化により薄れつつありますが、型付け機能による開発・運用上の優位性は依然として大きいです。
結論 TypeScriptは型を提供することで、コードがドキュメントとなり、コード補完や型チェックといった大規模開発でのメリットを提供します。それによって、JavaScriptでは生じるコードの難読化や運用不能な状況を解決しています。
もっと探索する: https://news.skysolution.com/ecommerce/best-b2b-ecommerce-platform/