地雷案件

求人を見ていると

CakePHPからGoに移設中!」

などと堂々と酷い案件をさらしている会社が複数社あって悲しくなる。

 

まずはGoについて。

Cを使いたいけど不便だからちょっと便利な言語を作りましたがGo。だからWEBの案件にはあまり向いていない。PHPから移行すると確実に、いや絶対に今までより開発工数が増える。個人的にはPHPが大嫌いだけど、あれは便利だし開発早いよ。それをオッサンの香りがするGoに書き換えたら間違いなく面倒。ケン・トンプソンが関わってる時点で察し。工数はPHPに比べ1.3倍以上は増える。確かに速度は速いが大量アクセスを捌くとなると言語仕様以外のウェイトが大きくなるからそんなにメリット出ない。例えばリクエストはDBアクセスなどで引っ張られるから言語の速度は一部分でしか活かせない。

 

だからGoに書き換えてもサーバー台数はそれほど削減出来ない。よって速度向上によるコストメリットはほぼない。多少はサーバー代を削減出来るが、作り替え費用とGoの増えた開発工数で相殺される。いや下手するとマイナス。

 

そしてさらに問題が顕在化してくるのは求人。PHPでも求人に困るのにGoだと絶望的。高い年収で求人を出せば釣れると思いきや、優秀なPGは簡単には獲得できない。優れたPGは会社の格や環境で転職先を選ぶから、中小ベンチャーじゃまず引っかからない。マザーズ上場程度の会社でも求人は苦労しているのに、一つのサービスで食いつないでいる会社でGoのような言語縛りがあればこの先の何年も求人に苦労することだろう。

 

こういう否定的な事を言うとよく返されるのが

「じゃあどうすればいいんですか!対案はあるのですか!」と言われる。

答えは「別に今のままでいいだろう」と。多少は問題があってもシステムを違う言語に変えるほどのメリットが生まれる状況はほぼ存在しない。スケールアウトでダラダラ引っ張ってもトータルするとそちらの方が大概はプラスだ。

 

どうしても負荷の高い部分があるなら、その部分だけをGoで書き直してAPI化すればほぼ解決。

 

あとは大元のプログラムが酷く全部作り直したい場合。別にGoに、というか違う言語に変える必要はない。CakePHPでゼロから作り直せばいい。Cakeが嫌ならLaravelだってSymfonyだっていい。

 

チャレンジ精神やスキル向上精神がないと思われるが、そこが大きな間違い。既存システムでそんなことをする必要性はまずない。やるなら新規案件を立ち上げでそこで新規言語や新規ミドルウェアを使えば良い。既存システムをアホみたいに苦労して改修するよりも現実性も将来性もある。

 

他社の求人はほっとけば良いと思うが、最近これが若干のブームらしくそこかしこで影響受けそうだから困る。どうせ5年も経てば廃れる流行なのだから広まらないで欲しいよ。