注意! Internet Explorer 浏览器不再受支持。因此,本网站可能无法正常运行。请使用其他浏览器以获得最佳体验。 点击此处下载其他浏览器

TIOBE 编程社区指数定义

由于有许多关于 TIOBE 指数如何组成的疑问,特此设立一个专门页面来介绍其定义。基本上,计算方法归结为统计以下搜索查询的命中次数

+"<language> programming"

在接下来的几节中,将解释哪些搜索引擎符合条件,哪些编程语言符合条件,以及评分是如何精确计算的。

搜索引擎

有 25 个搜索引擎用于计算 TIOBE 指数。选定的搜索引擎是 Similarweb 网站排名前 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%

以下搜索引擎因 указанной причине 不符合条件

  • Aliexpress.com: 无计数器
  • Baidu.com: 来源无法解析
  • Bilibili.com: 无计数器
  • Canva.com: 无搜索字段
  • Chatgpt.com: 完全没有结果
  • Cnn.com: 完全没有结果
  • Duckduckgo.com: 无计数器
  • Dzen.ru: 无计数器
  • Facebook.com: 无搜索字段
  • Fandom.com: 完全没有结果
  • Globo.com: 无计数器
  • Instagram.com: 无搜索字段
  • Linkedin.com: 无计数器
  • Live.com: 无搜索字段
  • Mail.ru: 无计数器
  • Microsoftonline.com: 非网站
  • Naver.com: 无计数器
  • Netflix.com: 无搜索字段
  • News.yahoo.co.jp: 来源无法解析
  • Office.com: 无搜索字段
  • Ozon.ru: 来源无法解析
  • Pari-match-in.com: 非网站
  • Pinterest.com: 无搜索字段
  • Pornhub.com: 色情网站
  • Quora.com: 无计数器
  • Reddit.com: 无计数器
  • Samsung.com: 完全没有结果
  • Stripchat.com: 色情网站
  • T.me: 无搜索字段
  • Temu.com: 无计数器
  • Tiktok.com: 无计数器
  • Twitch.tv: 无计数器
  • Vk.com: 无计数器
  • Weather.com: 完全没有结果
  • Whatsapp.com: 无搜索字段
  • X.com: 无搜索字段
  • Xhamster.com: 色情网站
  • Xnxx.com: 色情网站
  • Xvideos.com: 色情网站
  • Yahoo.co.jp: 来源无法解析
  • Yahoo.com: 来源无法解析
  • Yandex.ru: 来源无法解析
  • Youtube.com: 无计数器
  • Zoom.us: 来源无法解析

编程语言

本节阐明了 TIOBE 指数中哪些内容被视为编程语言。需要满足以下 3 个要求

  • 该语言应在 维基百科 上有自己的条目,并且维基百科应明确声明其涉及编程语言。这就是 (Ruby on) Rails、Excel、Android、Boost、Cocoa、ASP 和 AJAX 未被视为该指数的编程语言的原因。
  • 编程语言应是 图灵完备 的。因此,HTML 和 XML 不被视为编程语言。
  • 编程语言在 Google 中应至少有 5,000 个 +"<language> programming" 的搜索结果。

非常相似的编程语言被归为一组。目前,在计算分组的评分时,会考虑单个语言的命中次数的最大值。未来,我们将做得更好,并采用所有命中次数的并集(来自数学集合论)。

语言分组的定义已根据以下规则正式确定

  • 如果一种语言有自己的维基百科条目,则不会与其他语言分组。
  • 如果语言 A 自动重定向到另一个维基百科条目 B,则语言 A 将与语言 B 分组在一起。
  • 如果语言 A 没有单独的维基百科条目,但在另一个维基百科条目 B 中被提及,则语言 A 将与语言 B 分组在一起。

为了过滤掉误报,使用了两种机制。首先,为语言定义置信度。默认情况下,置信度为 100%,但对于某些难以搜索的查询(如“Basic Programming”),置信度会较低。除了置信度之外,有时还会使用例外或强制添加项来排除误报。

下表包含所有跟踪的编程语言,包括其分组、置信度和例外情况。

  • (Visual) FoxPro: FoxPro, Fox Pro, VFP, VFPA
  • 1C:企业脚本
  • 4th Dimension/4D: 4D, 4th Dimension
  • ABAP
  • ABC: ABC (例外: -tv -频道)
  • ActionScript: ActionScript, AS1, AS2, AS3
  • Ada
  • Agilent VEE
  • Algol
  • Alice: Alice (置信度: 90%)
  • Angelscript
  • Apex
  • APL
  • Applescript
  • Arc
  • AspectJ
  • 汇编语言: Assembly, Assembly language
  • ATLAS
  • AutoHotkey: AutoHotkey, AHK
  • AutoIt
  • AutoLISP
  • Automator
  • Avenue
  • Awk: Awk, Mawk, Gawk, Nawk
  • B4X
  • Ballerina
  • Bash
  • Basic: Basic (置信度: 0%)
  • BBC BASIC
  • bc
  • BCPL
  • BETA: BETA (置信度: 10%)
  • BlitzMax: BlitzMax, BlitzBasic, Blitz Basic
  • Boo
  • Bourne shell: Bourne shell, sh
  • Brainfuck
  • C shell: Csh, C shell (置信度: 90%)
  • C#: C#, C-Sharp, C Sharp, CSharp, CSharp.NET, C#.NET
  • C++
  • C++/CLI
  • C-Omega
  • C: C (例外: -"Objective-C")
  • Caml
  • Carbon
  • Ceylon
  • CFML: CFML, ColdFusion
  • cg: cg (置信度: 80%, 例外: -"计算机游戏" -"计算机图形")
  • Ch: Ch (例外: +ChScite)
  • Chapel: Chapel (例外: -基督)
  • CHILL
  • CIL
  • Citrine
  • CL (OS/400): CL (例外: -Lisp), CLLE
  • Clarion
  • Classic Visual Basic: Visual Basic (置信度: 50%), VB (置信度: 50%), VBA, VB6
  • Clean: Clean (置信度: 43%)
  • Clipper
  • CLIPS
  • Clojure: Clojure, ClojureScript
  • CLU
  • COBOL
  • Cobra
  • CoffeeScript
  • COMAL
  • Common Lisp
  • CORAL 66
  • Crystal: Crystal (置信度: 61%, 例外: -治疗), crystallang
  • cT
  • Curl
  • D: D (置信度: 90%, 例外: -"3-D 编程" -"DTrace"), dlang
  • Dart
  • DCL
  • Delphi/Object Pascal: DwScript, Object Pascal, Delphi, Delphi.NET, Pascal (置信度: 95%)
  • DiBOL: DBL, Synergy/DE, DIBOL
  • Dylan
  • E: E (例外: +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 (置信度: 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 (置信度: 90%)
  • IDL: IDL (例外: -corba -接口)
  • Idris
  • Inform
  • Informix-4GL
  • INTERCAL
  • Io
  • Ioke
  • J#
  • J: J (置信度: 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 (置信度: 90%, 例外: -tv)
  • LotusScript
  • LPC
  • Lua: Lua, LuaJIT
  • Lustre
  • M4
  • MAD: MAD (置信度: 50%)
  • Magic: Magic (置信度: 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 批处理
  • 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 (置信度: 5%)
  • Perl
  • PHP
  • Pike
  • PILOT: PILOT (置信度: 50%, 例外: -"Palm Pilot 编程")
  • PL/I: PL/1, PL/I
  • PL/SQL
  • Pliant
  • Pony
  • PostScript: PostScript, PS
  • POV-Ray
  • PowerBasic
  • PowerScript
  • PowerShell
  • Processing: Processing (例外: +"sketchbook")
  • 无代码编程技术: Programming Without Coding Technology, PWCT
  • Prolog
  • Pure Data: Pure Data, PD
  • PureBasic
  • Python
  • Q
  • R: R (置信度: 90%, 例外: +"统计")
  • Racket
  • Raku: Perl 6, Raku
  • REBOL
  • Red: Red (置信度: 20%)
  • REXX
  • Ring
  • RPG: RPG (置信度: 80%, 例外: -角色扮演), RPGLE, ILERPG, RPGIV, RPGIII, RPG400, RPGII, RPG4
  • RPL
  • Ruby
  • Rust: Rust, Rustlang
  • S-PLUS: S-PLUS (例外: +统计)
  • S: S (例外: +统计)
  • SAS
  • Sather
  • Scala
  • Scheme: Scheme (例外: -tv -频道)
  • Scratch
  • sed
  • Seed7
  • SIGNAL: SIGNAL (置信度: 10%)
  • Simula
  • Simulink
  • Slate: Slate (置信度: 57%)
  • Small Basic
  • Smalltalk
  • Smarty
  • Snap!
  • SNOBOL
  • Solidity
  • SPARK
  • SPSS
  • SQL
  • SQR
  • Squeak
  • Squirrel
  • Standard ML: Standard ML, SML
  • Stata
  • 结构化文本
  • Suneido
  • SuperCollider: SuperCollider (置信度: 80%)
  • Swift
  • SystemVerilog: SystemVerilog, Verilog
  • TACL
  • Tcl: Tcl/Tk, Tcl
  • tcsh
  • Tex
  • thinBasic
  • TOM: TOM (置信度: 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 (置信度: 50%), VB (置信度: 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, zlang

评分

评分是通过统计最受欢迎的搜索引擎的命中次数来计算的。使用的搜索查询是

+"<language> programming"

命中次数决定了语言的评分。对于列表中所有语言,计数的命中次数针对每个搜索引擎进行了标准化。换句话说,所有语言的总分数为 100%。我们将“hits(SE)”定义为搜索引擎 SE 所有语言的命中次数之和,将“hits(PL,SE)”定义为编程语言 PL 在搜索引擎 SE 中的命中次数。查询的可能误报已在“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 是使用的搜索引擎的数量。

我们将不胜感激地接受关于改进 TIOBE 指数计算的建议或想法 (tpci@tiobe.com)。

获取您自己的概念验证

想知道您的项目在我们的 TiCS 框架中如何排名吗?立即请求您的概念验证,以了解您的代码质量。

请求演示