Como representante é Ohloh? [fechadas]

5

Meu colega recentemente me apontou para Ohloh , um site que fornece estatísticas sobre software livre com base em repositórios de versão. É uma ferramenta de procrastinação bastante divertida, por ex. para comparar as linguagens de programação por projetos ativos :

Oquemefazpensar:quãorepresentativaéessacomparação?Podemostirarconclusõesapartirdisso,como"JavaScript é a linguagem de programação mais utilizada no software livre, seguido de perto por Python, Java e C + +"? Ou há algumas grandes advertências a serem levadas em conta?

    
por gerrit 26.10.2012 / 15:38
fonte

5 respostas

1

Este é o problema com gráficos bonitos sem contexto: você não tem nenhuma maneira real de dizer que as correlações implicadas têm qualquer base na realidade. O JavaScript é um excêntrico porque é usado por projetos cujo idioma principal é qualquer uma das outras opções (por exemplo, um aplicativo da Web escrito em Python é mais do que provável que tenha algum JavaScript com ele). A única maneira de comparar maçãs com maçãs com JavaScript nessa lista é restringi-lo ao JavaScript do lado do servidor.

A outra coisa a ter em mente é que a popularidade da linguagem de programação não tende a ser um absoluto do jeito que Oloh faz parecer. Por exemplo, o C ++ continua sendo muito usado em jogos, tanto comerciais como de código aberto, mas muito mais aplicativos da Web são escritos em Ruby ou Python. As línguas não existem no vácuo e tendem a ter maior ou menor popularidade e aplicabilidade por domínio.

Muitos dos tópicos mais amplos são obviamente verdadeiros. Poucas pessoas estão usando o FORTRAN mais e praticamente nenhum sem um contracheque. C ++ provavelmente está tendendo para baixo no geral com mais e mais desenvolvimento de aplicativos indo para linguagens com memória gerenciada. No entanto, o gráfico em si é de utilidade muito suspeita.

    
por 01.11.2012 / 16:42
fonte
0

Embora o JavaScript seja provavelmente o mais usado, ele rastreou um dos meus aplicativos MVC e disse que era um projeto JavaScript simplesmente por causa de todos os arquivos JavaScript padrão que estão lá por padrão (JQuery, Bootstrap, etc). Então, se isso está contando os projetos como uma única linguagem (o que provavelmente é), então provavelmente é preciso supor que todos os projetos da Web sejam projetos JavaScript e projetos C # / Java / Python / Ruby serão categorizados dessa maneira se forem consoles / aplicativos para computador.

    
por 26.10.2012 / 15:52
fonte
0

Você escolheu o gráfico com:

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

Das quatro escolhas, esta é a que menos diz o quanto qualquer linguagem é usada. Aquele que mostra o número de linhas de código alteradas e considerando C é melhor indicador de popularidade real. Isso indica que a maioria dos códigos no OSS é feita em C, o que não parece surpreendente considerando projetos como o kernel Linux de 20 MLOC.

    
por 26.10.2012 / 16:02
fonte
0

Depende de que tipo de representatividade você está procurando. Há algo como 600.000 projetos levados em conta por Ohioh, então você pode considerá-lo como um conjunto de dados grande o suficiente. No entanto, alguns desses projetos não são relevantes e costumam ser mais numerosos do que se acredita. Por exemplo, eu sei no Gnome (que parece ser indexado), cerca de 60% de todos os projetos não receberam nenhum commit durante os últimos 2-3 anos. Você tem que jogá-los fora se você estiver interessado em tendências "modernas".

Outro ponto é que o número de projetos é talvez uma métrica muito grosseira da popularidade da linguagem: A maioria dos projetos é muito pequena e alguns são muito grandes (seus tamanhos geralmente seguem um Pareto distribution ). Então, na verdade, você provavelmente estará mais interessado no tamanho acumulado dos projetos relevantes ou na atividade do projeto. Você tem que definir o que é um tamanho de projeto (número de linhas de código? Número de arquivos?). Se você observar a evolução mensal do número de commits por idioma, verá que C, HTML e Java estão quase fechados. E a atividade C está desacelerando desde 2006. Se você olhar o número de projetos que receberam pelo menos um commit por mês, a linguagem C está mesmo em segundo lugar, depois da linguagem HTML! O número mensal de linhas de código alteradas é provavelmente afetado por importantes refatorações / reestruturações em alguns grandes projetos.

Eu temo que os dados também sejam muito heterogêneos. O Eclipse e o Apache são provavelmente pro-Java, já que a maioria dos projetos do KDE provavelmente será escrita em C / C ++. O kernel do Linux é escrito principalmente em C. Então, se você se concentrar em uma subcomunidade em particular, os resultados podem mudar drasticamente.

No final do dia, os dados apresentados podem ser relevantes para uma análise de tendências, mas você precisa definir claramente o que está procurando e adaptar suas observações consequentemente.

    
por 26.10.2012 / 16:16
fonte
0

Seria uma boa ideia comparar com o Github e o Google Code e em qualquer outro lugar que haja muito desenvolvimento de software livre. Não sei como fazer um gráfico de frequência de idiomas para o Google Code. No entanto, o Github oferece isso, e eles até fizeram um post sobre isso em dezembro de 2010 ou no início de 2011.

Independentemente dos resultados de um gráfico comparativo de frequência por idioma, você ainda precisa levar em consideração todas as advertências já mencionadas nas respostas anteriores. Não é significativo inferir nada sobre popularidade ao agregar sem primeiro pensar em seus dados. Como outros já mencionaram, é provável que você queira fazer algumas ou todas as ações a seguir antes de fazer uma comparação de frequência:

  • Remover dados de projetos que ficaram inativos por um ano ou mais
  • Considere o fato de que há muito C por causa do uso do Linux em FOSS e não está acima do peso
  • Explique mais alguma coisa que seja incluída, mas que na verdade não seja parte do código que está sendo desenvolvido (parece-me muito vago, mas isso pode ser diferente dependendo da linguagem, por exemplo, como bibliotecas de funções)
por 28.10.2012 / 14:11
fonte