プロダクト指向派におけるWeb開発言語の選択

ずっとPHPについて考える機会が多かったのだが、PAY.JPをきっかけに、PyconJPにもスポンサーを通じての参加や、イベントにも少しだけ関わらせていただいてたから、Pythonの魅力を探る機会も増えた。

よくよく聞いてみるとPythonの魅力は、試行錯誤のしやすさということにあるようだった。データ解析に強いというのも、研究者が試行錯誤をするためのライブラリがそのまま実戦にも投入できるというところがポイントとしてあるらしい。そもそもデータ解析ライブラリそのものはC言語で書かれていて、グルー(糊)としての試行錯誤言語としてのPythonという使い方が一番人気のようだ。

何故、そこが重要なのかというと、Googleの検索ランキングアルゴリズムに振り回されるSEOの構図が典型例で、データ解析はスクラップアンドビルドの典型例で、一度決まったデータ解析手段において作られたエコシステムは、遠くないうちにハックされたり、それが常識化して、コモディティ化してしまうので、常に試行錯誤を続けて進化、変化していく必要がある。

Googleの検索ランキングのようなビジネスとロジックがガチで当たって経済が紐づくと、それ自体はハックの対象になる。ビッグデータに基づく不正検知のアルゴリズムを作った会社がビジネスの覇権を取ったたら、アルゴリズムがプロの犯罪者集団にはハックされる対象になる。それ故に、どんどん進化させていかねばならない。

FacebookやTwitterの中の人は、ひたすらタイムラインをハックするスパマーとの戦いと聞く。

つまり成功したサービスであればあるほど試行錯誤がより続く。だから壊すことを怖がってはいけないし、壊しながらもサービスの安定性は維持していかねばならない。矛盾してる仕事なのだ。だからサービスのノウハウを知ってるエンジニアの成長は大切。それに対してビジネス的に成功しても、実質的に進化が止まったサービスは、決まったアルゴリズムを高速化する方にリソースを割いたり、違うことに目をつけていく余裕が生まれる、ということだと思う。

そういえば、こんな話もあったね。
もうGoogle検索ってダメかもね:(SEO/AMP)

ま、それはともかく、どうもWeb系で世界的に人気な開発言語は、PHPだったり、Pythonと言った、エンジニアの入り口を支えている言語のようだ。

TIOBE Index | Tiobe – The Software Quality Company
(上のリンクによると、LL系ではPythonとPHPが2トップのようだ)

ECと言う視点でインターネットの入り口を支えていると自負しているBASEにおいても、この部分はプロダクトデザインにおいても重要なポイントだと思っている。

Webについては変化を抱擁せよ、ということで、エンジニアがやりたいことがやりきれなくてヒーヒー言って、人が足りない人が足りないと言ってる時が一番幸せな時期で、なんか技術的負債が増えて、アーキテクチャ一新する余裕がなくて俺たちダメだよね><とか、他社のプレゼンを見てコンプレックスに思ったり、自分たちを卑下する必要はないんだなってのは最近、とある方とお話していて目からうろこだったよ。

それよりも、

毎日立ってる打席の中で、技術的負債を如何に増やさないか、ということが一番大切なこと。次に、過去の技術的負債を回収するカイゼン活動をどうやって実現していくか?

そのサイクルさえできていれば待ち行列理論からするといずれ負債は完済できる。技術マネジメントとしては、一気に解消することを狙うのではなく、プロダクトの成長を優先しながらも、毎日の体制を如何に作るかこそが大切。

変化は毎日続いていくから、これやればOKってことないんですよね。スクラッチからサービス作りなおしたって絶対新しい負債の入り口になるだけだから。そんなの宝くじ当てれば、自分の人生が変わるとか思ってるのと同じだと思う。毎日積み上げている暗黙知的な資産を捨てたらダメ(チケットにissueは書いてあるかもしれないけど、おもてなしに再現性があるかは謎)

そこ開発言語が云々とか全然、関係ねーなとか思った。そういうのを楽しめるエンジニアが、うちにも沢山来て欲しい。

あと、余談ながら技術アドバイザーでお手伝いしていただいているメルカリのkazeburoさんが、何故、PHP使ってる会社入ったんですか?という質問をしたら、普通にPHP速いし、ビジネス成功してる会社沢山あるし、言語として問題ないよね、というお話をお伺いして、これも目からうろこだった。

自身のアイデンティティとして、好きな開発言語に比重を置くのはどんどんやって欲しいし、会社もどんどん支援するし、あわよくばその活動をプロダクトにも取り入れることも機会が来れば全然OKなんだけど(実際BASEのdeploy制御は、Rubyで進んでる)、とにかく目の前にあるプロダクトの現状をよくすることに全力でコミットしてくれることに、プロの仕事としてのやりがいを見出だせるエンジニアを沢山増やしたい。

【PR】ご意見、感想などは是非、mstdn.fmのローカルタイムラインでお聞かせください