Off Topic: Nunca confie no TIOBE

2008 April 13, 14:40 h

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).

Os problemas

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.

tags: off-topic principles fallacies tiobe

Comments

comentários deste blog disponibilizados por Disqus