スクリーンショット_2017-06-12_9.13.34

改めてプログラミング言語を比較してみた

最近改めてシステム開発をする上で、どのプログラミング言語を選択すべきか?を考える機会があったのでプログラミング言語を比較してみた。

選んだ言語は、Java/PHP/Rubyの3つ。
(フレームワークによって観点が変わるところもあるかと思うが、その点は目をつぶっていただきたい。)

観点としてはQCD(Quality/Cost/Delivery)が良いかなと思うので、この3つの点で比較してみる。

Quality(品質)

まずは品質観点を考えてみる。
基幹系を含め品質を求められるサービスの実績を考えると、Javaが一歩抜け出しているのではないだろうか。
アプリケーション層としての処理パフォーマンスをみても、Javaはスケーラビリティの確保がしやすい言語だと思う。
現に、Twitter社がRubyからJavaに切り替えて、トラフィックを乗り越えてきた。

Cost(コスト)

次にエンジニアの調達観点からプログラミング言語を考えてみる。
調達観点から考えると、エンジニア単価や人口を考えると、PHPエンジニアが一番確保しやすい。
ただし学習コストも低い分、あまりスキルの高くないエンジニアも多く、見極めが必要なプログラミング言語だ。

但しベトナムのオフショア開発を調べてみると、ベトナムのエンジニア比率は、
Java:PHP:Ruby = 40%:40%:15%
だそうだ。

Delivery(開発生産性)

サービスとしての開発生産性が高いのはやはりRubyだろう。Javaと比べて開発生産性が10倍高いという話もあるが、コーディング量を圧倒的に少なく実装できるのは魅力的だ。
スタートアップで、まずはサービスを試してみるというようなものに関しては、Rubyが第一候補となる。

まとめ

まとめると、
・最初からある程度のスケーラビリティを求められるなら、Java
・コストパフォーマンスを考えて構築したいなら、PHP
・開発生産性と継続的インテグレーションしないなら、Ruby
ということになるだろうか。

プログラミング言語問題は、ROI(投資対効果)の観点からみても難しい。
今度作る新しいサービスは、どの観点を重視して開発していくのか、改めて悩ましい課題と感じた。

そして、僕のTwitterアカウントは @daisakku で、テクノロジー・マーケティング・経営などをつぶやいています。
ぜひフォローしてもらえたら嬉しいです!

サポート頂けたら、意味のあるnoteだったのだと励みになります。 サポート頂いたお金は、コミチの漫画家のサポートに利用させて頂きます。