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.
Escolha dos mecanismos de buscas
- 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 [email protected]. Todos os e-mails serão analisados.
Com informações do TIOBE.
Talvez você queira ler outros artigos relacionados:
- Linguagens de programação: Python ultrapassa Java no GitHub à medida que o Google Dart cresce
- Vantagens e desvantagens de usar o Python com a Internet das Coisas
- 15 mil desenvolvedores apontam no Twitter suas linguagens de programação favoritas
- Os 25 erros de programação mais perigosos
- Começando a utilizar o Git com programação
- Como praticar com 16 linguagens de programação sem instalar nada