Rust、Python、TypeScript: 新しいプログラミング三強(Trifecta)
(smallcultfollowing.com)- Rust、Python、TypeScript が今後、ソフトウェア開発の中心言語として台頭すると見られている
- AIコーディングツールの普及 により、開発者の言語への忠誠度は弱まり、実用的でエコシステムの強い言語が選ばれるようになる
- アイデア中心プログラミング(idea-oriented programming) というパラダイムが登場し、開発者は設計とレビューに集中し、実装はAIに任せる構造へと変化している
- この3言語は 高度な型システム と 強力なパッケージマネージャのエコシステム を兼ね備えており、AI活用や協業、エラー防止に有利
- エラーメッセージの品質、エコシステム、プラットフォーム連携性 なども、ますます重要な基準になっている
Rust、Python、TypeScriptが注目される理由
- Rust はシステムソフトウェアや高性能が求められる領域で、型安全性とメモリ効率に優れている
- Python は実験・プロトタイピング・数学/科学ライブラリの活用に最適で、アイデアを素早く検証できる
- TypeScript はWeb、ブラウザ、さまざまなプラットフォームにそのまま適用でき、強力な型システムと npm エコシステムによって拡張性を確保できる
AIが変える開発パラダイム: アイデア中心プログラミング
- AIコーディングツール(Large Language Model)の普及 により、プログラミングは「アイデアの構想→AIが実装→人が設計/レビュー」という形へ変化しつつある
- Vibe coding は即興的で曖昧な指示に近いが、Idea-oriented programming は設計や構造、持続可能な原則に集中する
- 開発者は 主要な設計/方向性の提示 を担い、AIは 反復的/実装的な作業 を担当する。これはアーキテクトと見習いの関係にたとえられる
言語選択基準の変化
- 以前は自分がよく知る言語(例: Rust)で素早く作業していたが、AIと一緒に働くときは 必要なライブラリ、性能、プラットフォーム連携性 がより重要になる
- プロジェクトに応じて Python(機械学習)、TypeScript(Web・VSCode Extension)、Rust(基本選択) など、状況ごとの最適な言語を選ぶ
型システムの重要性
- AIコーディング支援環境では 高度な型システム がさらに重要になる
- Rust と TypeScript は 状態とデータの妥当性、ミスの防止 をコードレベルで強制でき、AIが間違う確率も下げられる
- Python も mypy、pydantic などの設定を通じて型安全性を確保できる
エコシステムとパッケージマネージャの価値向上
- AIとともに開発する際は 大規模ライブラリの活用 が容易になるため、エコシステムの規模とパッケージマネージャの品質がさらに重要になる
- Rust(cargo)、TypeScript(npm)、Python(uv など)はいずれもモダンなパッケージマネージャを備えている
細かな文法やワークアラウンドの重要性は下がるが、エラーメッセージとガイドの品質は依然として重要
- LLM(AI)は反復的な文法ミスをすばやく直せるが、エラーメッセージやガイドが明確であること で効果的に補正できる
- Rustコミュニティの言語の使いやすさ(ergonomics)への取り組みのように、AIも優れたエラーメッセージを活用して、より良いコードを生み出せる
結論: LLMが強力な開発ツールをすべての人に開く
- アイデア中心プログラミングの時代には、ジュニアでも Principal Engineer 級の設計/指揮経験が可能 になる
- コーディングそのものの「フロー」が減るという懸念もあるが、設計とアイデア中心の開発体験がより価値を持つ と見込まれる
► AIとともに歩む時代、Rust、Python、TypeScript は強力な型、エコシステム、プラットフォーム支援を背景に、開発現場の標準として定着しつつある
14件のコメント
3つのうち馴染みがあるのはTS、できるのはPython、よく分からないけどやってみたいのはRust...
何はともあれ、その3つの中にJavaが入っていなかったのは不幸中の幸い
コーダー => 機能開発のアーキテクチャを組む開発者 => より大きなアーキテクチャ(システム、ネットワーク、セキュリティ) => 企画
という形で経験が発展していく流れの中で、コーダーが現場で学べる機会は今後さらに少なくなりそうですね。
アイデア中心のプログラミングが主流になるなら、
少なくとも一人でAIベースのフルスタックを扱えるコーダーが基本になるような気がしますね。
高性能コードで C から Rust に移行する十分な理由は、いまだに見いだせていません。Zig のように、少なくとも文法がより単純なほうが e2e 開発には向いている気がしますし、結局それ以外はプロファイリング後に高水準言語から呼び出す部分だけを実装する構成です(Python ユーザーです)。Rust を使うと、GIL の制御のような他言語との相互運用にかかる開発コストが、意外とかなり大きいです。C はそもそも他の言語側が前提として期待していますからね。
Zigを使うくらいならCを使います(笑)...
zigを応援します :)
CからRustへ移る理由は、実のところ生産性だと言いたいです。メモリ安全性のサポートも良いですが、
cargoだけを考えても移行する理由になると思います。Python拡張モジュールを作るときは、言語を問わずGILの扱いは常に厄介です。この点はC/C++も同じです。もちろん、拡張モジュール作成を助けるライブラリやツールを使う場合は例外ですが、Rustにも
PyO3という優れたクレートがあります。また、C開発者の立場では、当然
zigも扱いやすいです。基本的にzig自体がCコンパイラでもあるので、ヘッダーファイルをそのままインポートして使えるほどですから。そう考えることもできそうですね。私の経験では、PyO3 よりも
python.h(これが zig が良い代替案である理由でもあります)のほうが、OS やベクトル化レベルまで下りて戻ってくるのがはるかに容易でしたが、メモリ管理の心配がないという点では、ある程度以上の規模になると Rust のほうが長期的な生産性は高くなり得ると思います。C が簡単な理由は、現代の主要言語である Python/TS/Go/PHP/Java のすべての基盤であるか、あるいは似た文法を持っているため、単に文法が簡単という以上に、いつか出会う言語、またはいつか出会った言語だからでしょう。一方で Rust はその逆の立場にあり、高い価値があるにもかかわらず、チームに導入するにはかなりの努力が必要です。進化的な言語というより、革新的な言語だからだと思います。
Rust の
rayonクレートを作った方が書いた文章のようですね。Python と TypeScript は今でも中心的な言語だとは思いますが……
Rust はまだそこまでの位置ではないですね。難しいというイメージのせいかなと思ったりもしますが、
LLM が参入障壁を下げてくれて、Rust も中心言語として浮上してくれるといいですね。
Niko Matsakisは、rayonを超えてRustの父に近い立場にある人物です。もちろんGraydon Hoareが創始者ですが、言語の最も重要な部分に最も多く貢献したのはNikoだと言えるでしょう。
Rust開発者であれば、どうしても愛着が強いぶん偏った情報になっているかもしれませんね!
情報共有ありがとうございます。
PHP最高。
でも、国内ではやはりJavaですよね?
Go は GC のせいで外れたみたいですね
三大将とは、すごいなw