【ITニュース解説】Benchmarking TypeScript, Golang, and Python FastAPI: Who’s the Fastest at Fetching Data from…
2025年09月09日に「Medium」が公開したITニュース「Benchmarking TypeScript, Golang, and Python FastAPI: Who’s the Fastest at Fetching Data from…」について初心者にもわかりやすく解説しています。
ITニュース概要
Web開発で人気のTypeScript、Golang、Python FastAPIを対象に、データベースからのデータ取得速度を比較検証。各技術のパフォーマンスをベンチマークテストで測定し、最も高速な選択肢を明らかにしている。
ITニュース解説
Webアプリケーション開発の世界では、システムのパフォーマンス、つまり処理速度が非常に重要である。特に、何千人ものユーザーが同時に利用するようなサービスでは、リクエストに対して素早く応答できるかどうかが、ユーザー体験の質を直接左右する。この性能を比較するため、近年人気のある3つの技術、TypeScript、Go、そしてPythonのFastAPIフレームワークを使い、どれが最も高速に動作するのかを検証したベンチマークテストの結果が公開された。
このテストで比較されたのは、まずGoogleが開発したプログラミング言語であるGo(Golang)だ。Goは、プログラムの実行速度が速く、複数の処理を同時に効率よくこなす「並行処理」が得意なことで知られている。シンプルな構文で、大規模なシステムでも安定して動作するように設計されている。次に比較されたのは、JavaScriptに静的型付けという厳密なルールを追加したTypeScriptである。今回は、従来の実行環境であるNode.jsよりも高速性を追求して開発された新しい実行環境「Bun」の上で動作させた。Web開発で広く使われているJavaScript/TypeScriptのエコシステムを活かしつつ、高いパフォーマンスを目指す構成だ。最後に、AI開発やデータサイエンスの分野で絶大な人気を誇るPythonである。Webアプリケーションを高速に開発するためのフレームワーク「FastAPI」と組み合わせてテストされた。FastAPIは、その名の通りPython製のフレームワークの中ではトップクラスの速度を誇る。
実験は2つのシナリオで行われた。1つ目は、サーバーにリクエストを送ると「Hello, World!」という単純な文字列を返すだけの処理だ。これは、プログラミング言語やフレームワーク自体の基本的な処理性能を測るための、最もシンプルなテストである。2つ目は、より実際のアプリケーションに近いシナリオで、データベース(PostgreSQL)に接続し、そこからデータを取得して返すという処理である。多くのWebサービスで行われるこの処理の速度は、システム全体の性能を評価する上で重要な指標となる。性能は主にRPS(Requests Per Second)、つまり1秒あたりに処理できるリクエストの数で測定された。
実験の結果、2つのシナリオ両方で、Goが他の2つを圧倒するパフォーマンスを示した。単純な「Hello, World!」を返すテストでは、Goは毎秒膨大な数のリクエストを処理し、2位のTypeScript (Bun) に大差をつけた。Python (FastAPI) は、この2つに比べて処理できたリクエスト数が最も少なかった。より実践的なデータベースからのデータ取得テストでも、この序列は変わらなかった。Goが最も多くのリクエストを処理し、次いでTypeScript (Bun)、そしてPython (FastAPI)という結果になった。データベースへのアクセスという共通の処理が加わっても、言語と実行環境の根源的な性能差が結果に明確に表れた形だ。
この結果の背景には、各言語の仕組みの違いがある。Goは「コンパイル言語」であり、プログラムを実行する前に、コード全体がコンピューターが直接理解できる機械語に一括で翻訳される。この事前翻訳により、実行時の速度が非常に速くなる。また、言語の設計レベルで効率的な並行処理がサポートされている点も、高いRPSを達成した大きな要因である。一方、TypeScript (Bun) も非常に優れた結果を出した。これは、Bunという実行環境がパフォーマンスを徹底的に追求して作られているためだ。従来のNode.js環境と比較して大幅な高速化を実現しており、JavaScript/TypeScriptを使いながら高い性能を求める場合の有力な選択肢であることを示している。Pythonは「インタプリタ言語」に分類され、プログラムを1行ずつ翻訳しながら実行していく。この仕組みは、開発のしやすさや手軽さにつながる反面、実行速度の面ではコンパイル言語に劣る傾向がある。FastAPIはPythonの性能を最大限に引き出す工夫がされているものの、言語自体の特性が今回の結果に影響したと考えられる。
このベンチマークから、純粋な処理速度を最優先するならGoが最適な選択肢であることがわかる。しかし、実際のシステム開発では、速度だけが全てではない。プロジェクトの目的や要件によって、最適な技術は変わってくる。例えば、最高のパフォーマンスが求められるマイクロサービスや、膨大なトラフィックを捌く必要があるAPIサーバーを構築する場合には、Goが有力な候補となるだろう。一方で、すでにTypeScriptでWebサイトのフロントエンドを開発しており、バックエンドも同じ言語で統一して開発効率を高めたい、かつ高いパフォーマンスも維持したいという場合には、Bunの上でTypeScriptを動かすのが良い選択肢だ。そして、開発速度が重視される場合や、機械学習モデルを組み込んだアプリケーションを開発するなど、Pythonが持つ豊富なライブラリやエコシステムを最大限に活用したい場合には、FastAPIが非常に強力なツールとなる。システムエンジニアを目指す上では、このように各技術の性能差を理解すると同時に、それぞれの長所や短所、そしてどのような場面でその技術が輝くのかを総合的に判断する能力が求められる。