Cargando…

Expansion and evolution of the R programming language

Languages change over time, driven by creation of new words and cultural pressure to optimize communication. Programming languages resemble written language but communicate primarily with computer hardware rather than a human audience. I tested whether there were detectable changes over time in use...

Descripción completa

Detalles Bibliográficos
Autor principal: Staples, Timothy L.
Formato: Online Artículo Texto
Lenguaje:English
Publicado: The Royal Society 2023
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10090872/
https://www.ncbi.nlm.nih.gov/pubmed/37063989
http://dx.doi.org/10.1098/rsos.221550
_version_ 1785023049339240448
author Staples, Timothy L.
author_facet Staples, Timothy L.
author_sort Staples, Timothy L.
collection PubMed
description Languages change over time, driven by creation of new words and cultural pressure to optimize communication. Programming languages resemble written language but communicate primarily with computer hardware rather than a human audience. I tested whether there were detectable changes over time in use of R, a mature, open-source programming language used for scientific computing. Across 393 142 GitHub repositories published between 2014 and 2021, I extracted 143 409 288 R functions, programming ‘verbs’, pairing linguistic and ecological analyses to detect change to diversity and composition of functions used over time. I found the number of R functions in use increased and underwent substantial change, driven primarily by the popularity of the ‘tidyverse' collection of community-written extensions. I provide evidence that users can change the nature of programming languages, with patterns that match known processes from natural languages and genetic evolution. In R, there appear to be selective pressures for increased analytic complexity and R functions in decline that are not yet extinct (extinction debts). R's evolution towards the tidyverse may also represent the start of a division into two distinct dialects, which may impact the readability and continuity of analytic and scientific inquiries codified in R, as well as the language's future.
format Online
Article
Text
id pubmed-10090872
institution National Center for Biotechnology Information
language English
publishDate 2023
publisher The Royal Society
record_format MEDLINE/PubMed
spelling pubmed-100908722023-04-13 Expansion and evolution of the R programming language Staples, Timothy L. R Soc Open Sci Computer Science and Artificial Intelligence Languages change over time, driven by creation of new words and cultural pressure to optimize communication. Programming languages resemble written language but communicate primarily with computer hardware rather than a human audience. I tested whether there were detectable changes over time in use of R, a mature, open-source programming language used for scientific computing. Across 393 142 GitHub repositories published between 2014 and 2021, I extracted 143 409 288 R functions, programming ‘verbs’, pairing linguistic and ecological analyses to detect change to diversity and composition of functions used over time. I found the number of R functions in use increased and underwent substantial change, driven primarily by the popularity of the ‘tidyverse' collection of community-written extensions. I provide evidence that users can change the nature of programming languages, with patterns that match known processes from natural languages and genetic evolution. In R, there appear to be selective pressures for increased analytic complexity and R functions in decline that are not yet extinct (extinction debts). R's evolution towards the tidyverse may also represent the start of a division into two distinct dialects, which may impact the readability and continuity of analytic and scientific inquiries codified in R, as well as the language's future. The Royal Society 2023-04-12 /pmc/articles/PMC10090872/ /pubmed/37063989 http://dx.doi.org/10.1098/rsos.221550 Text en © 2023 The Authors. https://creativecommons.org/licenses/by/4.0/Published by the Royal Society under the terms of the Creative Commons Attribution License http://creativecommons.org/licenses/by/4.0/ (https://creativecommons.org/licenses/by/4.0/) , which permits unrestricted use, provided the original author and source are credited.
spellingShingle Computer Science and Artificial Intelligence
Staples, Timothy L.
Expansion and evolution of the R programming language
title Expansion and evolution of the R programming language
title_full Expansion and evolution of the R programming language
title_fullStr Expansion and evolution of the R programming language
title_full_unstemmed Expansion and evolution of the R programming language
title_short Expansion and evolution of the R programming language
title_sort expansion and evolution of the r programming language
topic Computer Science and Artificial Intelligence
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10090872/
https://www.ncbi.nlm.nih.gov/pubmed/37063989
http://dx.doi.org/10.1098/rsos.221550
work_keys_str_mv AT staplestimothyl expansionandevolutionoftherprogramminglanguage