Programming language feature agglomeration

Feature-creep is a well-known phenomenon in software systems. In this paper, we argue that feature-creep also occurs in the domain of programming languages. Recent languages are more expressive than earlier languages. However recent languages generally extend rather than replace the syntax (sometimes) and semantics (almost always) of earlier languages. We demonstrate this trend of agglomeration in a sequence of languages comprising Pascal, C, Java, and Scala. These are all block-structured Algol-derived languages, with earlier languages providing explicit inspiration for later ones. We present empirical evidence from several language-specific sources, including grammar definitions and canonical manuals. The evidence suggests that there is a trend of increasing complexity in modern languages that have evolved from earlier languages.

[1]  Bjarne Stroustrup,et al.  A history of C++: 1979–1991 , 1993, HOPL-II.

[2]  James Gosling Java : an Overview , 2022 .

[3]  Martin Odersky,et al.  Programming in Scala , 2008 .

[4]  Martin Odersky The Scala experiment: can we provide better language support for component systems? , 2006, POPL '06.

[5]  Niklaus Wirth,et al.  Pascal User Manual and Report , 1991, Springer New York.

[6]  Brian W. Kernighan and Dennis M. Ritchie,et al.  “The C Programming Language”, 2nd Edition, Pearson Education, 1988. , 2015 .

[7]  Jeffrey Overbey,et al.  Refactoring and the evolution of Fortran , 2009, 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering.

[8]  James Gray Interview with Guido van Rossum , 2008 .

[9]  Murray Hill,et al.  Why Pascal is Not My Favorite Programming Language , 1981 .

[10]  Ali Mili,et al.  An empirical study of programming language trends , 2005, IEEE Software.

[11]  Shirley Dex,et al.  JR 旅客販売総合システム(マルス)における運用及び管理について , 1991 .

[12]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[13]  Yvonne Koch,et al.  Javascript The Good Parts , 2016 .

[14]  Y. N. Singh,et al.  Kava: an overview. , 1992, Journal of ethnopharmacology.

[15]  Jozef Gruska,et al.  Complexity and Unambiguity of Context-Free Grammars and Languages , 1971, Inf. Control..

[16]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[17]  Jan Vitek,et al.  An analysis of the dynamic behavior of JavaScript programs , 2010, PLDI '10.

[18]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[19]  Ken Arnold,et al.  Java(TM) Programming Language, The (4th Edition) , 2005 .

[20]  Guy L. Steele,et al.  Growing a Language , 1999, High. Order Symb. Comput..