TIOBE 编程社区指数定义
TIOBE 编程社区指数定义
TIOBE 编程语言排名根据语言的搜索查询命中数进行计算。
在计算范围的搜索引擎和编程语言如下。
搜索引擎
有 25 个搜索引擎用于计算 TIOBE 指数。选定的搜索引擎是 Similarweb1 中排名最高且满足以下条件的 25 个网站:
- 网站的入口页面包含一个搜索工具
- 查询网站的结果包含页面点击数
- 结果应以 HTML 格式提供,并带有清晰的标签
- 使用特殊字符的语言的搜索引擎应该进行适当的编码
- 搜索引擎应至少为 1 个查询返回 1 个命中
- 查询网站的结果不应包含太多异常值
- 色情网站排除在外
根据这些标准,以下搜索引擎是合格的:
- Google.com: 7.69%
- Wikipedia.org: 7.38%
- Amazon.com: 7.08%
- Bing.com: 6.77%
- Microsoft.com: 6.46%
- Sharepoint.com: 6.15%
- Ebay.com: 5.85%
- Amazon.co.jp: 5.54%
- Rakuten.co.jp: 5.23%
- Msn.com: 4.92%
- Google.de: 4.62%
- Google.co.jp: 4.31%
- Amazon.de: 4.00%
- Amazon.in: 3.69%
- Walmart.com: 3.38%
- Amazon.co.uk: 3.08%
- Google.com.br: 2.77%
- Google.it: 2.46%
- Google.co.uk: 2.15%
- Google.fr: 1.85%
- Amazon.ca: 1.54%
- Ebay.co.uk: 1.23%
- Amazon.it: 0.92%
- Google.ca: 0.62%
- Google.es: 0.31%
以下搜索引擎不符合要求,原因如下:
- Baidu.com: SOURCES_NOT_PARSABLE
- Bbc.co.uk: NO_COUNTERS
- Bilibili.com: NO_COUNTERS
- Canva.com: NO_SEARCH_FIELD
- Chatgpt.com: NO_RESULTS_AT_ALL
- Duckduckgo.com: NO_COUNTERS
- Dzen.ru: NO_COUNTERS
- Facebook.com: NO_SEARCH_FIELD
- Fandom.com: NO_RESULTS_AT_ALL
- Globo.com: NO_COUNTERS
- Instagram.com: NO_SEARCH_FIELD
- Kwai-video.com: NO_RESULTS_AT_ALL
- Lazlogistics.ph: NO_WEBSITE
- Linkedin.com: NO_COUNTERS
- Live.com: NO_SEARCH_FIELD
- Mail.ru: NO_COUNTERS
- Microsoftonline.com: NO_WEBSITE
- Naver.com: NO_COUNTERS
- Netflix.com: NO_SEARCH_FIELD
- News.yahoo.co.jp: SOURCES_NOT_PARSABLE
- Office.com: NO_SEARCH_FIELD
- Ozon.ru: SOURCES_NOT_PARSABLE
- Pemsrv.com: PORN_SITE
- Pinterest.com: NO_SEARCH_FIELD
- Pornhub.com: PORN_SITE
- Quora.com: NO_COUNTERS
- Reddit.com: NO_COUNTERS
- Roblox.com: NO_SEARCH_FIELD
- Samsung.com: NO_RESULTS_AT_ALL
- T.me: NO_SEARCH_FIELD
- Tiktok.com: NO_COUNTERS
- Twitch.tv: NO_COUNTERS
- Vk.com: NO_COUNTERS
- Weather.com: NO_RESULTS_AT_ALL
- Whatsapp.com: NO_SEARCH_FIELD
- X.com: NO_SEARCH_FIELD
- Xhamster.com: PORN_SITE
- Xhamster.desi: PORN_SITE
- Xnxx.com: PORN_SITE
- Xvideos.com: PORN_SITE
- Yahoo.co.jp: SOURCES_NOT_PARSABLE
- Yahoo.com: SOURCES_NOT_PARSABLE
- Yandex.ru: SOURCES_NOT_PARSABLE
- Youtube.com: NO_COUNTERS
编程语言
在本节中,介绍了哪些编程语言会被 TIOBE 统计,应同时满足 3 个要求:
- 该语言应该在维基百科上有一个单独的条目,并且维基百科应该清楚地说明它与编程语言有关。这就是为什么 (Ruby on) Rails、Excel、Android、Boost、Cocoa、ASP 和 AJAX 被排除的原因。
- 编程语言应该是图灵完备2的。因此,HTML 和 XML 被排除。
- 该编程语言应该至少有 5,000 次 +“<language> programming” 谷歌搜索的点击。
将非常相似的编程语言归为一组。目前,在计算分组评分时,会考虑各个语言的点击量的最大值。将来,可能会采用所有命中的并集(来自数学集合论)。
根据以下规则确定语言的分组:
- 如果一种语言有自己的维基百科条目,则不会与另一种语言归为一组。
- 如果一种语言 A 自动重定向到另一个维基百科条目 B,则 A 将与 B 归为一组。
- 如果一种语言 A 没有单独的维基百科条目,但作为另一个维基百科条目 B 的一部分被提及,则 A 将与 B 归为一组。
使用了两种机制来排除误报。首先,为一种语言定义了置信度。默认情况下,置信度为 100%,但对于一些困难的搜索查询,例如 “Basic Programming”,置信度会偏低。除了置信度之外,有时还会使用异常或强制添加来排除误报。
下表包含跟踪的所有编程语言,包括其分组、置信度和异常。
- (Visual) FoxPro: FoxPro, Fox Pro, VFP, VFPA
- 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
- B4X
- Ballerina
- 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++
- C++/CLI
- C-Omega
- C: C (exceptions: -“Objective-C”)
- Caml
- Carbon
- Ceylon
- CFML: CFML, ColdFusion
- cg: cg (confidence: 80%, exceptions: -“computer game” -“computer graphics”)
- Ch: Ch (exceptions: +ChScite)
- Chapel: Chapel (exceptions: -christ)
- CHILL
- CIL
- Citrine
- CL (OS/400): CL (exceptions: -Lisp), CLLE
- Clarion
- Classic Visual Basic: Visual Basic (confidence: 50%), VB (confidence: 50%), VBA, VB6
- Clean: Clean (confidence: 43%)
- Clipper
- CLIPS
- Clojure: Clojure, ClojureScript
- CLU
- COBOL
- Cobra
- CoffeeScript
- COMAL
- Common Lisp
- CORAL 66
- Crystal: Crystal (confidence: 61%, exceptions: -healing), crystallang
- cT
- Curl
- D: D (confidence: 90%, exceptions: -“3-D programming” -“DTrace”), dlang
- Dart
- DCL
- Delphi/Object Pascal: DwScript, Object Pascal, Delphi, Delphi.NET, Pascal (confidence: 95%)
- DiBOL: DBL, Synergy/DE, DIBOL
- Dylan
- E: E (exceptions: +specman)
- ECMAScript
- EGL
- Eiffel
- Elixir
- Elm
- Emacs Lisp: Emacs Lisp, Elisp
- Emerald
- Erlang
- Etoys
- Euphoria
- EXEC
- F#: F#, F-Sharp, FSharp, F Sharp
- Factor
- Falcon
- Fantom
- Felix: Felix (confidence: 86%)
- Forth
- Fortran
- Fortress
- FreeBASIC
- 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
- Mojo
- Monkey
- MOO
- Moto
- MQL5: MQL4, MQL5
- MS-DOS batch
- MUMPS
- NATURAL
- Nemerle
- NetLogo
- Nim: Nim, Nimrod
- Nix
- NQC
- NSIS
- NXT-G
- Oberon
- Object Rexx: Object Rexx, ooRexx, Open 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
- 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
- Raku: Perl 6, Raku
- REBOL
- Red: Red (confidence: 20%)
- REXX
- Ring
- RPG: RPG (confidence: 80%, exceptions: -role), RPGLE, ILERPG, RPGIV, RPGIII, RPG400, RPGII, RPG4
- RPL
- 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%)
- Small Basic
- Smalltalk
- Smarty
- Snap!
- SNOBOL
- Solidity
- SPARK
- SPSS
- SQL
- SQR
- Squeak
- Squirrel
- Standard ML: Standard ML, SML
- Stata
- Structured Text
- Suneido
- SuperCollider: SuperCollider (confidence: 80%)
- Swift
- SystemVerilog: SystemVerilog, Verilog
- TACL
- Tcl: Tcl/Tk, Tcl
- tcsh
- Tex
- thinBasic
- TOM: TOM (confidence: 50%)
- Transact-SQL: T-SQL, Transact-SQL, TSQL
- TypeScript: TypeScript, TS
- Uniface
- Vala/Genie: Vala, Genie
- VBScript
- VHDL
- Visual Basic: Visual Basic .NET, VB.NET, Visual Basic.NET, Visual Basic (confidence: 50%), VB (confidence: 50%)
- WebAssembly: WASM, WebAssembly
- WebDNA
- Whitespace
- Wolfram: Mathematica, Wolfram
- X++
- X10
- xBase
- XBase++
- XC
- Xen
- Xojo: REALbasic, Xojo
- XPL
- XQuery
- XSLT
- Xtend
- yacc
- Yorick
- Z shell: Z shell, zsh
- Zig: Zig, zlan
评分
评分是通过计算最流行的搜索引擎的点击量来计算的。使用的搜索查询是:
+"<language> programming"
点击数决定了语言的评分。针对列表中所有语言的每个搜索引擎,将对计数的命中数进行标准化。换句话说,所有语言的总分是 100%。我们将“hits(SE)”定义为搜索引擎 SE 的所有语言的点击数之和,将“hits(PL,SE)”定义为搜索引擎 SE 的编程语言 PL 的点击数。查询的可能误报已在“hits(PL,SE)”的定义中筛选掉。这是通过对每个查询使用手动确定的置信因子来完成的。诸如“Basic programming”之类的查询也会返回包含“Improve your basic programming skills in Java”的页面。检查每个搜索引擎的前 100 个页面是否存在可能的误报,这用于定义置信度因子。如果此系数为 90%,则只有 90% 的点击用于“hits(PL,SE)”。
评分使用以下公式计算:
(hits(PL,SE1)/hits(SE1) + ... + hits(PL,SEn)/hits(SEn))/n
其中 n 是使用的搜索引擎数量。
链接
Similarweb 是一家于 2007 年创立的以色列软件研发与数据聚合公司,通过多渠道收集数据,为用户提供网站和应用的流量、来源、行为、受众等多维度分析以及行业和股票等方面的数据与报告,帮助用户洞察市场趋势、了解竞争对手并做出决策。 ↩︎
在可计算性理论,如果一系列操作数据的规则(如指令集、编程语言、细胞自动机)可以用来模拟任何图灵机,那么它便符合图灵完备(Turing-complete或computationally universal)。这意味着这个系统也可以识别其他数据处理规则集,图灵完备性被用作表达这种数据处理规则集的一种属性。如今,几乎所有编程语言都是具有图灵完备性的。这个词以引入图灵机概念的数学家艾伦·图灵命名。 ↩︎