/ 13.Apr.2008 at 02:40pm
Eu já usei números do TIOBE em minhas apresentações. Já usei os números em artigos no meu blog. Tinha uma vaga noção de como eles formavam aquele número, mas nunca parei para pensar neles. Alguém aí sabe como se forma o índice TIOBE de “Popularidade de Linguagem?”
Hoje li dois artigos discutindo justamente isso. Ambos tem razão e se parar para pensar por 30 segundos, era óbvio que eu nunca deveria ter usado esses números. Ainda mais eu, que falei mais de uma vez dos perigos da estatística mal utilizada! Vamos entender o porquê.
Pois bem, como é formado o índice TIOBE?
É uma porcentagem, não ajustada, sobre a quantidade de hits em 5 engines de procura pelos termos +“[linguagem] programming”. Vejamos exemplos com números absolutos apenas no Google:
Agora, vejamos no Yahoo!
Mas existem listas de exceções para agrupamentos ou desagrupamentos. Por exemplo, C# também é procurado por “CSharp”, “C-Sharp”, “C# 3.0”, etc. O resultado de todos é somado como “C#”. No exemplo acima procurei simplesmente por “C# programming”.
Depois disso eles pegam o total de resultados, por exemplo C# no Google foi 558 mil e dividem pelo total de resultados das 1as 50 linguagens – ou no meu exemplo, das primeiras 9. Assim eu teria para C# 558 mil / 11.249.100 = 4,9%. O mesmo é feito para o Yahoo e outros search engines. As porcentagens finais são somadas e divididas por 5 (total de search engines). Vejamos meus resultados menores não usando nenhuma das exceções e nem usando os 5 search engines, apenas os 2 principais.
Bem, acabamos de ver o jeito fácil de fabricar índices. Essa metodologia é absolutamente quebrada e não é preciso ser um especialista em estatística para dizer isso. Não se compara a nenhuma metodologia considerada ‘séria’ como um IBOPE (e que ainda assim ainda é controverso).
Apenas os que eu, sendo leigo em estatística, poderia dizer:
A reclamação dos dois autores dos posts que linkei acima é: Mesmo com os resultados que vimos, por que Python se tornou linguagem do ano passado? Por que Ruby se tornou linguagem do ano retrasado? Está claro – por esse método – que Java, C, C++, Perl e PHP estão uma ordem de grandeza acima.
Minha avaliação é: o Índice TIOBE presume muita coisa e deixa passar muito erro. Numa situação de medida como essa, a margem de erro é maior que o número sendo medido. É praticamente impossível tirar qualquer conclusão disso.
Uma metodologia igualmente ridícula? Vamos ‘assumir’ que se uma pessoa que recebe um panfleto de candidato político, não a joga na rua, é porque ele gosta dele. Portanto poderíamos eleger um presidente contando os panfletos jogados na rua e assumindo que quem tiver menos panfletos na rua é o que as pessoas mais gostaram e, portanto, o ganhador.
Eu já disse antes em outro artigo: Somos matematicamente ignorantes. Infelizmente, diferente de álgebra de primeiro grau, estatística ainda é uma área muito pouco esclarecida. Eu estudei estatística no Instituto de Matemática e Estatística da USP e ainda assim sei muito pouco a respeito. As pessoas constantemente são obrigadas a apenas “engolir” os números que a TV mostra sem saber como determinar, minimamente, se os critérios são adequados.
Minha recomendação é: na dúvida, ignore os índices. Não sou Dijkstra mas eu diria “Statistics Considered Harmful” Até que as pessoas entendam o que é estatísticas, mostrar-lhes índices é apenas um ato de tentar mentir com mais substância. Em seu artigo, Tim cita Mark Twain:
“Existem três tipos de mentiras: mentiras, grandes mentiras e estatísticas.”
Da minha parte, não pretendo mais mencionar o TIOBE em nenhum artigo e em nenhuma apresentação como argumentação de que Ruby está crescendo. Na prática acredito que não existam índices confiáveis hoje para avaliar isso.
7 Comments
Acho que existe um erro em:
“Procurar por “C programming” no Google trouxe 2,2 milhões de hits, já no google trouxe 12,3 milhões”
Creio que uma das ocorrências da palavra Google deveria ser Yahoo.
[]’s
tapajós / 14.Apr.2008 at 10:33am
Meu professor de estatística básica ficava louco com aquela velha frase: “Estatística é a ciência onde eu tenho duas maças e você nenhuma, ambos temos uma maça” :)
christiano milfont / 16.Apr.2008 at 08:35am
Excelente artigo. Os índices TIOBE são muito superficiais.
micael estrázulas / 16.Apr.2008 at 09:03am
Quando a linguagem apontada está entre as primeiras e crescendo os interessados não reclamam, caso o contrário…
eraldo / 16.Apr.2008 at 10:48am
existe uma diferença em ser “a linguagem do ano” e ser “a linguagem que mais cresceu no ano”.
mauro faccenda / 16.Apr.2008 at 07:38pm
@Eraldo, Ruby foi a ‘linguagem do ano’ no ano passado. E mesmo que isso seja verdade, não é com esses dados que vamos conferir isso.
@Mauro, um dos critérios para ser a ‘linguagem do ano’ é ‘ser uma das que mais cresceram no ano’, segundo o TIOBE.
akitaonrails / 16.Apr.2008 at 08:15pm
Ótimo artigo. Agora tenho argumento para rebater criticas acerca do crescimento de linguaguens como Ruby ou Pyton em relação ao Java. Apesar de não conhece-las a fundo. Sou formada em Matemática na federal do Ceará. Estudei um pouco de estatistica, mas me ignorância e gritante acerca do assunto.
mirla braga / 24.Apr.2008 at 09:15am
Leave a Comment