「最強武器ランキング」で言語を選ぶな。Django使いが次の言語を選ぶまで
なんでもかんでもランキング1位の武器が一番いいわけじゃない。Django使いが次の言語にGoを選ぶまでの思考プロセスを、RPGの武器選びに喩えて正直に書きました。武器診断付き。
コラム
kkm
Backend Engineer / AWS / Django
なんでもかんでもランキング1位の武器が一番いいわけじゃない。Django使いが次の言語にGoを選ぶまでの思考プロセスを、RPGの武器選びに喩えて正直に書きました。武器診断付き。
RPGの武器選びと同じ罠
RPGで武器を選ぶとき、攻略サイトで「最強武器ランキング」を調べる人は多い。でもなんでもかんでもランキング1位の武器が一番いいわけじゃない。ドラゴンキラーは竜には強いけど、それ以外には普通の剣だ。
プログラミング言語も同じで、キラー特攻がある。Rustはシステムプログラミングに刺さる。Dartはモバイルに刺さる。大事なのは今自分がチャレンジしているダンジョンがどこなのか、そこで一番いい武器はどれなのかを見極めること。
しかもゲームと違って、使いこなすのに数ヶ月から数年かかる。だから慎重に選ぶ。でも、決めたら浮気しないで使いこなすまで振り続ける。
最初に選んだ武器はPythonだった。一番扱いやすくて、軽くて、割とどこでも行ける剣。この選択は正解だったと思っている。Pythonをかなり使い込んできたからこそ、次にDjangoというでかいモンスターとも戦えるフレームワークを手に取れた。
でも冒険が進むと、剣だけじゃ厳しいダンジョンが出てくる。これは、次の武器を選ぶまでの話です。
今の装備と、見えてきた限界
現在の技術スタックはこうなっています。
| 装備 | 説明 |
|---|---|
| Django(Python製のWebフレームワーク) | メイン武器 |
| React + TypeScript | フロントエンド(画面側)の武器 |
| AWS + Terraform(インフラをコードで書くツール) | 戦場の地形を整える装備 |
| Docker + Kubernetes(コンテナを束ねて管理するツール) | 兵站 |
一番の得意武器はDjangoです。ただ、日本ではPHP(Laravel)やRuby(Rails)がWeb開発のメジャー武器で、Djangoは少数派。JetBrainsの「State of Django 2025」を見ると、グローバルでは安定した人気があるのですが、日本の案件に絞ると選択肢がかなり狭くなる。
「日本でDjango一本で食っていく」は、できなくはない。でも武器の選択肢が限られた状態で冒険を続けるのは、正直ちょっと不安です。
Pythonは万能な剣だけど、弱点がないわけじゃない。CPUをゴリゴリ使う処理は遅いし、GIL(ざっくり言うと「一度に一つのことしかできない制約」)のせいで並行処理も得意とは言えない。Dockerイメージもデカくなりがちで、デプロイのたびに「重いな……」と思う。
Webアプリを普通に作る分にはそこまで困らない。でも大量のリクエストを同時にさばくとか、軽量なコンテナをたくさん並べるような戦い方をしたいとき、Pythonだけだと物足りなさを感じる場面が増えてきた。
今いるフィールドの敵が強くなってきた
不安の理由はもう一つあります。Webという戦場そのものの先行きが怪しい。
AIがWeb業界の構造を急速に変えつつあります。2024年12月、MicrosoftのCEOが「SaaSは死んだ」と発言しました。SaaSというのは、月額課金で使うWebサービスのこと。SlackやNotionのようなサービスを想像してもらえればいい。
2026年2月には、ソフトウェア関連の株式市場から約2,850億ドル(日本円で約40兆円)が消失しています。
もちろん「Webが消える」という極端な話ではありません。Forresterの分析では「SaaSは死ぬというより形を変える」、Gartnerは「2029年に5,760億ドル規模に成長する」と予測しています。でも、AIがこれまでWebアプリが担っていた領域を侵食していくのは確実で、Webエンジニアの活躍するフィールドが狭まっていく流れは止められない。
RPGで言えば、今いるフィールドの敵が強くなってきた。次のダンジョンを探す必要がある。
武器屋で全部振ってみた
というわけで、次の武器候補を片っ端から試し振りしました。観点は一つ。「その武器のキラー特攻は、自分が行きたいダンジョンに刺さるか?」です。
Rust — 伝説の大剣
Stack Overflowの調査で「最も愛されている言語」に何年も連続で選ばれている、名実ともに最強クラスの武器。システムプログラミング(OSやブラウザの中身のような、コンピュータの根っこに近い部分を作る仕事)への特攻が凄まじい。
でも、習得コストも凄まじい。所有権、ライフタイム、借用チェッカー……独自の概念が多く、生産性が出るまでに相当な修行期間が必要です。
正直に言えば、今20歳で空っぽの技術スタックだったらRustを選んでいたと思います。でも今の私には、すでに育てた武器があって、それを活かしながら次のダンジョンに進みたい。Rustはロマン武器すぎた。
Flutter(Dart)— 二刀流の短剣
一つのコードでiOSとAndroidの両方のアプリを作れる、モバイル特攻の武器。Google製で、UIの美しさにも定評がある。
ただ、「モバイルアプリで何を作りたいか」が明確じゃないと学びにくい。武器を振る理由が「なんとなく二刀流かっこいいから」だと、途中で鞘に戻してしまう。今の私には刺さらなかった。
Kotlin — 精巧な片手剣
Android開発への特攻が強い。加えて、サーバーサイドでも使える汎用性がある。Javaの後継的な立ち位置で、モダンな書き心地。
でもKotlinを握るということは、JVM(Java仮想マシン)という大きな武器体系に足を踏み入れるということ。今の私のPython + AWSという装備からだと、わざわざそっちに行く動機が薄い。
Unity(C#)/ Unreal Engine(C++)— ゲーム専用武器
個人的に一番興味があったのは実はこれ。ゲーム開発特攻。でも今の技術スタックから最も遠い場所にある武器です。
転職に近いレベルのキャリアチェンジが必要になる。興味だけで選ぶには、リスクが大きすぎました。
PHP / Laravel — 日本のスタンダード
日本での案件数特攻は最強クラス。Webエンジニアとして日本で安定して食っていくなら、最も手堅い選択肢かもしれません。
でも、PHPのWeb開発市場はすでに成熟しています。これから参入しても、先行者たちの中に埋もれるだけ。同じ時間を投資するなら、もう少し広がりのある方向に張りたかった。
Java — 重厚な大盾
エンタープライズ(大企業の基幹システム)への特攻が強い。安定感は抜群だけど、PHP/Laravelと同じ理由で見送りました。成熟した市場に今から飛び込むより、これから広がる領域に投資したい。
Swift — Apple専用の美剣
iOS・macOSアプリ開発への特攻が圧倒的。Appleプラットフォームで勝負するなら、これ以外の選択肢はほぼありません。
ただ、Appleエコシステムに閉じた武器です。サーバーサイドSwift(Vapor等)も存在しますが、市場はまだ小さい。私のバックエンド+AWSという装備との親和性が薄く、今回は見送りました。
Verse — 番外編:最近話題の次世代ゲーム言語
正直、上のラインナップに並べるには毛色が違うのですが、この記事を書いている時期にちょうど話題になっていたので触れておきます。
Unreal Engine 6で本格採用が予定されている、Epic Games発の新言語。UEFNでのFortniteカスタムゲーム制作で先行導入されていて、最近かなり話題になっています。
面白い言語だとは思います。ただ、現時点ではEpic Gamesのエコシステムに完全に依存していて、汎用性が未知数。「次世代のゲーム言語になるかもしれないし、UE専用で終わるかもしれない」という段階です。賭けるには早すぎた。
| 武器 | キラー特攻 | 私が見送った理由 |
|---|---|---|
| Rust | システムプログラミング | 習得コストが高すぎる |
| Flutter (Dart) | モバイルアプリ | 作りたいものが明確じゃない |
| Kotlin | Android + サーバーサイド | JVM圏に入る動機が薄い |
| Unity / UE | ゲーム開発 | 今の装備から遠すぎる |
| PHP / Laravel | 日本の案件数 | 成熟市場に今から参入 |
| Java | エンタープライズ | 同上 |
| Swift | iOS / macOSアプリ | Appleエコシステムに閉じる |
| Verse | ゲーム開発(UE6) | エコシステムが未成熟 |
選んだのはGo — どのダンジョンでも腐らない汎用剣
結論から言うと、Goを選びました。
Goの一番の強みは「逃げ道の多さ」です。特定の領域に特化した武器ではなく、どのダンジョンに入ってもそこそこ戦える。
- Web API — Goの最も得意な領域
- CLIツール — 二番目に得意
- クラウドインフラ — Docker、Kubernetes、TerraformはすべてGo製
- ゲームバックエンド — Riot GamesはValorantのバックエンド全体をGoで構築
Go Developer Survey 2025によると、Go開発者の55%がAPIとCLIの両方を構築しています。一つの武器で複数のダンジョンを回れる、まさに汎用剣。ByteDance(TikTokの親会社)はマイクロサービスの70%をGoで運用しているという実績もあります。
案件が増えてきている
Goの案件が増えてきている実感がある。Django一本で食っていく不安と、Goの需要が伸びているタイミングが重なった。「いつかは」じゃなくて「今」だと思った。
しかもGoとPythonは、同じ組織の中で共存していることが多い。クラウドネイティブな現場では「データ処理やMLはPython、高負荷なAPIやインフラツールはGo」という棲み分けが珍しくない。片方を知っていればもう片方の案件にも入りやすい。どちらかを捨てる選択じゃなかったのは大きかった。
Pythonの弱点をピンポイントで補う
そしてGoは、Pythonの弱点をピンポイントで補う武器でもあります。コンパイルすると単一のバイナリ(実行ファイル)になるのでDockerイメージが軽い。並行処理(goroutine)が言語レベルで組み込まれていて、大量の同時接続を軽く捌ける。Pythonが苦手な場面で、Goが得意。二刀流として相性がいい。
学習コストが比較的低い
Goは言語仕様が意図的に小さく設計されています。覚えることが少ない。Riot Gamesも「新しいエンジニアのオンボーディング(チームへの参加)が容易」と評価しています。
Rustの「伝説の大剣」が修行に数年かかるのに対して、Goの「汎用剣」は数ヶ月で実戦投入できる。この差は大きいです。
今の装備との相性がいい
私が普段使っているDocker、Kubernetes、Terraform。これ、全部Goで書かれています。つまり、Goを学ぶことで今の装備への理解も深まる。
実際の導入も段階的にできます。たとえばAWS Lambda(サーバーを管理せずにコードを実行できるサービス)の一部をPythonからGoに書き換えるところから始められる。装備を全とっかえする必要がないのは安心材料です。
数字で見るGoの現在地
- Go Developer Survey 2025: 満足度91%、世界で推定約580万人の開発者
- TIOBE Index: 7位から16位に下落
TIOBEの順位が下がっているのは気になるかもしれません。でもこれ、「安定しすぎて退屈だから話題にならない」という分析があります。言語の機能追加が控えめで、劇的な変化が少ない。だからニュースにならず、ランキングが下がる。
でも「退屈」って、仕事で使う武器としてはむしろ安心材料じゃないでしょうか。振るたびに刃の形が変わる剣なんて怖くて使えない。
あなたの次の武器診断
ここまで読んで「で、自分は何を選べばいいの?」と思った方へ。3つの質問で、あなたに合いそうな武器を診断します。
Q1. 今いるダンジョンは?
決めたら、浮気しない
最強武器ランキング1位はたぶんRustだ。でも私が次に挑むダンジョンには、Goの方が刺さる。
軽くて、どのダンジョンでもそこそこ戦えて、しかも振り方を覚えるのにそこまで時間がかからない。派手さはないけど、腐らない武器。
Pythonという最初の剣はまだ手放さない。ただ、もう片方の手にもう一本持っておきたかった。決めた以上、使いこなすまでは浮気しない。
……半年後にRust触ってたらこの記事ごと消します。