Line 1: Error: Invalid Blog('by Esehara' )

または私は如何にして心配するのを止めてバグを愛するようになったか

>> Zanmemo

あと何かあれは 「esehara あっと じーめーる」 か @esehara まで

スタートアップにとって、プログラミング言語の使用者数が多いということは問題なのだろうか?

 最近、とあるスタートアップのお手伝いを細々と続けている。自分は全く分からないのだけれども、ベンチャーの人材獲得が厳しいらしい、みたいな記事を読んでいた。そこであげられていた言語は、PHPとRubyだったが、自分はPythonを使っていて、結構仕事を探すのに苦労したりしていた。当然のことながら、自分のスキルセットが余りにもWeb向きではないし、さすがにポテンシャル云々とも言ってられない歳ではあるので、仕方ないかなと思いながら、今のベンチャーで、いろんな雑用的な仕事を行ったりしている。

 で、そこのベンチャーで「Pythonの仕事なかなかないんですよねー」みたいな話をしたら、「あれ、Pythonの仕事、至る所にあるよ」と言われて、あれ、これって何かミスマッチが起きているのかなと思ったりもした。お金は寂しがり屋であるから、お金のある人のところにいくんやで、という話があったか、仕事も「元々仕事が多い人」のところに集まるんだろうなあ、まあ自分は技術者としては、未熟で無能だからなあと思いながら聞いたりしていた。

 そういう冗談はともかくとして、そもそも「○○の言語を使える人いませんかねー」といったときに、そういう企業を探すのことのほうが難しい。大手カンファレンスだったりすると、Jobボードというのが設置されていて、技術者募集みたいな張り紙がされていたりするけれども、それはやはり「選ばれる側」のものであって、「選ばれようとする側」のものではない。

 転職側から考えた場合として、まずRuby、Pythonといったような言語を使ってスタートアップしているという会社を見つけにくいという問題がある。情報中毒患者の俺ですら難儀するわけだから、普通の人なんてもっと苦労する筈だし、さらにいうと、自分のスキルがマッチするかどうかもわからない、という状態だと、自分が望めそうな企業にたどり着くのがそもそも難しいよね、と思う。

 あと、現状手伝っているスタートアップについて、ちょっと思うこと。

 確かに人の多さであるとか、使える人の多さでいうならば、PHPのほうがいいかもしれない。しかし、「ユーザーに価値を素早く提供する」「継続的にインクリメントして機能を増やしていく」といった場合、コードの汚さであったり、テストが無いとか、あるいはサーバーの構成がめちゃくちゃでわからないとか、そういうところで割と足をすくわれてしまうんじゃないか、と思う。正直、サーバーが何度か落ちて、復旧を手探りでやってあちらこちらがエラーになるなんてことが数回あったりしていて、そういう情況におかれると、自分もメンタルが強いほうではないから、落ち込んだりする。

 だとすると、自分はPHPよりもRubyのほうを採用するメリットが、もし技術者が多くないとしても、ある。僕はPython使いではないから、どちらの技術者のことについて、よくわからない。しかし、少なくともRubyは、テスト駆動であったり、あるいはリファクタリングであったり、そういう情報が整っている。そういう雰囲気だと感じている(もちろん、そういう雰囲気が個々人を持っているかどうかは別だけど、でも言語的なポテンシャルはある)。

 なもんだから、確かに受託開発であったりした場合、PHPを選ぶというのは、その規模とかの関係で「人海戦術的に人が確保できるか」という点で選ぶかなとは思うけど、スタートアップだったら、むしろ「このRubyを使っている人達は何をもってプログラミングをする人達なのだろう?」とか、あるいは「Scalaだったらどういったトピックに注目しているのだろうか」とか考える。YammerがScalaからJavaに切り替えたのは、人間をスケールさせないといけないフェーズになったからだろう。とはいえ、SoundCloudやpaper.liはまだClojureを使っているわけで、大抵の言語のキャパシティを超えるまえに、そのサービスが潰れるのが先だと思う。

 俺ごときが「経営判断」という言葉を使うのは本気で滑稽だが、ちょっと言うと、確かに最初のプロトタイプというか、ベータの時点では、まずそのサービスが求められているものなのか、ということを調べるために、とりあえずリリースしやすい言語を選ぶというのは戦略としてあるだろう。実際、そういう用途にはPHPも悪くはないと思う。しかし、速度を重視したコードはいつか破綻する。上の意味で。だからどこかのフレーズで、自分たちが使っている言語を綺麗にするという段階は必要だ。

 ある段階で、「綺麗なコードや、適切なテスト、Devopsの導入が、立ち上がり時の速度や、安定感に大きく響くから、そのようなことが出来る技術者をちゃんと確保したい」という認識を持つことは、立派な経営判断だ。それでスケールしなければ、別レイアーの問題で、エンジニアリングの領域からややずれる。しかし、スケールする可能性のある光ったアイデアが、そういう変なところで躓くなら、それはもったいない。

 むしろ、難しいのはスタートアップがスタートアップとして、「ここならjoinしてもよい」というような目立ち方、目立たせ方というものが余りにも少なすぎることだし、そういうのを引き出すのがなかなか大変なのだろう。辛うじてForkwellは頑張っているように見えるけど、正直Pythonで探すのはまだまだ難しいし、例えばWantedlyは、そういう観点から切ることが出来ないという難しさがある。

 そういったわけで、もしかしたら問題は、「スタートアップの転職業界がまだまだ開拓する余地がある」というだけで、それをプログラミング言語の使用者数で計るのは、まだ結論を決めるのが速すぎるのじゃないかなとも思う。

追記 (2013.11.11)

 お叱りの言葉をいただきました。僕自身はちゃんとしたPHPでユニットテストをしながら継続的インテグレーションを廻している技術者は尊敬しているし、またdjangoだろうがRailsだろうがクソみたいなプロダクトもみた。両者を比べた場合、前者を支持する。

 そういう意味では、言語ではないし、ちょっとPHPが悪く見えたように思う。これは僕の書き方が悪かった。RubyよりPHPのほうが生産性が高いと思うなら、胸をはってPHPを採用するべきだ。

 ただ、技術者が多いからという意味でPHPを選ぶのは、スタートアップにとっては悪手だよね、と思うだけだ。そういう人材をスケールさせなければならないスタートアップならわかるし、例えばJoinしてくれる優秀なエンジニアがPHPを選び、PHPのコードを守っていくというのなら、それは全くいいことだと思う。