编程语言排行榜分析

数据来源网站:https://hellogithub.com/report/tiobe/?url=/periodical/volume/46/

编程语言排行榜

首先是编程语言排行榜,截止 2020 年 02 月的排行榜如下

mark

mark

首先,十分明显的,第一梯队就 2 个,java 和 c。

java 可以说是编程语言的常青树了,历经 20 年依旧发光发热,可以说 java 的地位真的无可撼动。

接下来则是万恶之源,程序员入门必学的基础:C 语言。相信很多程序员都是从 C 语言的哪一个 hello world 开始入门的。C 也是最基础的编程语言,介于高级语言和汇编之间,也被成为中级语言。现代繁荣的互联网产业大厦就是在 C 的基础上诞生的。C 诞生于 1972 年,却还获得了 2019 年度明星语言,可谓是常青树中的常青树,无人能够撼动、

排名第三的 python 就比较有趣了,可以看到,python 是在近两年才迅速上升热度的,原因自然就是最近十分火热的人工智能了,能在短时间迅速崛起,足以证明它的潜力。

mark

第四的 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 服务器排行榜了,废话不多说,直接上图。

mark

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 的安装与配置。希望能对读者有所用处。

数据库排行榜

最后则是数据库排行榜,也是一样,直接上图

mark

mark

可以看到关系型数据库占据着绝对的主流,也就是说,如果真的要研究下数据库,那么 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


评论

发表回复