R Calitatea pachetului: Popularitatea pachetului

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

Acesta este blogul două din cinci:

  1. R Calitatea pachetului: Validare și nu numai!
  2. Popularitatea pachetului (acesta)

În postarea noastră anterioară, am introdus cele patru componente care alcătuiesc un scor al pachetului Litmus: documentație, popularitate, calitate codului și întreținere. În această postare, ne vom uita la popularitatea pachetului. Popularitatea pachetului este o măsură interesantă și uneori controversată. În experiența noastră, aceasta stârnește adesea reacții puternice (și de obicei negative). Ideea este simplă: dacă un pachet este utilizat pe scară largă, bug -urile sunt mai susceptibile să fie găsite și fixate, iar dacă întreținătorul se îndepărtează, există o șansă mai mare pe care altcineva va prelua. Desigur, utilizarea ridicată nu înseamnă că un pachet nu are riscuri. Dar popularitatea poate oferi un context util. Luați în considerare acest exemplu:

  • {pkgA}: Extrem de popular și o dependență pentru multe alte pachete.
  • {pkgB}: Foarte puține descărcări și utilizarea minimă.

Într -o situație de genul acesta, {pkgA} Poate oferi mai multă stabilitate în timp, pur și simplu pentru că mai mulți oameni se bazează pe ea. Ea face nu înseamnă asta {pkgA} nu are risc, numai că riscul este mai mic decât {pkgB}.

Toate celelalte lucruri fiind egale, dacă ai avea șaizeci de minute pentru a evalua ambele pachete, ai petrece treizeci de minute pe fiecare sau ai cântări timpul până la pachetul „cel mai puțin popular”?

Este important să rețineți că Pachetele statistice tind să fie mai puțin populare decât cele „fundamentale”. Pachetele pentru sarcini precum Wrangling de date, date de date și complot sunt utilizate de aproape toată lumea, indiferent de cazul de utilizare. În schimb, pachete mai specializate, de exemplu, cele concepute pentru a gestiona proiectele experimentale cu abandonuri, au, în mod natural, un public mai mic.

Deci, o popularitate mai mică nu reflectă neapărat o calitate sau o utilitate mai mică. Poate reflecta doar un scop mai de nișă.

Scorul 1: descărcări anuale

Pentru pachete de pe CRAN, putem obține statistici de descărcare. Desigur, întrebarea evidentă este: „Ce este un număr mare de descărcări?” Pentru a răspunde la această întrebare, am obținut statisticile de descărcare ale fiecărui pachet de pe CRAN și am folosit aceste date ca bază a scorului nostru.

Mai precis, dacă un pachet se află în quartile superioare pentru numărul de descărcări de pachete (aproximativ 7.000 de descărcări pe an), pachetul este notat 1. În caz contrar, CDF empiric este folosit pentru a marca.

Scor pentru descărcări anualeScor pentru descărcări anuale

Desigur, puteți alege o perioadă diferită de timp, să spunem luna sau o tendință în timp. Dar investigațiile noastre sugerează că, în timp ce avem o varietate de scoruri pe baza descărcărilor, se obțin foarte puține informații noi. Dar există o creștere suplimentară a complexității.

Scorul 2: dependențe inversă

De asemenea, examinăm numărul de dependențe inversă, adică câte alte pachete se bazează pe acesta. Raționamentul este simplu: dacă multe pachete depind de acesta, există șanse mai mari ca bug -urile să fie observate și să fie fixate. De asemenea, sugerează că alți dezvoltatori au revizuit și au avut încredere în pachetul suficient pentru a construi pe deasupra acestuia.

Similar cu descărcările de pachete, am folosit toate pachetele de pe CRAN ca bază pentru notare. Pachetele din quartile de sus pentru dependențele inverse primesc un scor de 1. Toate celelalte sunt notate folosind funcția de distribuție cumulativă empirică (CDF). În practică, acest lucru ajunge să se comporte ca un scor aproape binar, deoarece doar un număr mic de pachete au dependențe inversă semnificative.

Exemple

Am selectat cinci pachete pentru a ilustra aceste scoruri – scorul total Litmus este dat între paranteze:

  • {drat} (0.94): Un mic pachet fantastic care simplifică crearea depozitelor R locale.
  • {microbenchmark} (0,87): un pachet util de utilitate, pentru (precis) apelurile funcționale de măsurare în R.
  • {shinyjs} (0,90): Efectuați operațiuni comune de JavaScript utile în aplicații strălucitoare, create de Dean Attali.
  • {tibble} (0,81): piatra de temelie (?) A Tidyverse.
  • {tsibble} (0,80): Tibbles for Time Series.

Toate cele cinci pachete, așa cum ne -am aștepta, au un scor general de litmus ridicat; Nu am vrut să alegem pachete mai riscante!

Pentru popularitatea pachetului, ceea ce reprezintă 15% din scorul total Litmus, toate cele cinci pachete selectate, scor un maxim de maximum 1 pentru descărcări și dependențe inversă. Potențial, am putea schimba scorul pentru a face o măsură mai „continuă”. De exemplu, numărul de descărcări pentru {tibble} este întotdeauna mai mult decât {tsibble}întrucât cel din urmă depinde de primul. Cu toate acestea, scopul evaluării pachetelor nu este de a furniza un Lista clasată de pachete, este de a identifica pachetele care pot fi riscante. Deci, a avea o măsură mai continuă nu este atât de util.

Rezumat

Avem tendința de a ne gândi la popularitatea pachetelor ca o modalitate de a aproviziona cu mulțime de informații despre pachetul de interes. După cum am menționat, este doar un semnal și, ca atare, contribuie doar la 15% din scorul general al Litmus.

Pentru actualizări și revizii la acest articol, consultați postarea originală

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.