こんにちは!GAWSメンバーの石田です。
毎日世界が進歩していて、正直ついていくのがやっとなので、キャッチアップしていきます!
Lambdaを書くとき、特に深く考えずに「まあPythonでいいか」って選んでませんか?私もその一人でした。データ処理といえばPython、サーバーレスといえばPython...そんな固定観念に囚われていた私に、TypeScript 7の衝撃的なアップデートが雷のように落ちました。
結論を先に言います:TypeScript 7は、あなたの開発ライフを変える可能性があります。特にコスト意識の高い現代において、この性能向上は無視できません。
2025年3月、MicrosoftはTypeScriptコンパイラーをJavaScriptからGoに完全移植すると発表しました。これにより、10倍のパフォーマンス向上を実現しています。
多くの開発者が疑問に思うポイントですが、Microsoftは構造的類似性を重視してGoを選択しました。GoのプログラミングスタイルがTypeScriptの既存コードベースに最も近く、移植が容易だったからです。つまり、完全な書き直しではなく、効率的な移植が可能だったということ。
ここで少し技術的な話をしますが、心配しないでください。普段TypeScriptを書いている方なら馴染みのある話です。
tsc(TypeScript Compiler)は、いつものコマンド`npx tsc`で実行しているTypeScriptコンパイラーのことです。そしてtsgoが新しいGo版コンパイラーの名前。
実測値では、従来のtscが0.28秒でコンパイルしたものを、tsgoはなんと0.026秒で完了。つまり10.8倍の高速化です!
さらに驚くべきは型チェック時間。VSCodeでエラーが表示されるまでの時間が、tscの0.10秒に対してtsgoは0.003秒。約30倍の高速化です。
開発でも「あー、またコンパイル待ちかぁ」って経験ありますよね?その待ち時間がほぼゼロになると想像してみてください。
さて、ここからが本題です。なぜTypeScript 7がLambda開発者にとって重要なのか?
重要なポイント:TypeScript 7で高速化されるのはコンパイル時間であって、Lambda上での実行時間ではありません。最終的にはJavaScriptにコンパイルされて同じNode.jsランタイムで実行されるためです。
では、なぜLambdaの文脈で重要なのか?それは開発・運用コストの大幅削減にあります。
最新のベンチマーク結果を見てみましょう:
Lambdaランタイム実行速度比較(言語による違い)
言語
|
1GBのJSONログ処理時間
|
冷起動時間
|
備考
|
Go
|
~2秒
|
~30ms
|
コンパイル済みバイナリ
|
Rust
|
~2秒
|
~50ms
|
コンパイル済みバイナリ
|
TypeScript/Node.js
|
~4-6秒
|
~140ms
|
V8エンジンのJIT最適化
|
Python
|
~8-12秒
|
~260ms
|
インタープリター実行
|
*TypeScript 7でもLambda実行時間は従来と同じです
中規模チーム(10個のLambda関数、1日20回デプロイ)の場合:
年間削減効果:$540
開発者の時給を$50として計算:
作業内容
|
従来
|
TypeScript 7
|
1日の削減時間
|
年間削減コスト
|
ローカルビルド(10回/日)
|
5分
|
30秒
|
4.5分
|
$975
|
型チェック待ち(50回/日)
|
2.5分
|
5秒
|
2分
|
$433
|
CI/CD待ち(3回/日)
|
15分
|
1.5分
|
13.5分
|
$2,925
|
合計削減
|
-
|
-
|
20分/日
|
$4,333
|
1人の開発者あたりの年間削減効果
項目
|
改善前
|
改善後
|
削減効果
|
ローカルビルド
|
30秒
|
3秒
|
⚡ 90%削減
|
型チェック
|
3秒
|
0.1秒
|
🔍 97%削減
|
CI/CDビルド
|
5分
|
30秒
|
💰 90%削減
|
デプロイ頻度
|
制限あり
|
気軽にデプロイ
|
🚀 アジリティ向上
|
重要:Lambda実行コストは変わりません(同じJavaScriptランタイム)
メモリ使用量も劇的に改善されています。従来のTypeScriptコンパイラー(tsc)が68,645Kのメモリを使用していたのに対し、新しいGo版(tsgo)は23,733K。約2.9倍の効率化です。
開発でも、メモリの少ないマシンで作業していると「VSCodeが重い...」なんて経験ありますよね?この改善で、より快適な開発環境が期待できます。
言語
|
実行速度
|
冷起動
|
開発効率
|
エコシステム
|
Lambda適性
|
Go🥇
|
⭐⭐⭐⭐⭐
|
⭐⭐⭐⭐⭐
|
⭐⭐⭐☆☆
|
⭐⭐⭐☆☆
|
高性能重視
|
TypeScript 🥈
|
⭐⭐⭐⭐☆
|
⭐⭐⭐☆☆
|
⭐⭐⭐⭐⭐
|
⭐⭐⭐⭐⭐
|
開発効率重視
|
Rust 🥉
|
⭐⭐⭐⭐⭐
|
⭐⭐⭐⭐☆
|
⭐⭐☆☆☆
|
⭐⭐☆☆☆
|
上級者向け
|
Python
|
⭐⭐☆☆☆
|
⭐⭐☆☆☆
|
⭐⭐⭐⭐☆
|
⭐⭐⭐⭐⭐
|
安定の選択肢
|
TypeScript 7は実行速度は変わらず、開発効率が大幅向上
言語
|
1GB JSONログ処理
|
Lambda実行コスト
|
特徴
|
Go
|
~2秒
|
最安
|
コンパイル済み、最高性能
|
Rust
|
~2秒
|
最安
|
コンパイル済み、安全性重視
|
TypeScript/Node.js
|
~4-6秒
|
中程度
|
TypeScript 7でも同じ
|
Python
|
~8-12秒
|
高コスト
|
豊富なライブラリ
|
TypeScript7の完全版は2025年末にリリース予定ですが、既にプレビュー版でテストが可能です。
試してみたい方は
npm install @typescript/native-preview
npx tsgo -v # バージョン確認
正直言って、「またMicrosoftがすごいことやったな」というのが率直な感想です。TypeScriptを選択することで、Web開発からサーバーレスまで一貫した技術スタックが組めるのは、開発者としてとても魅力的。
特に印象的なのは、Goの並行モデルを活用することで、型チェックがほぼ線形にスケールするようになった点です。これまでの「大きなプロジェクトだとTypeScriptコンパイルが遅い」という課題が根本的に解決されそう。
確かにGoは速い。でも...
項目
|
TypeScript
|
Go
|
学習コスト
|
既存JS知識活用
|
ゼロから習得
|
開発速度
|
爆速プロトタイピング
|
型定義で時間かかる
|
エコシステム
|
npm 200万パッケージ
|
限定的
|
人材確保
|
JS開発者なら即戦力
|
Go専門家が必要
|
フロントエンド
|
同じ言語で統一
|
別言語が必要
|
JSON操作
|
ネイティブサポート
|
構造体定義必須
|
結論:パフォーマンスで多少劣っても、開発効率とチーム生産性でTypeScriptが圧勝
Lambda関数を書くとき、無思考でPythonを選ぶ時代は終わりかもしれません。TypeScript 7という新たな選択肢が登場した今、言語選択はより戦略的になるべきです。
技術の進歩は止まりません。私たちも立ち止まらず、新しい可能性を探求し続けましょう。TypeScript 7、本当に楽しみです!
次回は、実際にTypeScript、Go、Rust、PythonでLambda関数を作って、比較検証してみたいと思います。TypeScript 7のプレビュー版も含めて、リアルな数値をお届け予定です!
*この記事は2025年6月時点の情報に基づいています。実際の性能は使用ケースによって異なる場合があります。本格導入前には必ず検証を行ってください。*
【参考】
【TypeScript7】TypeScriptが10倍高速になるぞー
https://qiita.com/rana_kualu/items/8fd975cbada30cb5ed45
A 10x Faster TypeScript
https://devblogs.microsoft.com/typescript/typescript-native-port/
処理速度参考
https://blog.scanner.dev/serverless-speed-rust-vs-go-java-python-in-aws-lambda-functions/