Quanto è rappresentativo Ohloh? [chiuso]

5

Il mio collega mi ha recentemente indirizzato a Ohloh , un sito Web che fornisce statistiche su FOSS basate su repository di versioni. È piuttosto uno strumento di procrastinazione piuttosto divertente, ad es. a confronta linguaggi di programmazione per progetti attivi :

Ilchemifameravigliare:quantoèrappresentativotaleconfronto?Possiamotrarreconclusionicome"Javascript è il linguaggio di programmazione più utilizzato in FOSS, seguito da vicino da Python, Java e C ++"? O ci sono dei grossi avvertimenti da prendere in considerazione?

    
posta gerrit 26.10.2012 - 15:38
fonte

5 risposte

1

Questo è il problema con grafici graziosi senza contesto: non hai un modo reale di raccontare le correlazioni implicite che hanno alcun fondamento nella realtà. JavaScript è un oddball perché usato da progetti la cui lingua principale è una qualsiasi delle altre opzioni (ad esempio un'applicazione web scritta in Python ha più probabilità di avere qualche JavaScript con esso). L'unico modo per confrontare le mele con le mele con JavaScript nell'elenco è se lo si limita al JavaScript sul lato server.

L'altra cosa da tenere a mente è che la popolarità del linguaggio di programmazione non tende ad essere assoluta nel modo in cui Oloh lo fa sembrare. Ad esempio, C ++ rimane pesantemente utilizzato nei giochi, sia commerciali che open source, ma molte più applicazioni web sono scritte in Ruby o Python. Le lingue non esistono nel vuoto e tendono ad avere maggiore o minore popolarità e applicabilità per dominio.

Molti dei takeaway più ampi sono ovviamente veri. Non molte persone usano più FORTRAN e praticamente nessuno senza uno stipendio. C ++ è probabilmente tendenzialmente nel suo insieme con un numero sempre maggiore di applicazioni che passano a linguaggi con memoria gestita. Tuttavia, il grafico stesso è di utilità molto sospetta.

    
risposta data 01.11.2012 - 16:42
fonte
0

Sebbene JavaScript sia probabilmente il più utilizzato, ha sottoposto a scansione una delle mie app MVC e mi ha detto che si trattava di un progetto JavaScript semplicemente a causa di tutti i file JavaScript predefiniti che sono lì per impostazione predefinita (JQuery, Bootstrap, ecc.). Quindi, se questo è il conteggio dei progetti come singolo linguaggio (che probabilmente è), allora è probabilmente accurato supponendo che tutti i progetti web siano progetti JavaScript e i progetti C # / Java / Python / Ruby saranno per lo più categorizzati in questo modo solo se sono console / app desktop.

    
risposta data 26.10.2012 - 15:52
fonte
0

Hai scelto il grafico con:

The lines show the count of projects with at least one line of code changed in a month

Tra le quattro scelte, questa è quella che dice meno su quanto viene utilizzata qualsiasi lingua. Quello che mostra il numero di righe di cambiamento del codice e prendere C in considerazione è un migliore indicatore di effettiva popolarità. Indica che la maggior parte della codifica in OSS è fatta in C, che non sembra sorprendente considerando progetti come il kernel Linux da 20 MLOC.

    
risposta data 26.10.2012 - 16:02
fonte
0

Dipende dal tipo di rappresentatività che stai cercando. Ci sono qualcosa come 600.000 progetti presi in considerazione da Ohioh, quindi puoi considerarlo un set di dati abbastanza grande. Tuttavia, alcuni di questi progetti non sono rilevanti e sono spesso più numerosi di quanto si pensi. Ad esempio, so che in Gnome (che sembra essere indicizzato), circa il 60% di tutti i progetti non ha ricevuto alcun commit durante gli ultimi 2-3 anni. Devi buttarli via se ti interessano le tendenze "moderne".

Un altro punto è che il numero di progetti è forse una metrica troppo grossolana della popolarità della lingua: la maggior parte dei progetti è molto piccola, e alcuni sono molto grandi (le loro dimensioni in genere seguono un Distribuzione di Pareto ). Quindi, in effetti, probabilmente sarai più interessato alla dimensione cumulativa dei progetti pertinenti o dell'attività dei progetti. Devi quindi definire cosa è una dimensione del progetto (numero di righe di codice? Numero di file?). Se guardi all'evoluzione mensile del numero di commit per lingua, puoi vedere che C, HTML e Java sono silenziosamente vicini. E l'attività C sta rallentando dal 2006. Se si guarda il numero di progetti che hanno ricevuto almeno un commit al mese, il linguaggio C è addirittura al secondo posto, dopo il linguaggio HTML! Il numero mensile di righe di codice modificate è probabilmente influenzato da importanti rifattorizzazione / ristrutturazione in alcuni grandi progetti.

Temo che i dati siano anche molto eterogenei. Eclipse e Apache sono probabilmente pro-Java, poiché la maggior parte dei progetti KDE sarà probabilmente scritta in C / C ++. Il kernel di Linux è scritto principalmente in C. Quindi, se ti concentri su una particolare sottocomunità, i risultati potrebbero cambiare drasticamente.

Alla fine della giornata, i dati presentati possono essere rilevanti per un'analisi delle tendenze, ma devi definire chiaramente ciò che stai cercando e adattare le tue osservazioni di conseguenza.

    
risposta data 26.10.2012 - 16:16
fonte
0

Sarebbe una buona idea confrontare con Github e Google Code e in qualsiasi altro luogo ci sia un sacco di sviluppo FOSS. Non so come fare un diagramma di frequenza del linguaggio per Google Code. Tuttavia, Github lo offre e hanno persino pubblicato un post sul blog a dicembre 2010 o all'inizio del 2011.

Indipendentemente dai risultati di un grafico di confronto delle frequenze per lingua, è comunque necessario tenere conto di tutte le avvertenze citate già nelle risposte precedenti. Non è significativo dedurre nulla sulla popolarità quando si aggrega senza prima pensare ai propri dati. Come altri hanno già detto, probabilmente vorrai fare un po 'di tutto quanto segue prima di fare un confronto di frequenza:

  • Rimuovi i dati da qualsiasi progetto che è rimasto inattivo per un anno o più
  • Considera il fatto che ci sia così tanto C a causa dell'uso di Linux in FOSS, e non sovrappeso che
  • Rendi conto di qualsiasi altra cosa che viene inclusa ma non è in realtà parte del codice sviluppato (suono molto vago, mi rendo conto, ma potrebbe essere diverso a seconda della lingua, ad esempio librerie di funzioni simili)
risposta data 28.10.2012 - 14:11
fonte

Leggi altre domande sui tag