そのやり方では生産性は上がらない!

生産性の高い言語とは? 今回はプログラミング言語の生産性に焦点を当ててみます。生産性の向上を目指す時、言語は何を選べば良いでしょうか。生産性が高いことは言語のメリットの1つのとなるため、最近よく使われる言語はどれも生産性の向上を考慮しています。よって、それぞれの言語の持つ生産性の方向性を考えて、開発

中村 悟

2008年11月17日 20:00

生産性の高い言語とは?

 今回はプログラミング言語の生産性に焦点を当ててみます。生産性の向上を目指す時、言語は何を選べば良いでしょうか。生産性が高いことは言語のメリットの1つのとなるため、最近よく使われる言語はどれも生産性の向上を考慮しています。よって、それぞれの言語の持つ生産性の方向性を考えて、開発に合うものを選択することになります。言語にはそれぞれ特徴があるため、一概に順位を付けることはできませんが、今回は、4つの言語をピックアップしてそれぞれの生産性についてみてみます。

 1つ目がJavaです。Javaはクライアントアプリケーションや大規模サーバーの構築、携帯電話のアプリケーションなど、C言語の代替としても幅広く使われている言語です。C言語に比べると、プラットホーム依存のコードが必要ないことや、メモリ管理の煩雑性がないことから、より少ない時間でバグの少ない高品質な開発ができると言われています。コンパイル型言語であることや、依存関係の解決など、LL言語に比べると手間になる部分もありますが、EclipseのようなIDEを使うことで、対処できるようになっています。

 2つ目がPerlです。Perlは多くのWebアプリケーションで使われている言語であり、コマンドラインツールとしてもよく利用されます。インタプリタ型言語であるため、書けばすぐに実行できます。Perlは正規表現を埋め込みで利用できることから、テキスト処理に向いており、シェルスクリプトよりもスマートなコマンドラインツールを書くことができますし、テキスト処理が多いWebサービスの構築にも向いています。また、CPANという巨大なライブラリ群があることも魅力です。自作せずに信頼性の高いライブラリを利用できることは、その言語の生産性に大きく影響します。

 3つ目がPHPです。PHPはWebアプリケーションの構築用に作られた言語です。今ではさまざまな機能を実装していますが、もともとはテンプレートエンジンとして開発された経緯もあり、通常のテキストファイルにプログラムを埋め込むという形式をとっています。そのため、HTMLと非常に親和性が高く、複雑な処理が必要なければ、Webサイトを開発するのに高い生産性を期待できます。最近ではPHPで使えるWebフレームワークが活発に開発されているため、大規模サイトの開発でも選択肢として考えられるようになりました。

 4つ目がRubyです。Rubyはシンプルな記述ができるオブジェクト指向言語として、高い生産性を発揮できると注目されています。Ruby on Railsの登場により、高速にWebアプリケーションを開発できると認知されましたが、Ruby自体はWeb専用言語ということはなく、オブジェクト指向による再利用性やテキスト処理も強力です。現状ではRubyを業務レベルで扱える人材を確保することがほかの言語よりも難しいかもしれませんが、今後期待されている言語の1つです。

別の言語に変更する場合の注意

 現状の開発言語から、より高い生産性が期待できるプログラミング言語に変更することがあります。筆者自身もAccessのVBAアプリケーションやクライアントサーバーシステムをJavaのWebアプリケーションに移行した経験がありますが、より生産性が高い言語に変更しようとしてもうまくいかない場合があるので注意が必要です。

 大きな問題になるのが、設計の差異です。それぞれの言語にはベストな設計がありますし、仕様の変更や機能の追加などで複雑な設計になってしまっているシステムもあります。つまり、言語を変更するということは、システムの設計も変更するということになります。もし、設計を変更できないのであれば、それは言語の翻訳でしかなく、高い生産性は期待することはできません。前向きな生産性向上の目的であれば、設計を見直すことは重要なポイントです。

 開発メンバーがそのままスムーズに別の言語を習得できるかというのも大きな問題です。言語が変われば開発環境や実行環境など状況は一変します。言語の変更には十分な移行期間が必要です。外部で利用しているアプリケーションの対応状況などがネックになることもあるため、事前調査も必須になります。

 高い生産性を得るために、新しい技術を使って古いシステムを作り直したくなることがありますが、そのために必要な準備を怠らないようにして、慎重に検討しなくてはなりません。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30