go web和python web哪个前景更好?

网友解答: 新人受邀,受宠若惊呐~首先我们来看一下前几天IEEE Spectrum杂志发布的一年一度的编程语言排行榜,这个排行榜还是很有说服力的,已经连续发布了五年了,并且综合了9个重要

网友解答:

新人受邀,受宠若惊呐~

首先我们来看一下前几天IEEE Spectrum杂志发布的一年一度的编程语言排行榜,这个排行榜还是很有说服力的,已经连续发布了五年了,并且综合了9个重要数据源的11个指标,例如Google Search,Google Trends, Twitter, GitHub等,对48中语言进行了排名。

可以看到Python排在第一,这两年Python势头一直不灭反盛,那么是不是PythonWeb就一定好呢?

我们先来分析一下Python怎么火起来的,这几年大数据,云计算,人工智能火的一塌糊涂,行业缺口达到了顶峰,Python在数据处理上有着得天独厚的优势,Python在安装时就默认附带了很多的高级数据类型例如列表、元组、字典、集合、队列等等,无需进一步的封装处理就可以对这类数据进行操作,而且其代码简洁在相比于java,C等传统语言处理数据时,其高效的代码质量深受人们青睐。

显而易见的是Python在数据方面的应用居多,实际上在web开发中公司更青睐于PHP或者Java这类语言,在企业招聘web开发人员时,Python是居于少数的,在国内PythonWeb的前景是不理想的,拿BAT来说,百度倾向于PHP,阿里用的最多的是JAVA,腾讯用c和PHP居多。虽然国内也有Python开发web成功的案例,例如知乎,豆瓣这些网站,但是相比于其他语言来说确实还有一定的差距。

我认为一个原因就可以让go打败Python——区块链

区块链作为目前大火的模块之一,越来越多的被各大企业所重视,而写区块链的语言基本上都推荐go,go具有一下几点优势,下面还有一个用户增量的排行榜。

可以看到go从去年的第七上升到第五,用户增加的很快,而go开发web具有以下几点优势

长期项目中的易维护代码

go语言是一门十分简单的语言,易上手,学习曲线平缓,开发过程简单迅速,要知道开发一个区块链系统代码量是很庞大的,所以我们在尽可能地简化代码有利于维护以及找bug。

速度与效率

不像python,go不是一种解释型语言,它是编译型的,这就大大减少了运行中突然减少的bug,错误在编译时才得到处理(有点类似于c),一个区块链非常需要高效性,而go在效率上远远高于python,在大多数的用户场景中,go都比python高效。下面是Benchmarking Game的对比效果图。

go语言由于自己的多线程模块和CPU可伸缩性获得了较好的性能。无论什么时候我们需要执行一些内部的请求,我们可以使用Goroutine来分别执行,这个比Python中的Threads在资源开销上要少十多倍。由于这些内置的语言特性,可以节省大量的资源。

区块链领域几乎所有人都用它

很多基于稳定区块链的DApps和tools都是用的Go语言。你所需要的某个功能,很轻松就能找到一个相对应的库。

另外前面说到go是编译型的,所以直接由操作系统执行,这让我们可以更自如地实现向以太坊沙盒一样的技术。而如果是Java,因为它本身的运行载体JVM就是一个虚拟机,要再做一个沙盒,实质是更高一层的抽象,完全没有必要,会浪费大量的资源。

所以单从Web开发的角度来说go要比Python更有前景,尽管Python这两年一直居高不下,但是作为it人员不能盲目跟风,要搞清楚各自的优势再做结论。

网友解答:

我个人觉得这个问题不应该这样问,因为今后,只要是涉及到网络,几乎都会用到这个所谓的Web模式,比如Restful这样的Service方式来完成通讯,不管你在前端表现为是一个移动或桌面的App,还是一个传统的网站,还是别的什么。

所以,我个人觉得比较用Go还是Python来做Web好,核心在于要考虑清楚你所面对业务的规模,以及在并发方面的复杂度。

从目前的情况来看,如果你的业务在规模和并发上没有特别的需求,比如就是一个很传统的公司网站之类的,那么,现阶段无疑是用Python好,因为像Flask、Dango这样的很成熟的框架在那呢,出现各种问题也容易去找到人回答你。

如果觉得这些还麻烦,那么,还有更简单的web.py等着你。而且作为一种粘性十足的胶水式语言,实际上,也比较适合于你所想的那种Web端。当然,不是说Go不能做到那些,只是你现阶段的学习曲线稍微陡峭些。

至于你说的将来,我觉得,根本不需要担忧,他们都肯定有将来

标签: