【转】TIOBE 12 月排行榜:古老的 C 和后起之秀 Kotlin,谁是年度编程语言之王?

简介: 转瞬之间,今年已进入为期不足一个月的倒计时模式。在编程语言界,谁将问鼎 2017  年度编程语言?诸多开发者众说纷纭,有人说是最近风头正盛且被纳入中国高考科目的 Python、有人认为还是老牌常青藤 Java、亦有人赞成是今年刚被 Google 拥抱的 Kotlin? 然而根据最新的 TIOBE 12 月编程语言排行榜来看,年度最佳候选人除了以上猜中的一个 Kotlin 之外,我们还发现了一个意想不到的候选人——C 语言。

转瞬之间,今年已进入为期不足一个月的倒计时模式。在编程语言界,谁将问鼎 2017  年度编程语言?诸多开发者众说纷纭,有人说是最近风头正盛且被纳入中国高考科目的 Python、有人认为还是老牌常青藤 Java、亦有人赞成是今年刚被 Google 拥抱的 Kotlin?

然而根据最新的 TIOBE 12 月编程语言排行榜来看,年度最佳候选人除了以上猜中的一个 Kotlin 之外,我们还发现了一个意想不到的候选人——C 语言。

年度编程语言最佳候选人:Kotlin vs. C

对于较新的 Kotlin,于 2011 年由 JetBrains 发布,能运行于 Java 虚拟机之上。今年 5 月,Google 将其选为 Android 官方语言,Kotlin 因此拥有了一定的知名度,甚至不少开发者还认为它即将撼动 Java 的霸主之位。因此,Kotlin 能成为今年年度编程语言最佳得主的候选人之一,也属于意料之中。

而作为竞争对手的 C 语言,是世界上最古老的编程语言之一。虽说从近几个月的 TIOBE 编程语言排行榜中,C 语言一直名列第二,但距离上一次 C 语言获得年度编程语言已时隔 9 年。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

如今,对于其为何再次成为候选人之一,很多人百思不得其解。

事实上,近几年,由于小型软件设备的普及,以及低端软件在汽车行业的增长,C 语言在 2017 年收获了不小的流行度。此外,还有不少网友表示:物联网来袭,C 语言自然又得雄起。

12 月编程语言排行榜 TOP20 榜单

与 TIOBE 11 月编程语言排行榜相比,Top 5 中 Java、C、C++、Python、C# 排名并未有所变化,而专门为统计和数据分析开发的 R 语言一路飙升至前十名。此外,上个月大有跌出 Top 20 之势的 Swift 和 Objective-C 在这个月也逐渐回缓。

0?wx_fmt=png

Top 10 编程语言 TIOBE 指数走势(2002-2016)

0?wx_fmt=png

其他编程语言排名

第 21-50 名如下,可能存在遗漏:

0?wx_fmt=png

0?wx_fmt=png

第51-100名如下,由于它们之间的数值差异较小,仅以文本形式列出(按字母排序):

  • 4th Dimension/4D, ABC, ActionScript, APL, AutoLISP, Bash, bc, Bourne shell, C shell, cg, CL (OS/400), Clipper, Common Lisp, Elixir, Elm, Euphoria, F#, Forth, Haskell, Icon, IDL, Inform, Io, J, Korn shell, Ladder Logic, LiveCode, Magic, ML, MOO, MQL4, MUMPS, NATURAL, NXT-G, OpenCL, OpenEdge ABL, Oz, PL/I, PowerShell, Q, REXX, Ring, RPG (OS/400), Scheme, Smalltalk, SPARK, SPSS, Standard ML, Stata, Tcl

历史排名(1987-2017)

注: 以下排名位次取决于 12 个月的平均值。

0?wx_fmt=png

编程语言“名人榜”( 2003-2016)

“年度编程语言”获奖名单如下图所示,该奖项授予一年中评分最高的编程语言:

0?wx_fmt=png

【说明】

TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如 Google、MSN、Yahoo!、Wikipedia、YouTube 以及 Baidu 等)进行计算。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。

这个排行榜可以用来考查你的编程技能是否与时俱进,也可以在开发新系统时作为一个语言选择依据。

谁是年度编程语言之王?

对于年度编程语言最终花落谁家?下个月即将揭晓谜底。

在此,也欢迎你分享对远古巨兽出现的现代时代的 C、让 Android 应用开发更简单的 Kotlin 两位候选语言的看法,以及为何 Python 不在候选者之列呢?

————— END —————

目录
相关文章
|
3月前
|
安全 Java Linux
Kotlin 编程语言详解:特点、应用领域及语法教程
**Kotlin**是JetBrains于2016年推出的编程语言,兼容Java,广泛用于移动(尤其是Android)、Web、服务器及数据科学。它的语法简洁安全,支持多平台,学习曲线平缓,且拥有活跃的社区。`main()`函数是程序入口,`println()`用于输出,而`print()`不换行。注释以`//`开始单行,`/* */`包裹多行
67 0
|
前端开发 Java Spring
Spring BOOT ( 基于Kotlin 编程语言) 使用 Spring WebFlux 实现响应式编程
Spring BOOT ( 基于Kotlin 编程语言) 使用 Spring WebFlux 实现响应式编程 image.png 参考文档:https://docs.
1632 0
|
26天前
|
调度 Android开发 开发者
【颠覆传统!】Kotlin协程魔法:解锁Android应用极速体验,带你领略多线程优化的无限魅力!
【8月更文挑战第12天】多线程对现代Android应用至关重要,能显著提升性能与体验。本文探讨Kotlin中的高效多线程实践。首先,理解主线程(UI线程)的角色,避免阻塞它。Kotlin协程作为轻量级线程,简化异步编程。示例展示了如何使用`kotlinx.coroutines`库创建协程,执行后台任务而不影响UI。此外,通过协程与Retrofit结合,实现了网络数据的异步加载,并安全地更新UI。协程不仅提高代码可读性,还能确保程序高效运行,不阻塞主线程,是构建高性能Android应用的关键。
34 4
|
2月前
|
安全 Android开发 Kotlin
Android经典面试题之Kotlin延迟初始化的by lazy和lateinit有什么区别?
**Kotlin中的`by lazy`和`lateinit`都是延迟初始化技术。`by lazy`用于只读属性,线程安全,首次访问时初始化;`lateinit`用于可变属性,需手动初始化,非线程安全。`by lazy`支持线程安全模式选择,而`lateinit`适用于构造函数后初始化。选择依赖于属性特性和使用场景。**
86 5
Android经典面试题之Kotlin延迟初始化的by lazy和lateinit有什么区别?
|
2月前
|
安全 Android开发 Kotlin
Android经典面试题之Kotlin中常见作用域函数
**Kotlin作用域函数概览**: `let`, `run`, `with`, `apply`, `also`. `let`安全调用并返回结果; `run`在上下文中执行代码并返回结果; `with`执行代码块,返回结果; `apply`配置对象后返回自身; `also`附加操作后返回自身
36 8
|
2月前
|
安全 Java Android开发
探索Android应用开发中的Kotlin语言
【7月更文挑战第19天】在移动应用开发的浩瀚宇宙中,Kotlin这颗新星以其简洁、安全与现代化的特性,正迅速在Android开发者之间获得青睐。从基本的语法结构到高级的编程技巧,本文将引导读者穿梭于Kotlin的世界,揭示其如何优化Android应用的开发流程并提升代码的可读性与维护性。我们将一起探究Kotlin的核心概念,包括它的数据类型、类和接口、可见性修饰符以及高阶函数等特性,并了解这些特性是如何在实际项目中得以应用的。无论你是刚入门的新手还是寻求进阶的开发者,这篇文章都将为你提供有价值的见解和实践指导。
|
2月前
|
SQL 安全 Java
Android经典面试题之Kotlin中object关键字实现的是什么类型的单例模式?原理是什么?怎么实现双重检验锁单例模式?
Kotlin 单例模式概览 在 Kotlin 中,`object` 关键字轻松实现单例,提供线程安全的“饿汉式”单例。例如: 要延迟初始化,可使用 `companion object` 和 `lazy` 委托: 对于参数化的线程安全单例,结合 `@Volatile` 和 `synchronized`
38 6
|
2月前
|
存储 前端开发 测试技术
Android Kotlin中使用 LiveData、ViewModel快速实现MVVM模式
使用Kotlin实现MVVM模式是Android开发的现代实践。该模式分离UI和业务逻辑,借助LiveData、ViewModel和DataBinding增强代码可维护性。步骤包括创建Model层处理数据,ViewModel层作为数据桥梁,以及View层展示UI。添加相关依赖后,Model类存储数据,ViewModel类通过LiveData管理变化,而View层使用DataBinding实时更新UI。这种架构提升代码可测试性和模块化。
119 2
下一篇
DDNS