Skip to main content
QUICK REVIEW

[논문 리뷰] Expansion and evolution of the R programming language

Timothy L. Staples|arXiv (Cornell University)|2022. 08. 26.
Computational and Text Analysis Methods인용 수 4
한 줄 요약

이 연구는 2014~2021년 동안 360,321개의 GitHub 레포지토리(540만 개의 R 스크립트)를 대상으로 R 프로그래밍 언어의 어휘적 진화를 분석하였으며, 1억 6,800만 건의 함수 호출을 기반으로 한다. 연구 결과, R는 tidyverse 생태계의 부상으로 인해 빠른 어휘적 다양화를 겪었으며, 자연어와 유사한 사용자 중심의 문화적 요로 인해 프로그래밍 언어의 진화가 이뤄질 수 있음을 보여주며, 이는 코드 가독성과 장기적인 소프트웨어 지속 가능성에 중요한 영향을 미친다.

ABSTRACT

Change in language use is driven by cultural forces; it is unclear whether that extends to programming languages. They are designed to be used by humans, but interaction with computer hardware rather than a human audience may limit opportunities for evolution of the lexicon of used terms. I tested this in R, an open source, mature and commonly used programming language for statistical computing. In corpus of 360,321 GitHub repositories published between 2014 and 2021, I extracted 168,857,044 function calls to act as n-grams of the R language. Over the eight-year period, R rapidly diversified and underwent substantial lexical change, driven by increasing popularity of the tidyverse collection of community packages. My results provide evidence that users can influence the evolution of programming languages, with patterns that match those observed in natural languages and reflect genetic evolution. R's evolution may have been driven by increased analytic complexity, driving new users to R, creating both selective pressure for an alternate lexicon and accompanying advective change. The speed and magnitude of this change may have flow-on consequences for the readability and continuity of analytic and scientific inquiries codified in R and similar languages.

연구 동기 및 목표

  • 프로그래밍 언어가 자연어와 유사하게 사용자 중심의 문화적 요로 인해 어휘적 진화를 겪는지 조사하기.
  • 성숙한 오픈소스 프로그래밍 언어 내에서 함수 사용 및 패키지 채택의 변화가 언어 진화의 일반적 패턴을 어떻게 반영하는지 평가하기.
  • 특히 tidyverse를 포함한 커뮤니티 개발 패키지가 시간이 지남에 따라 R의 어휘적 환경을 어떻게 재편했는지 평가하기.
  • 프로그래밍 언어의 진화가 문법에 의해 제약을 받는지, 아니면 사용자 선호도와 실용성에 의해 이뤄지는지 탐구하기.
  • 빠른 어휘적 변화가 과학 소프트웨어의 코드 지속성, 가독성, 장기적 유지보수에 미치는 영향을 탐색하기.

제안 방법

  • 2014년 1월부터 2021년 12월까지 게시된 모든 R 스크립트를 수집하기 위해 GitHub API를 사용한 웹 스크래핑.
  • 텍스트 파싱을 통해 함수 호출을 추출하여, 여는 괄호 '(' 이전의 모든 함수 이름을 1-그램 언어 단위로 간주하기.
  • 구어어휘학에서 동사의 기능적 등가로 간주되는 세 가지 일반적인 문법 연산자('%in%', '[]', '%>%')를 포함하기.
  • 각 함수가 연결된 R 패키지(기본 R 및 커뮤니티 패키지 포함)를 매핑하여 사용 추세를 추적하기.
  • 시간대별로 함수 호출 빈도를 집계하여 어휘 다양성 및 어휘 구성의 변화 분석하기.
  • 언어학적 및 생태학적 프레임워크를 적용하여 R 내 어휘 전환, 다양성 및 혁신 패턴을 해석하기.

실험 결과

연구 질문

  • RQ12014년에서 2021년 사이에 R 함수의 다양성과 구성이 레포지토리 간 및 레포지토리 내에서 유의미하게 변화했는가?
  • RQ2커뮤니티 개발 패키지, 특히 tidyverse의 사용이 R 함수 사용에 얼마나 보완되거나 대체되었는가?
  • RQ3문화적 이동 또는 선택적 압력과 같은 언어 진화 메커니즘을 반영하는 함수 및 패키지 사용의 감지 가능한 추세가 있는가?
  • RQ4파이프 연산자 '%>%'와 같은 새로운 문법 구조의 도입은 R 내에서 더 넓은 문법적 및 어휘적 진화를 어떻게 반영하는가?
  • RQ5사용자 중심의 혁신이 자연어 진화에서 관찰되는 패턴(어휘적 혁신 및 수렴)과 얼마나 유사한가?

주요 결과

  • 2014년에서 2021년 사이에 R은 빠른 어휘적 다양화를 경험하였으며, 360,321개의 레포지토리에서 540만 개의 R 스크립트에서 추출된 1억 6,800만 건 이상의 함수 호출을 기록하였다.
  • tidyverse 생태계의 부상이 어휘적 변화의 주요 원동력이었으며, 그 기능들은 R에서 가장 자주 사용되는 함수로 부상하여 기본 R 기능을 초월하는 인기를 얻었다.
  • 파이프 연산자 '%>%'는 처음에는 tidyverse의 혁신이었지만, 2014년에서 2021년 사이에 사용 빈도가 12배 증가하였으며, 2021년 기준 20%의 레포지토리에서 사용되었으며, 네 번째로 인기 있는 함수로 랭크되었다.
  • 2021년에 가장 자주 사용된 함수의 90% 이상이 커뮤니티 패키지에서 유래하였으며, 이는 기본 R에서 외부 개발 도구로의 전환을 시사한다.
  • 연구는 R에서 사용자 중심의 어휘적 진화에 강력한 증거를 발견하였으며, 자연어에서 관찰되는 문화적 수렴 및 사용성에 대한 선택적 압력과 유사한 패턴을 보였다.
  • 함수 문법과 괄호 사용 등 핵심 문법의 안정성에도 불구하고, 파이프링과 같은 문법 혁신이 급속도로 확산되어 사용자 수요에 따라 문법 자체가 진화할 수 있음을 시사한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.