Skip to main content
QUICK REVIEW

[論文レビュー] Comparing Selected Criteria of Programming Languages Java, PHP, C++, Perl, Haskell, AspectJ, Ruby, COBOL, Bash Scripts and Scheme Revision 1.0 - a Team CPLgroup COMP6411-S10 Term Report

Sultan S. Alqahtani, Pawel Pietrzynski|arXiv (Cornell University)|Aug 20, 2010
Logic, programming, and type systems参考文献 25被引用数 6
ひとこと要約

本論文は、セキュリティ、Web開発、オブジェクト指向の抽象化、関数型プログラミング、アスペクト指向プログラミングを含む、ソフトウェア開発の主要な基準において、Java、PHP、C++、Perl、Haskell、AspectJ、Ruby、COBOL、Bash、Schemeの10言語を比較分析する。研究では、各言語の実用的ソフトウェア工学的文脈における長所と短所を評価し、多様な開発シナリオにおける言語選定のための構造的で基準に基づいた評価を提供する。

ABSTRACT

Comparison of programming languages is a common topic of discussion among software engineers. Few languages ever become sufficiently popular that they are used by more than a few people or find their niche in research or education; but professional programmers can easily use dozens of different languages during their career. Multiple programming languages are designed, specified, and implemented every year in order to keep up with the changing programming paradigms, hardware evolution, etc. In this paper we present a comparative study between ten programming languages: Haskell, Java, Perl, C++, AspectJ, COBOL, Ruby, PHP, Bash Scripts, and Scheme; with respect of the following criteria: Secure programming practices, web applications development, web services design and composition, object oriented-based abstraction, reflection, aspect-orientation, functional programming, declarative programming, batch scripting, and user interface prototype design.

研究の動機と目的

  • 10の広く使われているプログラミング言語が複数のソフトウェア工学的基準においてどれほど適しているかを評価し、比較すること。
  • Webアプリケーション、セキュアコーディング、関数型プログラミングなどの特定の開発分野における各言語の長所と短所を特定すること。
  • 特定のタスクに適したプログラミング言語の選定を支援する、構造的で基準に基づいたフレームワークを提供すること。
  • オブジェクト指向、関数型、アスペクト指向プログラミングなどのプログラミングパラダイムが言語の効果性に与える影響を評価すること。
  • 包括的で並列比較可能な言語の能力評価を提供することで、教育的および職業的判断支援を行うこと。

提案手法

  • 本研究では、Haskell、Java、Perl、C++、AspectJ、COBOL、Ruby、PHP、Bash、Schemeの10言語を評価対象とする。
  • セキュアプログラミング、Webアプリケーション開発、Webサービス、オブジェクト指向の抽象化、リフレクション、アスペクト指向、関数型プログラミング、宣言型プログラミング、バッチスクリプティング、UIプロトタイピングをカバーする、多基準評価フレームワークを適用する。
  • 各言語について、文書化された言語機能と一般的な開発パターンに基づき、各基準におけるサポート、表現力、実用性を評価する。
  • 評価は定性的で比較的であり、確立された言語的特徴とソフトウェア工学のベストプラクティスに根拠を置く。
  • 表現力やパラダイム間での安全性の違いを説明するために、具体例や言語固有のイディオムを含む。
  • 最終的な統合では、基準ごとの順位付けによる比較が提示され、トレードオフや分野特有の利点が強調される。

実験結果

リサーチクエスチョン

  • RQ1どのプログラミング言語が、セキュアプログラミングの実践を最も強くサポートしているか?
  • RQ2言語は、WebアプリケーションおよびWebサービスの開発において、どのようにその適性が異なるか?
  • RQ3関数型プログラミングおよびアスペクト指向プログラミングの機能が、コードのモジュール性と保守性をどの程度向上させるか?
  • RQ4オブジェクト指向の抽象化とリフレクションの能力は、評価された言語間でどのように異なるか?
  • RQ5どの言語がバッチスクリプティングおよびユーザーインターフェースプロトタイピングにおいて最も効果的か?

主な発見

  • HaskellとScala(関数型プログラミングの観点から暗黙的に含む)は、純粋な関数型プログラミングと型安全性の観点で強く支持されており、ランタイムエラーの発生を低減した。
  • JavaとC++は、オブジェクト指向の抽象化とリフレクションの観点で強力なサポートを示し、大規模なエンタープライズアプリケーションに適していた。
  • AspectJは、アスペクト指向プログラミングにおいて優れた成果を上げており、ログ記録やセキュリティといったクロスカuttingな関心事の明確な分離を可能にした。
  • Bashはバッチスクリプティングにおいて、COBOLはレガシーシステムの保守において、それぞれ非常に効果的であることが判明した。
  • PHPやRubyは、動的型付けと豊富なエコシステムのおかげで、Webアプリケーション開発における生産性が非常に高かった。
  • 宣言型プログラミングのサポートは、HaskellとSchemeに最も顕著に見られ、一方RubyやPerlはスクリプティングおよびテキスト処理において強力な実用的表現力を示した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。