Plat_Forms: A Web Development Platform Comparison by an Exploratory Experiment Searching for Emergent Platform Properties

Background: For developing Web-based applications, there exist several competing and widely used technological platforms (consisting of a programming language, framework(s), components, and tools), each with an accompanying development culture and style. Research question: Do Web development projects exhibit emergent process or product properties that are characteristic and consistent within a platform, but show relevant substantial differences across platforms or do team-to-team individual differences outweigh such differences, if any? Such a property could be positive (i.e., a platform advantage), negative, or neutral, and it might be unobvious which is which. Method: In a nonrandomized, controlled experiment, framed as a public contest called “Plat_Forms,” top-class teams of three professional programmers competed to implement the same requirements for a Web-based application within 30 hours. Three different platforms (Java EE, PHP, or Perl) were used by three teams each. We compare the resulting nine products and process records along many dimensions, both external (usability, functionality, reliability, security, etc.) and internal (size, structure, modifiability, etc.). Results: The various results obtained cover a wide spectrum: First, there are results that many people would have called “obvious” or “well known,” say, that Perl solutions tend to be more compact than Java solutions. Second, there are results that contradict conventional wisdom, say, that our PHP solutions appear in some (but not all) respects to be actually at least as secure as the others. Finally, one result makes a statement we have not seen discussed previously: Along several dimensions, the amount of within-platform variation between the teams tends to be smaller for PHP than for the other platforms. Conclusion: The results suggest that substantial characteristic platform differences do indeed exist in some dimensions, but possibly not in others.

[1]  Harvey P. Siy,et al.  An experiment to assess the cost-benefits of code inspections in large scale software development , 1995, SIGSOFT '95.

[2]  Mordechai Ben-Menachem,et al.  Writing effective use cases , 2001, SOEN.

[3]  Lutz Prechelt,et al.  An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl for a search/string-processing program , 2000 .

[4]  Jakob Nielsen,et al.  Usability inspection methods , 1994, CHI 95 Conference Companion.

[5]  Lutz Prechelt,et al.  An Empirical Comparison of Seven Programming Languages , 2000, Computer.

[6]  I K SjobergDag,et al.  A Survey of Controlled Experiments in Software Engineering , 2005 .

[7]  Forrest Shull,et al.  Building Knowledge through Families of Experiments , 1999, IEEE Trans. Software Eng..

[8]  Lutz Prechelt,et al.  Plat_Forms 2007: The Web Development Platform Comparison — Evaluation and Results , 2007 .

[9]  Bill Curtis,et al.  By the way, did anyone study any real programmers? , 1986 .

[10]  Tore Dybå,et al.  A systematic review of quasi-experiments in software engineering , 2009, Inf. Softw. Technol..

[11]  Lutz Prechelt Kontrollierte Experimente in der Softwaretechnik , 2001 .

[12]  Adam A. Porter,et al.  Anywhere, Anytime Code Inspections: Using the Web to Remove Inspection Bottlenecks in Large-Scale Software Development , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[13]  M. Kendall,et al.  The Logic of Scientific Discovery. , 1959 .

[14]  Amela Karahasanovic,et al.  A survey of controlled experiments in software engineering , 2005, IEEE Transactions on Software Engineering.

[15]  Alistair Cockburn,et al.  Agile Software Development: The Business of Innovation , 2001, Computer.

[16]  Audris Mockus,et al.  Variability and Reproducibility in Software Engineering: A Study of Four Companies that Developed the Same System , 2009, IEEE Transactions on Software Engineering.

[17]  Gary James Jason,et al.  The Logic of Scientific Discovery , 1988 .

[18]  Lutz Prechelt Plat_Forms -- a contest: The web development platform comparison , 2008, ArXiv.

[19]  Lutz Prechelt,et al.  The 28:1 Grant/Sackman legend is misleading, or: How large is interpersonal variation really? , 1999 .

[20]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[21]  Lutz Prechelt,et al.  Kontrollierte Experimente in der Softwaretechnik - Potenzial und Methodik , 2001 .