サイバーエージェント・コネヒト・BASEが語る、今あえて開発言語を「PHP」に決めた理由とは?

開発言語をPHPから他の言語に変更するWebサービス企業がある中で、あえてPHPを使い続けることを決めており、今後のサービスの成長にもコミットしているというサイバーエージェント・コネヒト・BASE。
各社CTOが開発言語をPHPに決めた理由、今後の技術活用、エンジニアのキャリアパスなどについて語った。

PHPでのゲームのサーバサイド開発の変遷〜PHPとの付き合い方~

PHPと付き合っていくエンジニアの未来について考えるイベント「PHP Way #1」では、サイバーエージェント・コネヒト・BASEという3社のCTOが登壇し、Webの開発言語やフレームワーク、技術活用の考え方などについて語った。

最初に登壇したのは、サイバーエージェント SGE CTOの白井英氏。SGE(Smartphone Games & Entertainment)とはサイバーエージェントのゲームやエンターテイメント事業に携わる子会社が所属する事業部で、子会社毎に技術方針が異なる。

株式会社サイバーエージェント SGE CTO 白井英氏

まず白井氏は、2010年から2017年までのサイバーエージェントのゲーム事業とPHP活用の歴史を紹介した。SGEは紆余曲折を経て、現在はロジック部分をPHP、リアルタイム通信部分(Chat or マルチバトル)にNode.jsもしくは、Photonを使っている。

ロジック部分にPHPを使い続けている理由は「今までの資産がたまっている」こと。ゲームは一度作ったら終わりではないので、ソースの寿命が長い。運用がある限り、毎日でも開発が続くので、長年に渡るノウハウがインフラ環境から開発フローまで蓄積されていることが大きな理由だ。

また、PHPコミュニティには強い権威者がいない優しいコミュニティなので、いろいろなことを試して広げやすいというのも理由の一つだという。

一方でDocker、Kubernetesといったコンテナ技術やAWSのAuroraなどの新しい技術も取り入れ、サーバー管理の負荷を軽減し、本来のアプリケーション開発への回帰を図ると語った。

◆発表資料はこちら

8,568通り、あなたはどのタイプ?

コネヒトが考える技術選択の仕方について

続いて登壇したのは、コネヒト CTO 島田達朗氏。「コネヒトが考える技術選択の仕方について」というテーマでセッションを行った。

コネヒト株式会社 CTO 島田 達朗氏

コネヒトが使っている技術言語は、PHPだけではなく目的によってPythonなど複数言語を使っており、バージョンアップやDockerやECSなどの新技術も目的に応じて柔軟に導入している。また、同社にはCakePHPやKotlinのコントリビューターがいるという。

●コネヒトの技術選択の変遷

  • PHP 5 ⇒ PHP 7
  • CakePHP2 ⇒ CakePHP3
  • Objective-C ⇒ Swift
  • Java ⇒ Kotlin
  • Vagrant,Chef ⇒ Docker

島田氏はアラン・ケイの「未来を予測する最善の方法は、それを発明することだ」という言葉を引用した上で、「OSSへの貢献は将来へのリスクヘッジになるし、技術的なブランディングやモチベーションアップに繋がる」と語った。

◆発表資料はこちら

8,568通り、あなたはどのタイプ?

PHPから別言語に変えることを考えた振り返り

3番目の登壇者は「えふしん」こと、BASE CTOの藤川真一氏。「PHPから別言語に変えることを考えた振り返り」をテーマにセッションを行った。

BASE株式会社 CTO 藤川 真一氏

藤川氏はCTO3年目を迎えた2016年時点から、「PHPをどうするか問題」について検討を重ねてきた。その当時のイシューが以下である。

2016年当時のイシュー

  • Cake2.xが終わったらどうする?
  • PHP5.3、もうサポート終わってるし!
  • Webは全然テストがないよ! テストを作り込むのに向いた⼈材不⾜
  • パフォーマンス問題

さらに⾔語選択を⼀つの価値観で語るものではないと、Early StageとLater Stageに分けて考えてみたという。

これらをBASEの技術ビジョンとRuby on Rails,Python,Java,Scala,Goといった他言語のメリットを照らし合わせ、懸念となるポイントなどもピックアップ。PHPとも比較したみた結果、リスクとコストを支払って乗りかえるという答えが出せなかったという藤川氏。


そしてPHPからRailsに乗りかえて成功した企業、失敗した企業を考えてみたが、今はまだPHPで問題ないという結論を出した。

●PHP で問題ない技術的な視点

  • ビジネスで成功するために⼒不⾜の実⾏環境ではない
  • 相対的なWeb開発⾔語の役割の変化と先鋭化
  • Go+PHP7という新しいソリューション、Webとそれ以外を分ける
  • CakePHP4が出てくる!

懸念された⼈材採⽤⾯も、「ECビジネスにおけるPHPの選択は採⽤には不利ではない。優秀な⼈材に振り向いてもらうには⾃社のプレゼンスを発揮するために、とにかく⾜元をしっかりと固める」ことと判断した。

BASEのWeb技術基盤イシューを以下のように挙げ、AI時代に向けて適材適所の価値観をしっかり作っていくという(※すでに進行中)。

  • BASE全サービスのPHP7へのシフトを完了させる(with⾃動テスト)
  • Cake2からCake4へのシフト
  • カートと決済のマイクロサービス化(別リポジトリ化/API化)
  • Amazon Auroraの導入
  • スーパーセールに耐えうるリアルタイム在庫処理
  • CTO/VPoE/VPoPのチーム化

◆発表資料はこちら

なぜ、PHPを使っていると自信が持てないのか?

続いてのパネルディスカッションでは、各社のプレゼンで語られた内容をさらに深堀りし、今後の技術選択やエンジニアのキャリアパスなどについて議論が行われた。

――まずは、今回のテーマである「なぜ、PHPを使っていると自信が持てないのか」について、皆さんの意見を聞かせてください。

えふしん:PHPからRailsに移行する場合、表向きの理由は「古いコードを新しくしました」なんだけど、「採用市場でモテたい」からというのが裏側の本質的な理由だったりするんですよね。「PHPなんてオワコンじゃん」っていうムードに流されがちになっている。

それでも話題になってるうちはまだいいんだけど、最近は話題に上がらなくなってきたことが問題。「炎上するより、忘れられるほうがよくない」って思ってます。

白井:たしかに歴史が長い言語だから、ツッコミどころが多いですよね。
本来はモノを動かしたり、サービスを提供したりするための技術選択なんだから、気にしなくていいことなのに、どうしてもマサカリが飛んでくることを気にしちゃう。

島田:セキュリティの観点もありますね。IPAから脆弱性の指摘されて、「例えば、PHPを使わない」という有名なフレーズが広まったことがある。そのことで、「セキュリティ的にPHPダメなんじゃん」って思われてしまった。

一方で、Rubyが日本から生まれた言語ということもあり、「モダンだ」「イケてる」という流れになった。

ユーザーにとって体験を届けるということが本意なんだけど、評判やイケてる感もエンジニアにとっては大事なことだったりしますね。

えふしん:僕は「ジーズアカデミー」という起業家育成のためのプログラミング学校でメンターをやっているんですけど、プログラムはLaravelを使うかフレームワークを使わないピュアPHPで書いてもらうケースが多いんですね。

RubyやRailsを3カ月で覚えて書くのは難しいので、特に経営者志望の人たちには「複雑なことをするな。PHPで書いた方がいい」と勧めています。

起業家に一番大事なことは、理念やパッション。アイデアやサービスに共感して一緒にやってくれるエンジニアと出会えたら、プログラムは書き直してもらえばいい。そのためにも初心者でも書きやすい方がいいと思うんです。

PHPは生産性が高く、初心者でも使いやすい。最近出てきたLaravelというPHPフレームワークも話題になっているんですけど、使ってて楽しいので僕も好きなんです。

PHPの良いところ/好きなところは?

――PHPの良いところ/好きなところを聞かせてください。

島田:型はPHP 7でかなり改善されたので、他言語に比べても差異がないくらいモダンになりましたね。下位互換性を持ったままバーションアップしていろんなことを取り入れているいるところが素晴らしい。

ただPHPの関数の引数はイケてないってよく言われますけど、一貫性のなさは改善してほしいですね。ラップしているフレームワークに上手く吸収してもらえるとより良いかなと思います。

白井:やっぱり、すぐ動くことですね。どんなエンジニアにも扱いやすいし、初心者に優しい言語。ただしイケてないコードは量産されやすいので、まじめに勉強しないといつまでもイケてないコードを書き続けるので気をつけたいところ。ものづくりに集中できるという意味ではいいと思う。

PHPのコミュニティは怖い人がいないし、みんな優しくて温かいので、その辺も好きです。

えふしん:変化の歴史ですね。クラシックASPと戦うような言語だったのに、オブジェクト志向や型を取り入れたりして、ずっと最前線にい続けている。一貫性を保つことは大変だし難しい中、変化して生き残ってことはすごい。

逆に、Rubyは「変わらない」という方向性を維持していて、一貫性がある。それぞれの特徴ですね。

PHPはこの先も変化してもうまく変わってくれるという期待があるんだけど、一方でビルドオプションの依存は改善してほしいなと。

PHPは5年後に残っているか?

――PHPは変化を取り入れているという話がありましたが、この先5年後にも残っているでしょうか?今後の展望などもお聞かせください。

白井:えふしんさんの話にもありましたが、変化についてきた言語なので、5年後10年後にも残っていると思います。

すぐ動くし、今後も新しいことを取り入れていくというスタンスや、初心者に優しいというポジションは変わらないのではないでしょうか。

島田:PHP 5からPHP 7へのアップデートする最近事例が増えています。下位互換性は優れているし、これだけ長く続いている言語なので信頼できる。サポートされていく言語だと思います。

とはいえ「PHP長く使えるからPHPだね」は安易で、適材適所では使うべき。例えば、機械学習はPHPでやろうとは思わないですよね。

適材適所の言語を使って小さく作るというマイクロサービスがトレンドになってきた中で、PHPも良いところを使って作っていくのがいいんじゃないかと。

えふしん:以前、ActionScript(アクションスクリプト)というFlashに使用される言語があったんですけど、どんどん進化してして、iOSを脅かす高機能を持つまでになったんですよね。その結果、セキュリティホールは出てくるし、アップルからは切られて滅びてしまった。

その点、PHPはある種、Webに閉じているのが強みだと思うんです。Webがなくなることはないので。このポジションニングを積み上げていけば残るんじゃないでしょうか。

今後のWebエンジニアに求められるモノは何か?

――今後のWebエンジニアに求められるモノは何でしょう?

えふしん:一つの言語に閉じる時代じゃないので、多言語でやっていく柔軟性は大事だと思うんです。Qiitaとか、ネットの記事を見るに、エンジニアの技術力は記事にしやすさがある。

技術は「人に使ってもらってなんぼ」という価値観が大事なので、例えばPHPであればUIやWebサービスの作り込みに優れているとか、エラー処理のイケてる感とか、あんまり言われないけど、言語化していきたいですね。

白井:インターネット産業は変化が早いので、エンジニアは適応力が求められます。新しい技術やネットで流行るサービスがコロコロ変わるので、新しいものに着目して流行らせる力、適応力が必要です。そしてその価値を届けるための技術提供に、どれだけついていけるかが大事だと思います。

島田:お二人が言うように柔軟性、適用力はとても大事ですよね。加えるなら、ユーザーへの価値提供のために自分自身の役割をちゃんと全うできるかが、重要だと思います。新しい言語をキャッチアップしてメンバーにシェアすることも大事です。一方でユーザーのために枯れた言語で書かれたサービスを不具合なくメンテナンスすることも、とても大事な役割の1つだと思います。

あとは、いろんな選択肢がある中で自分の得意分野を見極めてコミットしていくことも大事だと思います。ふわふわしてあちこちに手を出すというよりは、価値として何を出すせるかを考えられていると良いですよね。

ニーズが高いが採用しにくいポジションは?

――エンジニアは全般的に採用ニーズが高いと思いますが、特にニーズが高いのに、採用しにくいポジションは何だと思いますか?

島田:うちは機械学習に知見のある方が欲しいのですが、ユーザー体験から逆算して、良いサービスを作るためにその技術を利用することが好きな人になかなか巡り会えていません。データ解析の理論自体が好きな人はいるのですが、それだけではニーズを満たせないので、なかなか採用は難しいですね。

白井:サーバーサイドエンジニアの高齢化が進んでいて、若手が来てくれないことですね。ロール的な話では、技術大好きというタイプとチーム一体となって開発して成果を上げたいというタイプを両立しているエンジニアが希少で、技術力を上げつつ、チームで成果を上げることを両立するのが難しいですね。

えふしん:全方位で不足してますね。ミドルマネジメントも足りないし、その中でもWebサービスが作れるエンジニアが足りない。テクノロジー好きの人は多いんですが、サービス自体が好きだという人となかなか出会えない。ユーザー体験を作りたいという人が不足しています。

エンジニアのキャリアパスは?

――リードエンジニア、VPoE/Pなどなど、役割の細分化があります。最近の事例やエンジニアのキャリアパスをどう考えていますか?

えふしん:最近ではCTOだけでなくVPoE、プロダクトマネージャー、テックリードなど、エンジニアのキャリア選択肢が広がっています。

VPoEはチームマネジメントや採用など、エンジニア組織を作ることがメインミッション。技術力は重要視されていないイメージがありますが、実は採用という役割を考えるとCTO並みの技術力も必要なんじゃないかと。

それらをひっくるめて日本はCTOが全て一人の役割として担うことが多いのですが、トレタの増井雄一郎さんみたいにマネジメントより技術面を重視することを理想として掲げている人もいる。技術面とマネジメント面、組織作りなど、これからは役割を分け合うというカタチもあると思います。

会社という組織の中で優位な意思決定をするエンジニアのポジションって、CTOしかないと思われがちですが、プロダクトマネージャー、エンジニアリング組織を作るVPoEなど、役割は複数あります。組織の中で役割がスケーラビリティを持って分かれていくと、役割も増えるしチームも作れることを覚えておいてもらえるといいですね。

白井:VPoEは注目されていますね。自分の肩書はCTOですが、役割的にはVPoE寄りだと思う。結局そうした役割も人の適性だし、興味がある人がやればいいんじゃないでしょうか。

島田:何のためのキャリアなのか、キャリアの目的で選ぶべきだと考えています。コードを書いてPDCAまわしたいならスタートアップに入ってガリガリ書く。組織を見るマネージャーになりたい人は絶対数が少ないVPoEが今はニーズが高いと思います。自分の企画したものをダイレクトにユーザーにを届けたいないならエンジニアリングのわかるプロダクトオーナーになるのも1つの手ですね。

社内のエンジニアが新技術をやりたいと言ってきたら?

――社内の優秀なエンジニアが新技術をやりたいと言ってきた場合に、どういう対応をしますか?場合によっては、退職理由になることもあると思うのですが。

えふしん:現実的にそういうこともあるけど、キャリアの選択なので見守るしかないですね。サービスコミットを喚起できなかったところが反省すべきところだとは思います。

言語に対する知識欲は大事なので、サブシステムで使わせてあげるなど知的好奇心を満たす手法もありますね。また、技術を試したいと若い人はそういう傾向もあるので、戻ってきてほしい。出戻り大歓迎です!

白井:うちなら社内異動が選択肢の一つになります。たとえばGoをやりたいという人なら、AbemaTVがGoで開発しているので、Abema行けばいいじゃないとか。

あとは、メンテナンスが必要になるので、会社の資産となるもので運用できること前提で、小さいものを作ってみてもらうとか。やってみるとわかることが多いので、正解を出していければそれもいいと思います。

島田:モチベーションも含めて、新技術選択の理由をきちんと聞いて、目的に対してその言語が最適なら良いと思います。逆にその説明が全くできないなら難しいですね。

言語で転職する人は言語で転職するという話をよく聞きますが、コネヒトはサービスにコミットしてくれるかを入社前にしっかり確認しているので、現在提供しているママ向けNo.1(※)アプリ「ママリ」をはじめてから開発部に退職者がいないんです。長い期間でいいサービスを作るには人が資産だし、コミットしてくれることが大事だと考えてます。

※妊娠中~2歳0ヶ月の⼦供を持つ女性1,023人を対象とした調査より「現在使っているアプリ(妊娠・⼦育て系) をすべて教えてください」で第1位(2017年8月実施、調査協力:インテージ)。

若手のPHPerを増やするには?

――若手のPHPerが減っているという課題がありますが、どうやったら若手を増やしていけるでしょうか?

島田:PHPで良いサービスを作ることが大事なんじゃないかと思います。「あのサービスはPHPでできてる、すごい!」と言われるようにするとよいのでは。

えふしん:PHP7が出てきたのはチャンスですよね。型の優位性、ポジション、良いサービスの事例、メリットなどをアピールして目立っていくことですね。

あと、新卒はSI企業に就職する人が多いけど、SI系はだいたいJavaを使うことが多いので、Javaを使った人たちが乗り換えてくれるタイミングはチャンスの一つかなって思います。

白井:世間で注目されるサービスがPHPで作られている事例を増やして、エンジニアの盛り上がりを作っていくことは大事ですよね。PHPで作るの流行っているよ、という雰囲気を醸成をして注目を集めていきたい。

まとめ

――最後にまとめの一言をお願いします!

えふしん:今後もPHPを使っていくつもりなので、PHPを盛り上げていきたいですね。参加いただいた方も情報発信をしていただけるとうれしいです!

白井:今回のイベントで現状を打開したい人が多いんだなと感じました。今後もPHPを盛り上げていきたいので、皆さんもブログなどでどんどん発信していきましょう!

島田:今回の参加者はPHP好きが多く、まだまだPHPもイケると思いました。僕たちも「ママリ」でPHPの良い開発事例を作っていきたいです。

※本記事は「CodeIQ MAGAZINE」掲載の記事を転載しております。

PC_goodpoint_banner2

Pagetop