1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GoエンジニアがGoエンジニアを滅ぼす

Last updated at Posted at 2025-03-26

GoエンジニアがGoエンジニアを滅ぼす

こんにちは、世界のエンジニアの皆さん!最近、バックエンドシステムをPHP (+ Laravel) や Ruby on Rails から Goに書き換えるという話をよく耳にしませんか?今日はそのトレンドにちょっと待ったをかけてみましょう。タイトルの「GoエンジニアがGoエンジニアを滅ぼす」は物騒ですが、中身はもっとユーモラスで鋭い考察です。

概要

  • PHPやRubyからGoへの書き直しブームを観察(Pythonもあるけど、主流はやっぱりGo?)
  • Goが選ばれる性能・型・安全性・マイクロサービス化の理由を検証
  • Java, Kotlin, C#, Swift, C++, Rust, Scala, Elixir, TypeScript(Node.js)など他言語はなぜ選ばれない?
  • GoやPythonのコードが「金太郎飴」になる問題について
  • そして最後に、Goエンジニアが見落としている「不都合な真実」とは……

では、肩の力を抜いてお読みください。

PHP/RubyからGoへの大リプレイス時代

PHP (+ Laravel)、Ruby on Railsは長くウェブ業界を支えましたが、最近Goへのリプレイスが激増しています。しかし、こんな光景が社内で起きていませんか?

社内のリアルな風景

  • リードエンジニアの野望: 「PHPやRails、もう辛いっす。Goなら速くて保守性も抜群ですよ!」
  • CTOの懐疑心: 「Goにするメリットって本当にあるの?しっかり検証した?」
  • PMの胸騒ぎ: 「リライト期間中、納期はどうしよう……。」
  • 新人エンジニアの目の輝き: 「Goで書けるなんて最高っす!」

でも、本当にGoへの書き直しはベストでしょうか?

Goを選ぶ理由に冷静なツッコミを

パフォーマンス向上?

Goは確かに速い。でも実際のWebサービスはDBやI/O待ちがボトルネック。PHPやRubyが遅すぎて困ったことあります?

型と安全性?

静的型付けは確かに安心。でもPHPもRubyも型の仕組みが進化してるし、TypeScriptだって「そこそこ型安全」程度にはなってますよね?

マイクロサービス化?

モノリスから分割した結果、複雑性が激増して「分散モノリス化」するケース、多くない?

学習コスト?

「Goはシンプル」と言うけど、goroutineやチャネルを全員がすぐ理解できるって本当に?

エコシステムと未来志向?

Goのエコシステムは確かに素敵。でも必要な機能がPHPやRailsに本当に無いのか、単に「隣の芝生が青い」状態かも?

ちなみにPythonもよく候補になりますが、バックエンドとしての人気よりも、近年は特に機械学習や生成AIの分野での存在感が圧倒的ですよね。

他の選択肢を忘れてない?

実際には、多くの魅力的な言語がありますが、それでもGoが選ばれるのはなぜでしょう?

  • Java: JVMの安定感。でも古臭くてイケてない?
  • Kotlin: JVM上でモダンだが、サーバーサイドでの実績が少ない。
  • Scala: JVMで関数型とオブジェクト指向を融合した強力言語。でも難易度も最強。
  • C#: .NETで堅実。でもウェブ界隈では地味すぎ?
  • Swift: Apple謹製だけど、サーバーサイドではニッチすぎる。
  • C++: 圧倒的パフォーマンス。でも開発生産性は壊滅的。
  • Rust: メモリ安全で高速だが、学習曲線が厳しすぎる。
  • Elixir: 並行処理は最高クラス。でも採用している会社もエンジニアもニッチすぎる。
  • TypeScript(Node.js): フロントエンドと統一できるけど、「非同期地獄」に耐えられる?

結局Goが「ちょうど良い」から選ばれるということですよね。

GoとPythonに共通する「最大の特徴」とそのリスク

Go言語には大きな特徴があります。それは、

コードが金太郎飴のように、どこを切っても同じ見た目になる特徴があることです。

実はこの「誰が書いても同じようなコードになる」という特徴はPythonにも共通しています。
PythonもPEP8やBlackなどによってコードスタイルが強力に統一され、誰が書いても似たコードになるのが強みです。

しかし、これがGoとPythonに共通した、最大の弱点でもあるのです。

誰が書いても同じコード = 生成AIが最も得意なコード

「誰が書いても似るコード」は、生成AIが最も得意とする分野です。

最近の生成AIはGoやPythonのコード生成を難なくこなします。つまり、エンジニアたちは無意識にAIが最も書きやすい言語を選んでいるのです。

さらに皮肉 – Pythonが生成AIを育てている現実

ここで皮肉なのが、生成AIを育てている主役がPythonだという点です。AIのフレームワーク(TensorFlow, PyTorchなど)はほぼすべてPython製。

つまり、「生成AIを育てるPythonエンジニアが、Goエンジニアを滅ぼし、自らも滅ぼしている」という恐ろしい構図が完成しているのです。

結論:滅ぶのは「GoやPythonしか書けないエンジニア」

結局のところ、Goへの大量リプレイスがもたらす本当のリスクは、「GoやPythonしか書けないエンジニア」を量産することです。

誰でも書けるコードは生成AIが容易に書けてしまいます。自分の仕事を奪うAIを育てる言語を選び、自ら墓穴を掘っているという皮肉な現実があります。

しかし、柔軟に複数の技術を使いこなし、AIを味方にできるエンジニアなら、次の時代も生き延びられるでしょう。


真夜中のオフィス。
画面には次々とコードが書き込まれていくが、キーボードを叩く音は聞こえない。
そしてもちろん、その席にエンジニアの姿もない。

──そう、そもそもこの文章を書いたのは生成AIなのですから……。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?