はじめに
僕は最近「コイツ良いな!将来伸びそうだな!」って思った若い人とプログラミングのスキルを上げるサークル活動のようなことをしています(彼らの将来を妄想すると酒がうまいです)。そこでやったある日のことを時系列で軽く残しておこうと思います。
みんなが気になっていたこと「RailsとかPHPとかあるけどどう違うの?何がいいの?」
言葉の粒度が整っていないのも実は後でイロイロと話が出てくるのですが、とにかく言語、フレームワーク、環境のような事に関する理解が浅い時にはそれがどうして良いのかとか、どうやって選ぶものなのかなど気になることのようです。なので、一回これをお題にしてワークショップのような事をやろうと決めました。
セミナー形式にすると僕が一方的に話をしてわかった気になってわかっていないという状況になりそうな気がしたので、ワークショップです。手を動かしてもらう形です。
5月のよく晴れた暑い日に皆で会議室に集まってやりました。手元の日付だと5月25日だったようです。
ワークショップ
どんなサービスで使われてる?
まず集まったメンバー3人にお題として「Ruby(Rails)やPHPはどこで使われている?どんなサービスで使われているか調べよう」という課題を出しました。殆どの人がすぐにGoogleを開いて検索を始める、という流れで、引っかかった情報をFBグループにどんどん貼ってもらう、という作業にしました。例えば以下の様なサイトから探し当てたりしていました。
このへんでは「探せばもっと出てきそう感はあるし、どっちがどうということもあまり言えない雰囲気」を共有しました。PHPからRailsに移行したような話はどこかでも見たねという話はしていたと思います。
※よく見る有名なサービスとしてWordpressのような名前があったので強調しておきました(あとの会話のためでもあります)。
どんな会社で使われている?
次はサービスではなくて、会社だとどうだろうという切り口です。この課題は少し面白くて、最初なかなかGoogleで探せない様子でしたが「どういう時だったら会社が自社の技術を明記しているか考えてみよう」というような投げかけから就職情報にあたる流れになったのは良かったです。こうやって就職サイトを見るとどちらも結構ある様子でした。名前を知っている会社も知らない会社もどちらもありそうなので、特別差異が見いだせてはいない状況でした。
クラウドソーシングでは?
次に、クラウドソーシングの界隈ではどうだろうか、という課題を行いました。LancersとCrowdworksを開いて案件を探してみるわけです。ここで出たのが「Rails無いね〜」「PHPは結構ある」というような言葉です。初めてわかりやすい差が出た様子です。最初に調べたサービスの中にWordpressがあったりしたので、その名前もざっと見てもらったのですがチョイチョイ出てくる、ということでした。
ここまでの軽いまとめ
- 世の中に出ているサービスではどちらもイロイロありそう。
- 自社サービスを運営しているような会社ではどちらもそれなりに使っていそう。
- クラウドソーシングではPHPが多い。
だいぶたどり着いてきたので、このへんから僕が思っていることをかぶせるようしました。
前提
- どちらかが圧倒的に優れていたりするとすれば、皆その優れた方を使うはず。そうなっていないとうことは、特性が違っていたり、トレードオフだったりするのだろうと考えるのが自然ですよね、ということを枕にしました。
- 僕はどちらもそれぞれに良いところがあると思っているので、どちらかに肩入れする気もしませんし、この下の文章でどちらかに肩入れしているように見えたら、それはきっと僕の文章力の問題です。
世間的な認知のされ方(?)
- 僕のフリーランスの経験からしても案件としてPHPは多かったので、その点については確からしい感覚がある、ということ。
- ITのわからない人が何かしようと思うと、WordpressやECCubeは二大巨頭になるようです(大抵ブログを自分でやりたいか、商品をWEBで売りたいかしたいという要望だからだと思います)。
- というわけで、フリーランスの人に、WordpressやECCubeをカスタマイズしてほしいという依頼はかなり頻繁に出てきます。このあたりがCrowdworksやLancersで確かめたかったことです。
- どちらもPHPで作られていて、そのせいで一般の人もPHPという単語だけは知っている場合があります。PHPの認知度は比較的高い、ということでしょうか。
- スタートアップの方向を見ると、Wantedlyの仲さんやStreetAcademyの藤本さんのように、起業したいと思った人がRailsでサービスを一人で作り始めて、実際に人に知られるサービスまで成長させたというようなある種の「神話」があるということ。
- 数年前の翻訳記事だと思うのですが「それ、Railsでできるのか?」と投資家が言うとか言わないとかいうような話があったらしいということ(本当かどうかは知りませんが)。
フレームワークについて
- PHPは様々なフレームワークが乱立していて、同じPHPの界隈の中でも様々な開発の仕方をしているということ。
- 反面、RubyでWEBの開発をするとなったら、ほとんどがRailsになるので、WEBという切り口で考えると、Rubyと言ったらRailsだろうと考えて概ね当たっているだろうということ。
- それもあって「PHPとRails」のような、違った粒度なのに一緒くたに思わず扱ってしまったりすることがある、ということ。
文化について
- Rubyは言語やフレームワークの仕様変更を比較的積極的に受け入れてきた文化がある様子です。なので、バージョンが上がると上手く動かないようなこともあったりします。
- 理想的な作り方や、先進的な考え方を積極的に取り込む土壌があるとも言えると思います。
- PHPはそれに比べると保守的なやり方をしていて、古いバージョンのコードも結構新しい環境で動作したりします。
- PHPの方が昔のやり方が通用することもあり、情報が豊富だったりします。
- 「調べる時に、バージョンを入れて検索したりします?」という質問を受けたのですが、まさにその通りでRailsで何か調べる時は"Rails4"というようにバージョンを含めて検索することも私は多いです。
- Rubyでgemを探すとかなりイロイロなモノがあって、利用すると手を動かす量を減らせます。PHPはcomposerがもう少し定着すれば雰囲気は変わってくるかもしれません。
実行環境について
- PHPはいわゆるLAMP環境で動くので、XAMPPやMAMPのような手軽なローカルの実行環境があったりするということ。VPSなどで環境を作るのも比較的やりやすいということ。
- ホスティングなどでとりあえずPHPが動く状態のものもかなりありますね。
- Railsの実行環境は移り変わりもLAMPに比べると激しいですし、その実行環境を作るのが意外に大変な場合もあったりするようです(昔Passengerの環境がなかなかうまく構築できない話があったりしたのですが、最近では違うかもしれません)。
- HerokuにRailsの環境があったりするので、ある種の割り切りができればRails&Herokuは手軽な武器になり得ること(最近はPHPも対応するようになってきたのでこの差は縮まってきていますね)。
たとえばこんな考え方ができそう?
- フリーランスになったりして、受託でつぶしがきくような方向を選ぶならPHPがやりやすそうです。それも生のPHPができて、WordpressやECCubeのカスタマイズなんかを覚えていると生きやすいかもしれません(少なくとも、これまでは)。
- サービス自分で作って起業してやろうと思うなら、先人の神話に乗っかってRailsでやってみるのもありでしょう。
- ぶっちゃけ、好きなの使え。好みがあるなら好きな言語で仕事できる方が楽しいよね!
おしまいに
僕が認識していることと、ワークショップの結果とを絡めて皆でイロイロと会話したのですが、誤った認識をしていたり偏見が混ざっていたりするかもしれません。ご指摘いただければ幸いです。間違ってたらメンバーに訂正を入れたいなと思っています。