取代不了的 Java、挡不住势头的 Python、吐槽不尽的 C++......
数百种编程语言中也仅有那么几种当属主流语言,而如今这些主流的编程语言局势如何?身处其中的开发者又需要了解哪些内容?
本文无意挑起编程语言争端,而是希望以最新的趋势一窥当前各大主流语言的发展现状。
01. Python 语言从小众到主流的逆袭
日前,一月一更的 TIOBE 编程语言社区最新发布了 2019 年 3 月排行榜。
从榜单来看,曾经铁打的 Java、C、C++ 局势,早已在数月前被 Python 的闯入而打破。
而究其根由,并非是 C++ 的应用领域正在逐渐缩减,而是随着人工智能、机器学习的崛起,适用于该领域的 Python 才会水涨船高,带起了市场份额。
这也是为什么在 Java、C、C++、Visual Basic .NET 等一众编程语言使用率增幅放缓的情况下,Python 仍能以 2.39% 的增率保持强劲的增长势头。
/TIOBE 编程语言排行榜 Top 20 /
/TIOBE 编程语言排行榜 Top 20 /
而对于 Python 的未来,根据央广网报道,2018 年中国人工智能核心产业规模已达到 686 亿元,在2019 年中,科技部副部长李萌表示将着重加快项目部署实施,强化基础研究,加大芯片、工具和平台等研发力度。
因此在人工智能项目将实现规模化落地的前景之下,作为基础研发支持的 Python 语言,至少在国内的大环境中,应用需求也将进一步扩大。
02.“众口难调”的编程语言
此外,通过 3 月的编程语言排行榜,我们虽然看到了 Java、C、C++ 等语言位于 Top 5 的位置,但事实上,在日常应用中,开发者对其的吐槽也越来越盛。
排名第一的 Java,依然有人嫌弃
在过往的这些年中,无论是 Google 扶持的 Kotlin、还是其亲儿子 Go 语言、亦或是高可靠性的 Erlang,均对语言界的龙头老大 Java 发起过挑战,但最终都不一而终。
对此,在 CSDN 最新发布的 2018 中国软件开发者报告中,前豌豆荚技术负责人、现轻芒联合创始人范怀宇评价道:
多年以来,Java 一直都是最常用的语言 ,一方面是因为 Java 可以用在前后端开发,具有很好的普适性;另一方面,因为 JVM 虚拟机和 Java 生态的完善。在前端开发上,Kotlin 等 JVM 上的其他语言表现非常优异,和现有的 Java 类库也可以无缝兼容,会逐步在很多场景下取代 Java。
不过,在服务端开发上,Java 依然是最平衡的选择。
Java 的 Web 框架经过千锤百炼已经可以支撑足够大的并发,JVM 经过长年优化性能表现也而非常出众,而 Java 的各种类库、统一的编程模型、丰富的人才储备,也可以满足各种场景的诉求。
不过自从 Oracle 宣布 Java 版本以六个月为周期更新后,Java 的更新速度一度成为诸多开发者所诟病的点。
当前,Java 12 预计将于本月内发布,而Java 13 也已处于 Early-Access(EA,早期访问)阶段,对此,不过不少开发者大呼:
Java 更新太快不一定是好事;当前 Java 8 仍是主流;
被调到某银行,项目开始前告诉我尽情发挥。部署时各种问题,Spring Boot 换成普通 Maven 再换成 J2EE 项目,Spring 从 5.7 换成 4.3 再到 3.1,JDK 从 8 降到 7,愣是没部署成功。不说了我接着看 1.6 特性去了;
Java 9 及以上都不支持 32 位系统。让我这位拿着仅支持 32 位 Win10 系统的 ATOM 上网本给别人演示项目的情何以堪。
Oracle 应该把 Java 语言维护交还社区,专心做好 JVM 就行了,希望以后 Java 和 JVM 可以成功拆分,独立发展。
C++ 的模块化问题
广泛应用于游戏、科学计算、分布式应用、操作系统、嵌入式等领域的 C++,似乎在最新版本的 C++ 20 中遭遇了难题,即 C++ 标准委员会欲将 Modules(模块化)加入 C++ 20 中。对此,有网友认为,这无用的模块设计最终会害死自己。
同时,也有不少技术人表示,C++ 正变得越来越易用,不过这门语言该瘦身了,哪本 C++ 教程不是一千页以上的?!
03.其他编程语言排名
除此之外,在 TIOBE 榜单的 Top 10 中,C# 自从去年 7 月被 Visual Basic .NET 反超后,市场份额持续下滑,如今 Visual Basic .NET( 6.429%)的使用率几乎是 C#(3.267%)的一倍。
同时 JavaScript、Visual Basic 的名次均有所下降,不过稍许的浮动也属正常范畴。
在本月编程语言排行榜中,还值得注意的是,PowerShell 进入了 TIOBE 排行榜的前 50 名,位于第 45 名。
PowerShell 是面向 Windows 和 Windows Server 的自动化平台和脚本语言,从诞生至今已经超过 12 年。
事实上,去年微软旗下的 PowerShell 团队才推出 PowerShell Core 的第一个版本,并以 6.0 后缀来命名。
想来 Powershell 之所以会再次受欢迎,可能与之相关,因为 PowerShell Core 基于 .NET Core 上可以构建开源项目,也能在 Windows、MacOS、Linux、Ubuntu、Debian、OpenSUSE 等多个平台上运行。
/TIOBE 编程语言排行榜第 21-35 名/
/TIOBE 编程语言排行榜第 36-50 名/
第 51-100 名如下,由于它们之间的数值差异较小,仅以文本形式列出(按字母排序):
4th Dimension/4D, ABC, ActionScript, Alice, Apex, APL, Avenue, bc, Bourne shell, C shell, CL (OS/400), Clojure, Common Lisp, Crystal, cT, Elixir, Elm, Emacs Lisp, F#, Forth, Icon, IDL, Inform, Io, Korn shell, LiveCode, Maple, Mercury, Modula-2, Monkey, MQL4, MS-DOS batch, NATURAL, OpenCL, Oz, PostScript, Pure Data, Q, Ring, S, SPARK, SPSS, Standard ML, Stata, Tcl, Tex, TypeScript, Vala/Genie, VBScript, VHDL 04.Top10 编程语言指数走势
05.历史排名(1998-2019)
注:以下排名位次取决于 12 个月的平均值。
06.编程语言“名人堂”
历届“年度编程语言”获奖名单如下图所示,该奖项授予一年中评分最高的编程语言:
TIOBE 编程社区指数(The TIOBE Programming Community index)是编程语言流行度的指标,该榜单每月更新一次,指数基于全球技术工程师、课程和第三方供应商的数量。包括流行的搜索引擎,如谷歌、必应、雅虎、维基百科、亚马逊、YouTube 和百度都用于指数计算。
不过,TIOBE 指数并不代表语言的好坏,开发者可以使用该榜单检查自身的编程技能是否需要更新,或者在开始构建新软件时对某一语言做出选择 |