Big projects are ditching TypeScript… why?

Fireship
7 Sept 202303:38

Summary

TLDRこのビデオスクリプトでは、TypeScriptの採用状況とその今後の展望について議論されています。最初はJavaScriptの開発者であったKent C. Doddsも最終的にTypeScriptを受け入れたことが示されていますが、近年ではSvelteやDrizzle、Turboなどの大規模オープンソースプロジェクトがTypeScriptから撤退し、バニラJavaScriptに戻る動きがあることが指摘されています。その理由としては、型ジムナスティクスによるコード汚染や、コンパイルステップの必要性などが挙げられています。一方で、JSDocによる型推論の活用や、将来的にJavaScript自体に型アノテーションが組み込まれることで、TypeScriptの役割が変化する可能性も示唆されています。

Takeaways

  • 😮 2023年、TypeScriptは圧倒的に普及していたが、突如大規模なオープンソースプロジェクトがTypeScriptから離れ始めた。
  • 🤔 svelte、drizzle、turboなどのプロジェクトがTypeScriptを捨て、プレーンなJavaScriptに戻った理由は、TypeScriptが必要以上にコードを複雑化させるためである。
  • 😥 TypeScriptを捨てることで、コンパイルステップが不要になり開発の生産性が上がるという利点がある。
  • 🚀 svelte 5ではJSDocを利用し、コメントによる型の定義とインテリセンスを実現している。これにより、TypeScriptの利点を享受しつつ、コンパイルは不要となる。
  • 🤷‍♂️ アプリケーション開発ではTypeScriptを離れる理由がないが、ライブラリ開発ではTypeScriptを避ける動きがある。
  • 🔮 究極の解決策は、JavaScriptにネイティブに型アノテーションを導入することで、TypeScriptをほぼ無用にすることかもしれない。
  • ⏳ TypeScriptの行く末は不透明だが、開発者はオープンマインドでなければならず、時代の変化に適応することが重要である。
  • 🌐 TypeScriptの是非をめぐる聖戦は長年続いており、まだ終わる気配がない。
  • 💡 開発者は頑なに考えを変えず、新しいツールを受け入れることができれば、世界を変えられるかもしれない。
  • 🤖 結局のところ、開発者は常に生産性の向上と、バグのない品質の高いコードを目指すべきである。

Q & A

  • TypeScriptはいつ誕生しましたか?

    -TypeScriptは2012年にマイクロソフトによって発表されました。最初はあまり注目を浴びませんでしたが、後にAngular 2フレームワークで採用されたことで人気が高まりました。

  • なぜ一部の大規模なオープンソースプロジェクトがTypeScriptを放棄しようとしているのでしょうか?

    -メインの理由は、TypeScriptが必要とする型の指定に関する煩雑さにあります。ライブラリ開発の際に、型の指定のための「型の体操」が必要になり、コードが汚くなる傾向があるためです。また、コンパイルステップが生産性を落とすという指摘もあります。

  • SvelteやDrizzle、Turboはどのような代替手段を採用していますか?

    -SvelteはJSDocという標準のコメント形式を使って型とドキュメントを宣言し、Vite上でIntelliSenseを実現しています。一方でTurboはTypeScriptから完全に撤退し、プレーンなJavaScriptに移行しています。

  • ECMAScriptにプロポーザルされている新機能は、TypeScriptの存在意義に影響を与えるでしょうか?

    -はい、現在Stage 1にあるECMAScriptの新しいプロポーザルは、JavaScriptに型アノテーションを導入しようとしています。この機能が実装されれば、TypeScriptの役割が大幅に減少する可能性があります。

  • アプリケーション開発においてTypeScriptを使い続けるメリットは何でしょうか?

    -フレームワークやツールがTypeScriptをシームレスに統合しているため、JSDocを代替手段として使うよりも生産性が高くなります。TypeScriptを使い続けることで、早期のバグ検出や自動補完によるコーディング効率の向上が期待できます。

  • TypeScriptとJSDocの最も大きな違いは何でしょうか?

    -最も大きな違いは、TypeScriptがコンパイル時に型チェックを行うのに対し、JSDocはエディタ上でのみインテリセンスを提供する点です。つまり、JSDocにはコンパイル時の型安全性がありません。

  • TypeScriptの「聖戦」はいつ終わると思われますか?

    -スクリプトからは、JavaScriptにネイティブな型アノテーションが導入された時点で、TypeScriptの存在意義が大きく揺らぐことが示唆されています。しかし、その時期は不明確です。

  • 型指定を避けることで、JavaScriptはフレキシビリティが増すと考えられますか?

    -型指定を避けることで、JavaScriptのダイナミックな性質が生かせるというメリットはあります。しかし、大規模で複雑なプロジェクトでは、型の安全性を確保することが非常に重要になります。用途に応じて適切な選択が必要です。

  • ライブラリ開発とアプリケーション開発では、TypeScriptの採用基準が異なる理由は何でしょうか?

    -ライブラリ開発では、型指定のオーバーヘッドが生産性を落とす可能性があります。一方アプリケーション開発では、フレームワークやツールがTypeScriptをシームレスに統合しているため、生産性への影響が小さくなります。

  • この動画の結論として、TypeScriptの未来について何が言えますか?

    -動画の結論としては、ECMAScriptにネイティブの型アノテーションが導入されれば、TypeScriptの存在意義は大きく揺らぐ可能性があることが示唆されています。しかし、その実現時期は不明確であり、当面の間はユースケースに応じてTypeScriptの採用を判断することが賢明だと言えます。

Outlines

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Mindmap

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Keywords

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Highlights

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Transcripts

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now
Rate This

5.0 / 5 (0 votes)

Related Tags
プログラミング言語オープンソース開発者生産性将来展望論争設計テクノロジートレンドパフォーマンス
Do you need a summary in English?