0%

2020-02-20 编程语言排行榜分析

2020-02-20 编程语言排行榜分析

数据来源网站: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

本文作者:草梅友仁
本文地址: https://blog.cmyr.ltd/archives/402af868.html
版权声明:转载请注明出处!

坚持原创技术分享,您的支持将鼓励我继续创作!