取代不了的 Java, 挡不住势头的 Python, 吐槽不尽的 C++...... 数百种编程语言中也仅有那么几种当属主流语言, 而如今这些主流的编程语言局势如何? 身处其中的开发者又需要了解哪些内容?
本文无意挑起编程语言争端, 而是希望以最新的趋势一窥当前各大主流语言的发展现状.
01:Python 从小众语言到主流的逆袭
从榜单来看, 曾经铁打的 Java,C,C++ 局势, 早已在数月前被 Python 的闯入而打破. 而究其根由, 并非是 C++ 的应用领域正在逐渐缩减, 而是随着人工智能, 机器学习的崛起, 适用于该领域的 Python 才会水涨船高, 带起了市场份额. 这也是为什么在 Java,C,C++,Visual Basic .NET 等一众编程语言使用率增幅放缓的情况下, Python 仍能以 2.39% 的增率保持强劲的增长势头.
而对于 Python 的未来, 根据央广网报道, 2018 年中国人工智能核心产业规模已达到 686 亿元, 在 2019 年中, 科技部副部长李萌表示将着重加快项目部署实施, 强化基础研究, 加大芯片, 工具和平台等研发力度. 因此在人工智能项目将实现规模化落地的前景之下, 作为基础研发支持的 Python 语言, 至少在国内的大环境中, 应用需求也将进一步扩大.
02:"众口难调" 的编程语言
此外, 通过 3 月的编程语言排行榜, 我们虽然看到了 Java,C,C++ 等语言位于 Top 5 的位置, 但事实上, 在日常应用中, 开发者对其的吐槽也越来越盛.
排名第一的 Java, 依然有人嫌弃
在过往的这些年中, 无论是 Google 扶持的 Kotlin, 还是其亲儿子 Go 语言, 亦或是高可靠性的 Erlang, 均对语言界的龙头老大 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++ 教程不是一千页以上的?!
推荐 c/c++ 学习交流 Q 群 741818652
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 等多个平台上运行.
第 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:Top 10 编程语言 TIOBE 指数走势(2002-2019)
05: 历史排名(1998-2019)
注: 以下排名位次取决于 12 个月的平均值.
06: 编程语言 "名人榜"(2003-2018)
[说明]
TIOBE 编程社区指数 (The TIOBE Programming Community index) 是编程语言流行度的指标, 该榜单每月更新一次, 指数基于全球技术工程师, 课程和第三方供应商的数量. 包括流行的搜索引擎, 如谷歌, 必应, 雅虎, 维基百科, 亚马逊, YouTube 和百度都用于指数计算. 具体的计算方式见这里: https://www.tiobe.com/tiobe-index/programming-languages-definition/.
值得注意的是, TIOBE 指数并不代表语言的好坏, 开发者可以使用该榜单检查自身的编程技能是否需要更新, 或者在开始构建新软件时对某一语言做出选择.
题外: 坚持 C++ 的道友请进!!!
其实作为一个开发者或者编程学习者, 有一个学习的氛围跟一个交流圈子特别重要! 这里我要推荐我的一个 C 语言 c++ 交流 Q 群, 不管你是大牛还是小白, 大家都一起成长进步. 群内小编会不定期分享学习资源, 欢迎各位有兴趣的小伙伴哦.
来源: http://www.jianshu.com/p/632f6702a25e