数据来源网站:https://hellogithub.com/report/tiobe/?url=/periodical/volume/46/
编程语言排行榜
首先是编程语言排行榜,截止 2020 年 02 月的排行榜如下
首先,十分明显的,第一梯队就 2 个,java 和 c。
java 可以说是编程语言的常青树了,历经 20 年依旧发光发热,可以说 java 的地位真的无可撼动。
接下来则是万恶之源,程序员入门必学的基础:C 语言。相信很多程序员都是从 C 语言的哪一个 hello world 开始入门的。C 也是最基础的编程语言,介于高级语言和汇编之间,也被成为中级语言。现代繁荣的互联网产业大厦就是在 C 的基础上诞生的。C 诞生于 1972 年,却还获得了 2019 年度明星语言,可谓是常青树中的常青树,无人能够撼动、
排名第三的 python 就比较有趣了,可以看到,python 是在近两年才迅速上升热度的,原因自然就是最近十分火热的人工智能了,能在短时间迅速崛起,足以证明它的潜力。
第四的 C#,近年来的情况还是比较稳定的,虽然不是最火的,但也还有一席之地。
第五的 Visual Basic .NET,过了增长期之后现在有所波动,但情况也还不错。
至于本人钻研许久的 JavaScript,排名仅第七,热度长期波动,不温不火。感觉自己还是对 nodejs 过于自信了一点,不要全押宝在 nodejs 上。nodejs 对 js 而言是个运行时,也是个脚手架工具。对于前端开发而言还是很有意义的。至于后端,一时半会,还很难占据什么地位。还有什么基于 nodejs 搞全栈开发的,我估计除了小公司,也就我这种刚入行的新人会这么干了。在此一定要明白一点,前端开发和后端开发的目标和规范是完全不一样的,所以全栈开发并没有想象中的那么好,还是要再考虑下。
剩下的编程语言就提一个 PHP 吧,它是排名前 10 的编程语言中唯一一个有明显下降趋势的。
那么原因是什么呢?
其实也真的很简单,因为现在的项目开发的主流是前后端分离,而 PHP 是典型的前后端耦合,自然会被淘汰。
如果你有学过 java web 开发,一定知道 jsp 这个东西,不过一般也就局限于了解,在实际的项目开发中并不会使用。原因也是 jsp 导致了前后端耦合。
那么,前后端耦合真正的问题在哪?
耦合,则意味的前后端代码难以分离,此时,如果想要对前端或后端做部分修改,就十分麻烦。而这也加重了前后端程序员的工作,对于整个项目开发而言,是非常不利的。
也就是说,前后端分离是软件工程化的要求,这样有利于明确职责,加快开发流程。
编程语言排行榜总结
下面随便说点总结。
就具体的语言而言,如果一个新人要入门的话,首选必然是最火热的 Java,其次是 python。当然,如果真的有兴趣 C/C++也不是不行,只是这个需要更多的钻研而言。
至于 JavaScript,有兴趣就学学吧,如果做前端是必然要学的。当然,如果真要学 JavaScript,本人现在更加推荐学习 TypeScript,由微软官方维护,是 JavaScript 的超集。目前主流的 js 架包都支持 TypeScript。而且对于前端模块化、工程化也就极大的帮助,可以说越大的项目使用 TypeScript 来维护优势越大
剩下的,PHP 肯定是不推荐了,当然自己有兴趣那也可以。
sql 作为关系型数据库必备工具,后端开发必然要用到,除非你和我一样使用 mongdb(这个东西后面将数据库的时候会提到)。
在这之后,我比较感兴趣的就是 go 语言了。go 是由 Google 推出的新一代编程语言。个人认为它最大的优势在于可以生成无依赖的跨平台安装包。我们知道像 java、python、js 这样的语言跨平台,都需要在对应的平台上安装它的解释器才能执行。又或者是 C、C++等是直接编译生成对应平台的程序。不过我们也知道,很多时候在直接源码编译的时候,会出现各种各样的依赖缺失,这是一个非常令人头疼的问题。而 go 语言就相当牛逼了,生成的程序是完全无依赖的,甚至不需要操作系统就能执行,非常适合用 docker 这样的应用容器来进行打包,对于分布式部署十分方便。而且因为无依赖,所有平台都只有一个可执行文件就完事了,不像传统的应用还有很多 dll 依赖。
Web 服务器排行榜
接下来就是 Web 服务器排行榜了,废话不多说,直接上图。
Web Server 说明
- **Apache:**Apache 软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行。由于其多平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。它快速、可靠并且可通过简单的 API 扩展,将 Perl/Python 等解释器编译到服务器中。
- **Microsoft:**微软提供的基于运行 Microsoft Windows 的互联网基本服务。互联网信息服务(Internet Information Services),简称 IIS。
- **Google:**谷歌自主开发的 Google Web Server,简称 gws 。
- **nginx:**由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点开发的,免费开源、轻量级、高性能 Web 服务器。
主流网站以 nginx 和 Apache 居多。个人在这一块上选择了 nginx,据说 nginx 相比 Apache 效率高而且资源占用少,因此很多网站都用 nginx 部署。
这块没什么好说的,选个自己喜欢的服务器就完事了。
另外我知道 nginx 的配置十分复杂,因此在此推荐个人写的一篇博客:centos7 下 nginx 的安装与配置。希望能对读者有所用处。
数据库排行榜
最后则是数据库排行榜,也是一样,直接上图
可以看到关系型数据库占据着绝对的主流,也就是说,如果真的要研究下数据库,那么 sql 是一个必须掌握的东西。
首先来看看排名第一的 Oracle。Oracle 更适合大型公司,也就是要存储极其大量的数据时,那么用 Oracle 是非常有必要的。不过,也正因如此,Oracle 的使用就非常麻烦了,要学习的成本很高。所以如果是个人学习使用的话更加推荐 MySQL,十分简单易上手。
至于 Microsoft SQL Server,该数据库与 Windows 绑定,对 Linux 不太友好,因此不太建议用 Microsoft SQL Server。
PostgreSQL 没有了解过就不多说。
接下来看看前五中唯一一个非关系型数据库——MongoDB。
先说下结论吧。我认为 MongoDB 和 nodejs 是绝配。也就是说,如果你用 nodejs 来开发后端,那么 MongoDB 绝对是最适合你的数据库。原因在于 MongoDB 的文档结构和 json 极其相似,基本上可以直接转换。可以说用 nodejs 来连接、使用 MongoDB 是非常完美的。简单来说,就是 js 是最适合解析 json 的语言,因为 json 天生是 js 对象(json 使用了 js 的部分语法)
但是,也正因如此。对于解析 json 的完美程度就成了判断某种语言是否适合 MongoDB 的关键了。显然,java、c、c++等都不太合适,即便是 php、python 也只能说还行,不能说完美。
所以 MongoDB 最大的局限性就是仅仅最适合 nodejs,对于其他语言来讲,可能还不如关系型数据库。
接下来再提一个非关系型数据库 Redis,这个的特点在于效率高,而且是非常高。因为 Redis 是内存型的,所有操作直接放在内存里,读写可达每秒十万次。因此对于提高缓存十分有帮助。
另外则推荐一个 SQLite,SQLite 是一个自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。由于占用很少系统资源,因此在资源使用十分苛刻的环境下会十分有效。例如软件内置的日志系统,就可以用 SQLite 来做。
数据库排行榜总结
综上,在数据库方面。如果你使用 nodejs,则最推荐 mongdb;其他语言则推荐 MySQL。想要提高缓存效果使用 redis。如果想在客户端用则推荐 SQLite
- 本文链接: https://wp.cmyr.ltd/archives/analysis-of-programming-language-rankings
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
欢迎关注我的其它发布渠道
发表回复
要发表评论,您必须先登录。