TIOBE: um índice que mede quais são as linguagens de programação populares no mundo! Com atualização mensal!

De tempos em tempos a empresa TIOBE realiza uma pesquisa para verificar qual a linguagem de programação mais utilizada no mundo e costuma premiar, desde 2003, a melhor linguagem com o prêmio de Linguagem de Programação do Ano. Antes de tudo, primeiro é necessário conhecer o índice, para que seja entendido como a empresa consegue chegar neste relatório apontando as linguagens de programação mais buscadas em 2019. As informações são mensais e quando o ano termina o vencedor recebe um prêmio.

Esse tipo de pesquisa é muito útil, justamente para nos adaptar e ver quais são as linguagens mais procuradas pelo mercado. E a TIOBE liberou a pesquisa do mês de novembro de 2019. O novo relatório já está datado como novembro de 2019. Segundo uma página do TIOBE, o relatório é montado com base em um índice que mede o número de pesquisas em torno daquela linguagem de programação. Assim, o número de mecanismos de pesquisas possuem uma soma de 25 ao redor do mundo.
Vale ressaltar, que as informações contidas no índice TIOBE não tem intuito de classificar nenhuma linguagem de programação como a melhor, no entanto, o índice apenas classifica quais são as linguagens de programação mais populares, com base em mecanismos de buscas.

Escolha dos mecanismos de buscas

Desta forma, a escolha deste mecanismo de busca para catalogação segue a popularidade medida pelo Alexa da Amazon. Para isso, os mecanismos de buscas precisam atender os seguintes critérios:
  • A página de entrada do site contém um recurso de pesquisa
  • O resultado da consulta ao site contém uma indicação do número de acessos à página
  • Os resultados devem estar disponíveis em HTML com tags claras
  • Os mecanismos de pesquisa em idiomas com caracteres especiais devem ser codificados corretamente
  • O mecanismo de pesquisa deve retornar pelo menos 1 hit para 1 consulta
  • Os resultados da consulta ao site não devem conter muitos valores discrepantes
  • Sites pornográficos são excluídos

Com base nesses critérios, os seguintes mecanismos de pesquisa são qualificados:

  • Google.com: 7,69%
  • Baidu.com: 7.38%
  • Wikipedia.org: 7,08%
  • Yahoo.com: 6,77%
  • Csdn.net: 6,46%
  • Bing.com: 6,15%
  • Google.com.hk: 5,85%
  • Ebay.com: 5,54%
  • Google.com.br: 5,23%
  • Msn.com: 4,92%
  • Amazon.in: 4,62%
  • Hao123.com: 4,31%
  • Google.co.jp: 4,00%
  • Google.com.br: 3,69%
  • Google.de: 3,38%
  • Amazon.com.br: 3,08%
  • Google.ru: 2,77%
  • Indeed.com: 2,46%
  • Google.fr: 2,15%
  • Google.it: 1,85%
  • Google.es: 1,54%
  • Google.cn: 1,23%
  • Google.com.tw: 0,92%
  • Freepik.com: 0.62%
  • Google.com.mx: 0,31%

Os seguintes mecanismos de pesquisa não se qualificaram pelo motivo indicado:

  • 1688.com: NO_RESULTS_AT_ALL
  • 360.cn: SITE_TIMED_OUT
  • Adobe.com: NOT_ALLOWED_TO_ACCESS
  • Aliexpress.com: NO_SEARCH_FIELD
  • Alipay.com: NO_SEARCH_FIELD
  • Amazon.co.jp: SOURCES_NOT_PARSABLE
  • Amazon.com: NO_COUNTERS
  • Amazon.de: NO_COUNTERS
  • Amazonaws.com: NO_SEARCH_FIELD
  • Apple.com: NO_RESULTS_AT_ALL
  • Babytree.com: NO_RESULTS_AT_ALL
  • Bbc.co.uk: NO_COUNTERS
  • Bbc.com: NO_COUNTERS
  • Bilibili.com: NO_RESULTS_AT_ALL
  • Blogspot.com: NO_SEARCH_FIELD
  • Bongacams.com: PORN_SITE
  • Booking.com: NO_SEARCH_FIELD
  • Caijing.com.cn: NOT_ALLOWED_TO_ACCESS
  • Canva.com: NO_SEARCH_FIELD
  • Chase.com: NO_SEARCH_FIELD
  • Chaturbate.com: PORN_SITE
  • China.com.cn: NO_RESULTS_AT_ALL
  • Cnn.com: SOURCES_NOT_PARSABLE
  • Detail.tmall.com: NO_COUNTERS
  • Detik.com: NO_RESULTS_AT_ALL
  • Dropbox.com: NO_SEARCH_FIELD
  • Espn.com: NO_RESULTS_AT_ALL
  • Ettoday.net: NOT_ALLOWED_TO_ACCESS
  • Facebook.com: NO_SEARCH_FIELD
  • Fandom.com: NO_COUNTERS
  • Flipkart.com: SOURCES_NOT_PARSABLE
  • Force.com: NO_SEARCH_FIELD
  • Github.com: NO_RESULTS_AT_ALL
  • Huanqiu.com: NO_SEARCH_FIELD
  • Imdb.com: NO_COUNTERS
  • Imgur.com: NO_COUNTERS
  • Instagram.com: NO_SEARCH_FIELD
  • Instructure.com: NO_SEARCH_FIELD
  • Jd.com: NO_RESULTS_AT_ALL
  • Linkedin.com: SOURCES_NOT_PARSABLE
  • Live.com: NO_SEARCH_FIELD
  • Livejasmin.com: PORN_SITE
  • Login.tmall.com: NO_SEARCH_FIELD
  • Mail.ru: NO_COUNTERS
  • Mama.cn: NO_RESULTS_AT_ALL
  • Medium.com: NO_COUNTERS
  • Microsoft.com: NO_COUNTERS
  • Microsoftonline.com: NO_SEARCH_FIELD
  • Myshopify.com: NO_SEARCH_FIELD
  • Naver.com: SOURCES_NOT_PARSABLE
  • Netflix.com: NO_SEARCH_FIELD
  • Nytimes.com: SOURCES_NOT_PARSABLE
  • Office.com: NO_SEARCH_FIELD
  • Ok.ru: NO_SEARCH_FIELD
  • Okezone.com: NO_SEARCH_FIELD
  • Onlinesbi.com: NO_SEARCH_FIELD
  • Pages.tmall.com: SOURCES_NOT_PARSABLE
  • Panda.tv: NO_SEARCH_FIELD
  • Paypal.com: NO_SEARCH_FIELD
  • Pixnet.net: SOURCES_NOT_PARSABLE
  • Pornhub.com: PORN_SITE
  • Qq.com: NO_RESULTS_AT_ALL
  • Rakuten.co.jp: SOURCES_NOT_PARSABLE
  • Reddit.com: NO_COUNTERS
  • Rednet.cn: NO_RESULTS_AT_ALL
  • Roblox.com: NO_SEARCH_FIELD
  • Salesforce.com: NO_RESULTS_AT_ALL
  • Shutterstock.com: SOURCES_NOT_PARSABLE
  • Sina.com.cn: NO_COUNTERS
  • So.com: SITE_TIMED_OUT
  • Sogou.com: NO_RESULTS_AT_ALL
  • Sohu.com: NO_SEARCH_FIELD
  • Soso.com: ENCODING_PROBLEM
  • Spotify.com: NO_SEARCH_FIELD
  • Stackexchange.com: SOURCES_NOT_PARSABLE
  • Stackoverflow.com: SOURCES_NOT_PARSABLE
  • Taobao.com: SOURCES_NOT_PARSABLE
  • Theguardian.com: SOURCES_NOT_PARSABLE
  • Thestartmagazine.com: NO_SEARCH_FIELD
  • Tianya.cn: ENCODING_PROBLEM
  • Tmall.com: NO_COUNTERS
  • Tribunnews.com: NO_RESULTS_AT_ALL
  • Twitch.tv: NO_COUNTERS
  • Twitter.com: NO_SEARCH_FIELD
  • Vk.com: NO_SEARCH_FIELD
  • Walmart.com: NO_RESULTS_AT_ALL
  • Weibo.com: NO_SEARCH_FIELD
  • Whatsapp.com: NO_SEARCH_FIELD
  • WordPress.com: NO_SEARCH_FIELD
  • Xhamster.com: PORN_SITE
  • Xinhuanet.com: NO_SEARCH_FIELD
  • Xvideos.com: PORN_SITE
  • Yahoo.co.jp: SOURCES_NOT_PARSABLE
  • Yandex.ru: NO_COUNTERS
  • Youtube.com: NO_COUNTERS
  • Zhanqi.tv: NO_RESULTS_AT_ALL

Linguagem de programação

Nesta seção, é esclarecido o que conta como uma linguagem de programação para o índice TIOBE. Existem três requisitos que devem ser mantidos:

  • A linguagem deve ter uma entrada própria na Wikipedia e a Wikipedia deve indicar claramente que se refere a uma linguagem de programação. Essa é a razão pela qual os Rails (Ruby on), Excel, Android, Boost, Cacau, ASP e AJAX não são considerados linguagens de programação para o índice.
  • A linguagem de programação deve estar completa com Turing. Como conseqüência, HTML e XML não são considerados linguagens de programação.
  • A linguagem de programação deve ter pelo menos 5.000 hits para + “programação” para o Google.

Linguagens de programação muito semelhantes são agrupadas. Atualmente, o máximo de ocorrências de idiomas individuais é levado em consideração ao calcular as classificações dos agrupamentos.

A definição de quais idiomas estão agrupados foi formalizada de acordo com as seguintes regras:

  • Se um idioma tiver sua própria entrada na Wikipedia, ele não será agrupado com outro idioma.
  • Se um idioma A redirecionar automaticamente para outra entrada da Wikipedia B, A será agrupado com B.
  • Se um idioma A não tiver uma entrada separada da Wikipedia, mas for mencionado como parte de outra entrada B da Wikipedia, A será agrupado com B.

Para filtrar os falsos positivos, dois mecanismos são usados. Antes de tudo, uma confiança é definida para uma linguagem. Por padrão, a confiança é de 100%, mas para algumas consultas de pesquisa difíceis, como “Programação Básica”, a confiança será menor. Além da confiança, às vezes também são usadas exceções ou adições obrigatórias para eliminar falsos positivos.

A tabela a seguir contém todas as linguagens de programação rastreadas:

  • (Visual) FoxPro: FoxPro, Fox Pro, VFP
  • 1C:Enterprise script
  • 4th Dimension/4D: 4D, 4th Dimension
  • ABAP
  • ABC: ABC (exceptions: -tv -channel)
  • ActionScript: ActionScript, AS1, AS2, AS3
  • Ada
  • Agilent VEE
  • Algol
  • Alice: Alice (confidence: 90%)
  • Angelscript
  • Apex
  • APL
  • Applescript
  • Arc
  • AspectJ
  • Assembly language: Assembly, Assembly language
  • ATLAS
  • AutoHotkey: AutoHotkey, AHK
  • AutoIt
  • AutoLISP
  • Automator
  • Avenue
  • Awk: Awk, Mawk, Gawk, Nawk
  • Bash
  • Basic: Basic (confidence: 0%)
  • BBC BASIC
  • bc
  • BCPL
  • BETA: BETA (confidence: 10%)
  • BlitzMax: BlitzMax, BlitzBasic, Blitz Basic
  • Boo
  • Bourne shell: Bourne shell, sh
  • Brainfuck
  • C shell: Csh, C shell (confidence: 90%)
  • C#: C#, C-Sharp, C Sharp, CSharp, CSharp.NET, C#.NET
  • C++/CLI
  • C++: C++, C++0x, C++11, C++14, C++17
  • C-Omega
  • C: C (exceptions: -“Objective-C”)
  • Caml
  • Ceylon
  • CFML: CFML, ColdFusion
  • cg: cg (confidence: 80%, exceptions: -“computer game” -“computer graphics”)
  • Ch: Ch (exceptions: +ChScite)
  • Chapel: Chapel (exceptions: -christ)
  • CHILL
  • CIL
  • CL (OS/400): CL (exceptions: -Lisp), CLLE
  • Clarion
  • Clean: Clean (confidence: 43%)
  • Clipper
  • Clojure: Clojure, ClojureScript
  • CLU
  • COBOL
  • Cobra
  • CoffeeScript
  • COMAL
  • Common Lisp
  • Crystal: Crystal (confidence: 61%), crystallang
  • cT
  • Curl
  • D: D (confidence: 90%, exceptions: -“3-D programming” -“DTrace”), dlang
  • Dart
  • DCL
  • Delphi/Object Pascal: Delphi, Delphi.NET, DwScript, Object Pascal, Pascal (confidence: 95%)
  • DiBOL: DBL, Synergy/DE, DIBOL
  • Dylan
  • E: E (exceptions: +specman)
  • ECMAScript
  • EGL
  • Eiffel
  • Elixir
  • Elm
  • Emacs Lisp: Emacs Lisp, Elips
  • Erlang
  • Etoys
  • Euphoria
  • EXEC
  • F#: F#, F-Sharp, FSharp, F Sharp
  • Factor
  • Falcon
  • Fantom
  • Felix: Felix (confidence: 86%)
  • Forth
  • Fortran
  • Fortress
  • Gambas
  • GAMS
  • GLSL
  • GML: GML, GameMaker Language
  • GNU Octave
  • Go: Go, Golang
  • Gosu
  • Groovy: Groovy, GPATH, GSQL, Groovy++
  • Hack
  • Harbour
  • Haskell
  • Haxe
  • Heron
  • HPL
  • HyperTalk
  • Icon: Icon (confidence: 90%)
  • IDL: IDL (exceptions: -corba -interface)
  • Idris
  • Inform
  • Informix-4GL
  • INTERCAL
  • Io
  • Ioke
  • J#
  • J: J (confidence: 50%)
  • JADE
  • Java
  • JavaFX Script
  • JavaScript: JavaScript, JS, SSJS
  • JScript
  • JScript.NET
  • Julia: Julia, Julialang, julia-lang
  • Korn shell: Korn shell, ksh
  • Kotlin
  • LabVIEW
  • Ladder Logic
  • Lasso
  • Limbo
  • Lingo
  • Lisp
  • LiveCode: Revolution, LiveCode
  • Logo: Logo (confidence: 90%, exceptions: -tv)
  • LotusScript
  • LPC
  • Lua: Lua, LuaJIT
  • Lustre
  • M4
  • MAD: MAD (confidence: 50%)
  • Magic: Magic (confidence: 50%)
  • Magik
  • Malbolge
  • MANTIS
  • Maple
  • MATLAB
  • Max/MSP
  • MAXScript
  • MDX
  • MEL
  • Mercury
  • Miva
  • ML
  • Modula-2
  • Modula-3
  • Monkey
  • MOO
  • Moto
  • MQL4: MQL4, MQL5
  • MS-DOS batch
  • MUMPS
  • NATURAL
  • Nemerle
  • NetLogo
  • Nim: Nim, Nimrod
  • NQC
  • NSIS
  • NXT-G
  • Oberon
  • Object Rexx
  • Objective-C: Objective-C, objc, obj-c
  • OCaml: Objective Caml, OCaml
  • Occam
  • OpenCL
  • OpenEdge ABL: Progress, Progress 4GL, ABL, Advanced Business Language, OpenEdge
  • OPL
  • Oxygene
  • Oz
  • Paradox
  • Pascal: Pascal (confidence: 5%)
  • Perl
  • Perl 6
  • PHP
  • Pike
  • PILOT: PILOT (confidence: 50%, exceptions: -“Palm Pilot programming”)
  • PL/I: PL/1, PL/I
  • PL/SQL
  • Pliant
  • Pony
  • PostScript: PostScript, PS
  • POV-Ray
  • PowerBasic
  • PowerScript
  • PowerShell
  • Processing: Processing (exceptions: +”sketchbook”)
  • Programming Without Coding Technology: Programming Without Coding Technology, PWCT
  • Prolog
  • Pure Data: Pure Data, PD
  • PureBasic
  • Python
  • Q
  • R: R (confidence: 90%, exceptions: +”statistical”)
  • Racket
  • REBOL
  • Red: Red (confidence: 20%)
  • REXX
  • Ring
  • RPG: RPG (confidence: 80%, exceptions: -role), RPGLE, ILERPG, RPGIV, RPGIII, RPG400, RPGII, RPG4
  • Ruby
  • Rust: Rust, Rustlang
  • S-PLUS: S-PLUS (exceptions: +statistical)
  • S: S (exceptions: +statistical)
  • SAS
  • Sather
  • Scala
  • Scheme: Scheme (exceptions: -tv -channel)
  • Scratch
  • sed
  • Seed7
  • SIGNAL: SIGNAL (confidence: 10%)
  • Simula
  • Simulink
  • Slate: Slate (confidence: 57%)
  • Smalltalk
  • Smarty
  • Snap!
  • SNOBOL
  • Solidity
  • SPARK
  • SPSS
  • SQL
  • SQR
  • Squeak
  • Squirrel
  • Standard ML: Standard ML, SML
  • Stata
  • Suneido
  • SuperCollider: SuperCollider (confidence: 80%)
  • Swift
  • TACL
  • Tcl: Tcl/Tk, Tcl
  • tcsh
  • Tex
  • thinBasic
  • TOM: TOM (confidence: 50%)
  • Transact-SQL: T-SQL, Transact-SQL, TSQL
  • TypeScript: TypeScript, TS
  • Vala/Genie: Vala, Genie
  • VBScript
  • Verilog
  • VHDL
  • Visual Basic .NET: Visual Basic .NET, VB.NET, Visual Basic.NET, Visual Basic (confidence: 50%), VB (confidence: 50%)
  • Visual Basic: Visual Basic (confidence: 50%), VB (confidence: 50%), VBA, VB6
  • WebAssembly: WebAssembly, wasm
  • WebDNA
  • Whitespace
  • Wolfram
  • X10
  • xBase
  • XBase++
  • XC
  • Xen
  • Xojo: REALbasic, Xojo
  • XPL
  • XQuery
  • XSLT
  • Xtend
  • yacc
  • Yorick
  • Z shell: Z shell, zsh

Como são realizadas as avaliações das linguagens de programação?

As classificações das linguagens de programação são calculadas contando os hits dos mecanismos de pesquisa mais populares. A consulta de pesquisa usada é

+ “<language> programing”

O número de ocorrências determina as classificações de um idioma. As ocorrências contadas são de acordo com cada mecanismo de pesquisa para todos as linguagens da lista. Em outras palavras, todos os idiomas juntos têm uma pontuação de 100%.

Vamos definir “hits (SE)” como a soma do número de hits de todas as linguagens para o mecanismo de pesquisa SE e “hits (PL, SE)” como o número de hits da linguagem de programação PL do mecanismo de pesquisa SE.

Os possíveis falsos positivos para uma consulta já foram filtrados na definição de “hits (PL, SE)”. Isso é feito usando um fator de confiança determinado manualmente por consulta. Uma consulta como “Programação básica” também retorna páginas que contêm “Melhore suas habilidades básicas de programação em Java”.

As primeiras 100 páginas por mecanismo de pesquisa são verificadas quanto a possíveis falsos positivos e isso é usado para definir o fator de confiança. Se esse fator for 90%, apenas 90% dos hits serão usados ??para “hits (PL, SE)”.

As classificações são calculadas com a seguinte fórmula:

((ocorrências (PL, SE1)/ocorrências (SE1) + … + ocorrências (PL, SEn)/ocorrências (SEn))/n
onde n é o número de mecanismos de pesquisa usados.

Se você possui alguma ideia para melhorar o cálculo do índice TIOBE poderá enviar e-mail para tpci@tiobe.com. Todos os e-mails serão analisados.

Com informações do TIOBE.

Talvez você queira ler outros artigos relacionados:

Share This Article
Follow:
Fundador do SempreUPdate. Acredita no poder do trabalho colaborativo, no GNU/Linux, Software livre e código aberto. É possível tornar tudo mais simples quando trabalhamos juntos, e tudo mais difícil quando nos separamos.
Sair da versão mobile