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

TIOBE 编程社区指数定义

由于对 TIOBE 指数的编制方式存在诸多疑问,因此专门设置了一个页面来解释其定义。基本而言,计算方法归结为统计搜索查询的点击量

+"<language> programming"

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

搜索引擎

有 25 个搜索引擎用于计算 TIOBE 指数。所选的搜索引擎是 Similarweb 排名最高的 25 个网站,它们需满足以下条件:

  • 网站的入口页面包含搜索功能
  • 查询网站的结果包含页面点击数的指示
  • 结果应以带有清晰标签的 HTML 格式提供
  • 使用特殊字符语言的搜索引擎应正确编码
  • 搜索引擎至少应为 1 次查询返回 1 次点击
  • 查询网站的结果不应包含过多异常值
  • 色情网站被排除在外

根据这些标准,以下搜索引擎符合条件:

  • Google.com: 9.06%
  • Wikipedia.org: 8.70%
  • Amazon.com: 7.97%
  • Microsoft.com: 7.61%
  • Amazon.co.jp: 6.88%
  • Ebay.com: 6.52%
  • Sharepoint.com: 6.16%
  • Rakuten.co.jp: 5.80%
  • Google.de: 5.43%
  • Google.co.jp: 5.07%
  • Amazon.de: 4.71%
  • Amazon.in: 4.35%
  • Walmart.com: 3.99%
  • Amazon.co.uk: 3.62%
  • Google.com.br: 3.26%
  • Google.it: 2.90%
  • Google.co.uk: 2.54%
  • Google.fr: 2.17%
  • Amazon.ca: 1.81%
  • Ebay.co.uk: 1.45%
  • Amazon.it: 1.09%
  • Google.ca: 0.72%
  • Google.es: 0.36%

以下搜索引擎因所示原因不符合条件:

  • Aliexpress.com: 无计数器
  • Apple.com: 无任何结果
  • Bilibili.com: 无计数器
  • Bing.com: 无计数器
  • Canva.com: 无搜索字段
  • Chatgpt.com: 无任何结果
  • Cnn.com: 无任何结果
  • Discord.com: 无搜索字段
  • Duckduckgo.com: 无计数器
  • Dzen.ru: 无计数器
  • Facebook.com: 无搜索字段
  • Fandom.com: 无任何结果
  • Github.com: 无任何结果
  • Globo.com: 无任何结果
  • Imdb.com: 无任何结果
  • Instagram.com: 无搜索字段
  • Linkedin.com: 无计数器
  • Live.com: 无任何结果
  • Mail.ru: 无计数器
  • Microsoftonline.com: 无网站
  • Msn.com: 无计数器
  • Naver.com: 无计数器
  • Netflix.com: 无搜索字段
  • News.yahoo.co.jp: 来源无法解析
  • Nytimes.com: 无任何结果
  • Office.com: 无搜索字段
  • Ozon.ru: 来源无法解析
  • Pari-match-in.com: 无网站
  • Paypal.com: 无搜索字段
  • Pinterest.com: 无搜索字段
  • Pornhub.com: 色情网站
  • Quora.com: 无计数器
  • Reddit.com: 无计数器
  • Roblox.com: 无搜索字段
  • Samsung.com: 无任何结果
  • Spotify.com: 无任何结果
  • Stripchat.com: 色情网站
  • T.me: 无搜索字段
  • Temu.com: 无计数器
  • Tiktok.com: 无计数器
  • Twitch.tv: 无计数器
  • Twitter.com: 无搜索字段
  • 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 次点击。

非常相似的编程语言会被归类在一起。目前,在计算分组评分时,会考虑各语言点击量的最大值。将来,我们将改进方法,并取所有点击量的并集(来自数学集合论)。

关于语言如何分组的定义已根据以下规则正式化:

  • 如果一种语言有其自己的维基百科条目,则不会与其他语言分组。
  • 如果语言 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 (例外:-tv -channel)
  • ActionScript: ActionScript, AS1, AS2, AS3
  • Ada
  • Agilent VEE
  • Algol
  • Alice: Alice (置信度: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 (置信度: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%,例外:-"computer game" -"computer graphics")
  • Ch: Ch (例外:+ChScite)
  • Chapel: Chapel (例外:-christ)
  • 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%,例外:-healing), crystallang
  • cT
  • Curl
  • D: D (置信度:90%,例外:-"3-D programming" -"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 -interface)
  • 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 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 (置信度:5%)
  • Perl
  • PHP
  • Pike
  • PILOT: PILOT (置信度:50%,例外:-"Palm Pilot programming")
  • 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: Programming Without Coding Technology, PWCT
  • Prolog
  • Pure Data: Pure Data, PD
  • PureBasic
  • Python
  • Q
  • R: R (置信度:90%,例外:+"statistical")
  • Racket
  • Raku: Perl 6, Raku
  • REBOL
  • Red: Red (置信度:20%)
  • REXX
  • Ring
  • RPG: RPG (置信度:80%,例外:-role), RPGLE, ILERPG, RPGIV, RPGIII, RPG400, RPGII, RPG4
  • RPL
  • Ruby
  • Rust: Rust, Rustlang
  • S-PLUS: S-PLUS (例外:+statistical)
  • S: S (例外:+statistical)
  • SAS
  • Sather
  • Scala
  • Scheme: Scheme (例外:-tv -channel)
  • 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
  • Structured Text
  • 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
  • V: V (置信度:80%)
  • 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)" 为搜索引擎 SE 中编程语言 PL 的点击量。查询中可能出现的误报在 "hits(PL,SE)" 的定义中已被过滤。这是通过对每个查询使用手动确定的置信度来完成的。例如,查询“Basic programming”也会返回包含“Improve your basic programming skills in Java”的页面。每个搜索引擎的前 100 个页面都会检查是否存在可能的误报,并以此来定义置信度。如果该因子为 90%,则 "hits(PL,SE)" 仅使用 90% 的点击量。

评分通过以下公式计算:

(hits(PL,SE1)/hits(SE1) + ... + hits(PL,SEn)/hits(SEn))/n

其中 n 是所使用的搜索引擎数量。

任何关于改进 TIOBE 指数计算方法的建议或想法都将不胜感激(tpci@tiobe.com)。

获取您自己的概念验证

好奇您的项目将如何通过我们的 TiCS 框架进行排名吗?立即申请概念验证,以发现您的代码质量。

请求演示