请注意! 不再支持 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%

以下搜索引擎因指出的原因而没有资格

  • 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 个要求

  • 该语言应在Wikipedia上拥有自己的条目,并且 Wikipedia 应明确指出它涉及的编程语言。因此,(Ruby on)Rails、Excel、Android、Boost、Cocoa、ASP和 AJAX 未被认为是索引的编程语言。
  • 编程语言应是图灵完备。因此,HTML和 XML 不被视为编程语言。
  • 该编程语言对于 Google 中的“+”<language> 编程”应至少有 5,000 次点击。

非常相似的编程语言被归为一组。在计算分组评级时,目前采用单个语言的最大点击量。未来,我们将做得更好,采用集合论中的所有点击量的并集。

根据以下规则,对归为一组的语言的定义已形式化

  • 如果一种语言有自己的 Wikipedia 条目,则它不会与另一种语言归为一组。
  • 如果语言 A 自动重定向到其他 Wikipedia 条目 B,则 A 将与 B 归为一组。
  • 如果语言 A 没有独立的 Wikipedia 条目,但作为另一个 Wikipedia 条目 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、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 脚本
  • JavaScript: JavaScript, JS, SSJS
  • JScript
  • JScript.NET
  • Julia: Julia, Julialang, julia-lang
  • Korn shell: Korn shell, ksh
  • Kotlin
  • LabVIEW
  • 梯形图逻辑
  • 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)
  • 非编码技术编程:非编码技术编程,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
  • 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
  • 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%。我们将“点击量(SE)”定义为搜索引擎 SE 中所有语言点击量的总和,将“点击量(PL,SE)”定义为搜索引擎 SE 中编程语言 PL 的点击量。查询中可能的误报已在“点击量(PL,SE)”的定义中过滤掉。这是通过对每个查询使用手动确定的置信度因子来实现的。类似“基本编程”这样的查询也会返回包含“用 Java 提升您的基本编程技能”的内容。每个搜索引擎的前 100 页都将被检查是否存在可能的误报,然后用它来定义置信度因子。如果此因子为 90%,则“点击量(PL,SE)”中只使用 90% 的点击量。

等级的计算使用以下公式

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

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

将感激地接受有关 TIOBE 指数计算改进的人工制品或想法 ([email protected])。

获取您自己的概念验证

好奇我们的 TiCS 框架将如何对您的项目进行排名?现在要求您的概念验证,以了解您代码的质量。

请求演示