ただふれたものについて書くブログ

あんまり正しくない話を適当に書くブログ

同じ組織で複数の言語を採用するのは良いことなのか

2014年夏、カヤックは、Go言語を積極的に推進していきます。 |ニュース|面白法人カヤック

組織の中で新しいプログラミング言語を採用するというのは、 チャレンジという意味では良いことだけれども、 経験としては、ロクなことがなかったので、 難しい問題だなぁといつも思うわけです。

自分が最初に入った会社はPHPが主で、コアとなる部分はCやC++でした。 新卒でプログラミング経験なんてほとんどなかった身だったので、 ほとんどC,C++はやらなかったです。 ただしそのおかげで、数年はPHPだけを書き続けることができました。

よくPHPは残念な役になるけれど、 わからない人がわからないなりに書けるのはやっぱりすごくて、 最初にプログラミングなんてまともに書いたことない僕が 内定先にアルバイトで入った時にperlCGI作ってみたら ヘッダーのフォーマットについて 一週間くらい悩んだりしてたくらいだったけれど PHPを触ったときにあまりの簡単くらいに 衝撃を覚えたりしていました。

その後に社員数人くらいのベンチャーに転職して、 そこでアプリのAPIサーバーや管理画面をPHPを書いてたのです。 ただ会社が大きくなり、エンジニアが増えてくると PHPに対していくつかの壁ができてきて、 新しくウェブページを作ろうと、 新しい優秀なエンジニアがRailsで書き始めたりしました。 つまりは一種類のDBに複数フレームワークのwapができてしまいました。 これは今にしていればスゴい反省しています。運用が倍になるんですからね

プログラミング言語の分割は、人の分割を起こす

1プログラマーからすれば、 新しい言語や流行りの言語を仕事で使えるのは幸せなことです。 だけど組織レベルで考えると、どうしても分割してしまいます。

ところが上に書いてあるベンチャーを辞めて、 次の会社に入った時、周りはPHPのcode igniterをつかっていました。 ただ新規プロジェクトでそれで色々なチームの話を聞いて、 僕はRailsで行くと決めました。前職と逆の立場になったわけです。

その時は汎用的な技術よりもプロジェクトを まずは立ち上げることを目標にしたのですが、 その分運用のプレッシャーが来たわけです。 だけど、逆に優秀なメンバーが集まってくれたおかげで なんとかプロジェクトを立ち上げることが出来ました。 その後もいくつかのプロジェクトでRuby,Railsを使うようになったのは、 本当に良かったと思ってます。

次の人に繋げられるか

こんな経験をしているので、組織でプログラミング言語の選定で重要なのは、 次の人に繋げられるか な気がしています。厳しく言えば ずっと同じ一部の人が新しい言語を使い続けるのは組織は脆弱だと思います。

そんなわけで、最近Go言語で開発しはじめました。 今までの反省を活かしつつ、次に繋げられるように勉強しなきゃ。