改めてプログラミング言語を比較してみた
最近改めてシステム開発をする上で、どのプログラミング言語を選択すべきか?を考える機会があったのでプログラミング言語を比較してみた。
選んだ言語は、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だったのだと励みになります。 サポート頂いたお金は、コミチの漫画家のサポートに利用させて頂きます。