6 ポイント 投稿者 GN⁺ 2024-05-02 | 1件のコメント | WhatsAppで共有
  • TypeSpecは、API中心開発のための新しい言語であり、API開発者、設計者、マネージャーの要件を満たすために設計されています
    • 一貫して高品質なAPIと関連する体験を提供することが、ますます複雑化し重要性が高まる環境の中で開発されました
    • TypeSpecは単なる言語以上のもので、抽象化を可能にし、コード再利用を促進し、迅速な開発のために最新のツールを活用するプラットフォームです

TypeSpecの主な特徴

  • 相互運用性
    • TypeSpecは、単なるAPI記述言語ではなく、APIを定義しながら多様なプロトコル、クライアント、サーバー、ドキュメントなどを同時に出力できる高水準の定義言語です
    • 業界標準のAPI定義言語と相互運用が可能で、さまざまな選択肢間のギャップを埋めます
  • 生産性
    • TypeSpecはデータとAPI定義プロセスを快適かつ生産的にする優れた開発者体験を提供します
    • 言語は簡潔で、最小限の入力で複雑なデータとAPI形状を定義できます
  • APIパターン
    • TypeSpecは、共通のデータ型、APIパターンおよびガイドラインをチームやエコシステム全体で共有できる高水準の再利用可能なコンポーネントとしてカプセル化し、API品質を向上させます
  • 親しみやすさ
    • TypeSpecはTypeScriptとC#からインスピレーションを得ているため、学びやすく多くの開発者にとって馴染みやすいです
  • 拡張性
    • TypeSpecはユーザー定義デコレーター語彙と型テンプレートで拡張できるため、ビジネスまたはアプリケーションロジックのドメインでAPIをモデリングできます
  • エコシステム
    • TypeSpecを使用すると、共通型、言語拡張、リンターおよびエミッターをパッケージ化して、組織内部またはエコシステム全体でNPMに配布できます

コミュニティと協業

  • Microsoftで使用中
    • MicrosoftではTypeSpecを使ってAPI開発プロセスを革新しています
    • 多くのAzureサービスでTypeSpecが採用されており、数は毎日増えています
    • Microsoft GraphチームはTypeSpecの可能性を活用して生産性を高め、カスタム設定を簡素化しています
  • 参加の呼びかけ
    • TypeSpecは単なる言語以上であり、コミュニティです
    • すべてのバックグラウンドを持つ開発者が公開ベータ版に参加し、TypeSpecの力を直接体験できるよう招待されています

GN⁺の意見

  • TypeSpecは抽象化レベルが高いAPI定義言語として、API開発手法を革新的に改善できると見られます
    • 「API First」アプローチをサポートして、開発効率と最終製品の品質向上に役立つと考えられます
    • 多様なプロトコルサポート、拡張性、強力なエコシステムなどにより、幅広い開発シナリオに適用できると期待されます
  • ただし、新しい言語の導入には常に学習コストが発生するため、チーム内導入時には十分な教育が先行する必要があります
    • TypeSpecはTypeScriptとC#の構文を借用して、学習曲線を緩やかにしようとした点が評価できます
  • 既存の同様の役割を果たすAPI定義言語(Swagger、RAML、API Blueprintなど)との差別化ポイントをより明確にする必要がありそうです
    • 既存言語の限界をどのように克服するか、移行は容易かどうか、など
  • Microsoft内部で先に使って改善していくドッグフーディング方式は信頼感を与えます
    • ただし、まだオープンソースプロジェクトとして公開されてから間もないため、今後数年間の継続的な進化とコミュニティサポートが鍵になると見られます
  • API設計の標準化と再利用性向上という方向性は正しいですが、あまりにも多くのことを一度に解決しようとしている印象もあります
    • 優先順位をつけて段階的に機能を強化していくことが望ましいです

1件のコメント

 
GN⁺ 2024-05-02
Hacker News のコメント
  • TypeScript をすでに API の型付けに使用している場合、TypeScript から直接 JSON スキーマを生成する ts-json-schema-generator が代替案になり得る
  • OpenAPI の YAML に比べれば、どんなものでも良く見えるだろうが、それでも OpenAPI は最も進んだものの一つと見なされている
  • TypeScript がスキーマ言語としてのブレークスルーになることを期待していたが、TypeSpec は JavaScript を排除し、JSON 向けの型付けだけを残したように見える
  • TypeSpec を新しい API で使う際、GraphQL のように API を記述してデザインファーストで開発するツールを探したが、OpenAPI エディターはあまりにも扱いにくく、API 内のデータ関係を不明瞭にする一方、TypeSpec は大いに役立った
  • Microsoft が作っているので、GraphQL への彼らの回答になっていると推測される。内部で使われるのであれば、オープンソース・コンソーシアムが作るものよりツールの質が良い可能性がある
  • WSDL の TypeScript バージョンのようだが、WSDL より長く続くかは分からない
  • 主要な疑問点であるサポートされる出力言語が見つからず、OpenAPI を出力して質の低いジェネレーターを使う以外に方法がないように思える
  • TypeSpec ファイルを TypeScript にインポートして自動的に型を取得できると良いが、コード生成は面倒でエラーが起きやすい
  • Smithy の競合/代替に見えるので、もし TypeSpec チームの誰かがここにいるなら、どのような違いがあるのか意見を聞いてみたい
  • YAML を希望するツールチェーンに変換できるかどうか気になる
  • 25 年前の CORBA IDL が提供していたような、スキーマと複数言語向けのスタブ生成を提供する高レベルな IDL があればうれしい