An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl for a search/string-processing program

implementations of the same set of requirements, created by 74 different programmers in vari- ous languages, are compared for several properties, such as run time, memory consumption, source text length, comment density, program structure, reliability, and the amount of effort required for writing them. The results indicate that, for the given programming problem, "scripting languages" (Perl, Python, Rexx, Tcl) are more productive than conventional languages. In terms of run time and memory consumption, they often turn out better than Java and not much worse than C or C++. In general, the differences between languages tend to be smaller than the typical differences due to different programmers within the same language.

[1]  G. A. Miller THE PSYCHOLOGICAL REVIEW THE MAGICAL NUMBER SEVEN, PLUS OR MINUS TWO: SOME LIMITS ON OUR CAPACITY FOR PROCESSING INFORMATION 1 , 1956 .

[2]  G. A. Miller The magic number seven, plus minus two , 1956 .

[3]  Claude E. Walston,et al.  A Method of Programming Measurement and Estimation , 1977, IBM Syst. J..

[4]  Edsger W. Dijkstra,et al.  Go To Statement Considered Harmful , 2022, Software Pioneers.

[5]  John E. Gaffney,et al.  Software Function, Source Lines of Code, and Development Effort Prediction: A Software Science Validation , 1983, IEEE Transactions on Software Engineering.

[6]  Charles A. Behrens,et al.  Measuring the Productivity of Computer Systems Development Activities with Function Points , 1983, IEEE Transactions on Software Engineering.

[7]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[8]  G. ALLEN,et al.  Raw data , 1989, Nature.

[9]  David A. Scanlan Structured flowcharts outperform pseudocode: an experimental comparison , 1989, IEEE Software.

[10]  Sallie M. Henry,et al.  On the Relationship Between the Object-Oriented Paradigm and Software Reuse: An Empirical Investigation , 1992 .

[11]  R. Tibshirani,et al.  An introduction to the bootstrap , 1993 .

[12]  James C. Spohrer,et al.  Empirical Studies of Programmers: Fifth Workshop , 1993 .

[13]  Paul Hudak,et al.  An Experiment in Software Prototyping Productivity , 1994 .

[14]  R. Nosofsky,et al.  Seven plus or minus two: a commentary on capacity limitations. , 1994, Psychological review.

[15]  Alireza Ebrahimi,et al.  Novice programmer errors: language constructs and plan composition , 1994, Int. J. Hum. Comput. Stud..

[16]  Douglas B. Bock,et al.  Third and fourth generation language productivity differences , 1995, CACM.

[17]  Michael Philippsen,et al.  Imperative Concurrent Object-Oriented Languages , 1995 .

[18]  Watts S. Humphrey,et al.  A discipline for software engineering , 2012, Series in software engineering.

[19]  Rachid Guerraoui,et al.  Concurrency and distribution in object-oriented programming , 1998, CSUR.

[20]  Les Hatton,et al.  Does OO Sync with How We Think? , 1998, IEEE Softw..

[21]  Lutz Prechelt,et al.  A controlled experiment on the effects of PSP training: Detailed description and evaluation , 1999 .

[22]  Edsger W. Dijkstra,et al.  Go to Statement Considered Harmful (Reprint) , 2002, Software Pioneers.