全栈开发工程师必读之为什么要学习Python?

Posted by

以前D语言的作者曾经讲过一句话,我觉得非常好。他认为任何一门编程语言,都应该有一些自己的优势,称之为10倍优势。文武双全立志要成为一个全栈开发人员,那么对我来说,Python到底有什么优势呢?今天就要来好好讲一讲,作为一个全栈开发工程师,为什么一定要学习Python?

首先,简单介绍一些Python这门编程语言

Python is powerful… and fast; plays well with others; runseverywhere; is friendly & easy to learn; is Open.

上面这段话来自于python的官方网站(参考资料1),翻译成中文是:Python是一门比其他编程语言更强力而且快速的编程语言;可以运行在任何地方;对人类友好而且易于学习;它是开源的。

这段话瞎吹牛逼的成分很多,而且绝大多数都不是python的10倍优势。只是对不懂编程语言的人来说,忽悠人的一个说辞罢了。下面听,文武双全来吹吹python到底牛逼在哪里。

第一:python是运维入门的第一编程语言

非常多的解释型编程语言,可以在linux服务器下跑,替运维完成各种任务。但是,唯独python是最适合运维的编程语言。你说为啥?就因为最流行的linux操作系统,都自带有python。而且有些很夸张的,带了python2和python3。

其实python能干的活,php和ruby都能干。但是php和ruby都需要安装环境,而唯独python不用。所以,python赢了。顺便说一句,运维学完python接下来最好去学习Go。因为docker是Go写的,这个强无敌。

运维需要学习的三门编程语言,就显而易见了。入门的shell,进阶的python,高阶的Go。python是运维日常,最重要的工具了。

第二:python是分析、数据科学、机器学习工具的第一语言

美国是最重视用编程语言做数据分析的国家,美国最新的调研结果已经出来了。2018年,python已经超越R语言,成为数据分析的第一语言。一些重要的数据分析库的作者已经宣布,未来Python和R语言的数据分析库,将会趋同。也就是说,在R语言上有的一些数据分析库,都会移植到Python上。

但是R语言的性能没有Python高,这就导致python很容易在分析、数据科学、机器学习工具上超越R语言了,相见参考资料2.

第三:python支持多线程

作为一个php开发人员,对这个事情是很烦的。php一个进程只有一个线程,原生并不支持多线程。但是python是原生支持多线程的,这就很烦躁。虽然php能通过swoole扩展支持多线程,而且性能也不错,但是毕竟没有python原生支持多线程方便。swoole的坑还那么多。。。

第四:python的性能不如php

虽然上面吹了一波python的特色,但是我必须要指出的是做web时,python的性能并不如php。所以,中小企业建站,php还是首选。虽然在数据分析上python的性能碾压了R语言,但是做web开发这一块,php还是能吊打python的。

而且php还有很多用C写的以php扩展存在的web开发工具,诸如yaf和phalcon。在对性能有一定要求的web场景,php还是比python更强。文武双全目前是不赞同用python来写web的,还是用php更适合。

第五:python得到了世界顶级大学的有力支持

斯坦福大学有七门编程语言的课,其中有四门是java的,两门是python的,最近开了一门js的课替代java。在全世界的大学里,教php的也不多,哈哈,这个没办法。不过,很多美国大学的教授,经常在自己的公开课里吐槽python,也非常的有意思。

第六:python的授权协议非常开放

python使用的是一个基于OSI的,名字教PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2的授权协议。这个协议类似于BSD,这么说吧,基本上你想干啥都可以。。。是真正开放源代码的开源项目!!!比GPLv2那种毒药性质的开源协议,更开放。

一个开源项目,只要有更加开放的开源协议,它就有了无穷的生命周期。

第七:有强大的免费的开发工具

JetBrains公司有一个社区版的pycharm,不要钱随便下载。微软的VS Code也可以做python的开发,Github公司的Atom正在用Rust重写,估计以后性能会爆炸,也是支持python开发的。这么多免费的开发工具,好爽好爽!

第八:强大的依赖管理工具

python这么多年了,依赖管理工具和包管理工具都非常成熟了,这一点就不多介绍了。

第九:更适合写爬虫

由于原生支持多线程的问题,在搜索引擎这样的场景下,python更适合用来写爬虫了。这个就不多说了,我个人是特别讨厌那些死鬼爬虫的。

文武双全的总结

对性能有一定要求的web开发场景,并不太适合python,php更好一点。但是在运维和数据分析,科学计算这块,python还是最牛的。对于全栈开发人员来说,python确实是你不得不学的编程语言。

参考资料1:Python官方网站的简介

参考资料2:最受欢迎的分析、数据科学、机器学习工具

参考资料3:编程语言的性能测试

Leave a Reply

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据