MYzuiai 2019-06-25
为什么要学 PYTHON ?
PYTHON 第一是个非常牛 B 的脚本语言, 能满足绝大部分自动化运维的需求,又能做后端 C/S 架构,又能用 WEB 框架快速开发出高大上的 WEB 界面,只有当你自已有能力做出一套运维自动化系统的时候,你的价值才体现出来,你才有资格跟老板谈重视, 否则,还是老老实实回去装机器吧。
运维开发为什么要用 PYTHON ?
Good question, 为什么不用 PHP , JAVA , C++ , RUBY ,这里我只能说,见人见智, 如果你碰巧已经掌握了除 PYTHON 之外的其它语言,那你爱用啥用啥,如果你是一个连 SHELL 都还没写明白的新手,想学个语言的话,请用 PYTHON , 为什么呢?首先, PHP 是跟 PYTHON 比的最多的,其实他俩根本就不用比,为什么呢?两个语言适用性不同, PHP 主要适用于 WEB 开发,可以迅速的做出中小型,轻量级的 WEB 网站,但后端嘛,基本还是要借助其它语言, 借助什么语言呢? SHELL ? PYTHON ?呵呵。 而 PYTHON 呢, 是个综合语言, 前后端都可以,单拿出来比 WEB ,也一点不比 PHP 差,但为什么WEB方向上 PHP 比 PYTHON 要火? 先入为主嘛, PHP 90 年代诞生就是做 WEB 的, PYTHON2000 年后才出现 WEB 框架,但论优秀程度上, PYTHON 的 WEB 框架基本上出其无左,至少是跟 PHP 比。
那 JAVA 呢?好吧,一个臃肿\中庸\豪无新意的语言,还是老老实实用它来做 ERP 吧,搞个运维小平台,用 JAVA 真心没啥必要,在我看来, JAVA 就是稳定的中年男人,稳定\成熟\秃顶,而 PYTOHN 代表的就是青春, 简洁\快\干净\帅!
C++ / C ,这个嘛,我只能说,如果你会了 PYTHON, 又会 C 的话,那你会更吃香,但是不会 C 的话,其实也无大碍,基本上做运维的人,搞搞 C 就是为了来装 B 的,因为多数情况下你都到不了看系统底层源码的程度。
RUBY ,小日本开发的,还不错,风格跟 PYTHON 有点像,因为 ruby onrails 出了名,国外用的比较多,国内,放心吧,没戏, PYTHON 已经把它的想象空间都占死了。
当然还有新的语言 GO , 有些搞运维的看见做开发的人员搞 GO ,也想凑热闹,觉得是未来,我想说,别瞎没事跟风, GO 再成功,也不会变成运维开发语言。
有些人觉得 PYTHON 效率底,说他不能支持多线程, OH ,好吧,这个还有点说对了,但是我想问,看我这篇文章的有几个做过搜索引擎开发?有几个做个上亿 PV 的并发网站开发? 有几个看过 LINUX 内核源码?如果没有,请别瞎跟着传了,知道 PYTHON 为什么不支持多线程吗?这句话问错了,其实 PYTHON 支持多线程,只是不支持多 CPU 多线程,也就是一个程序 spawn 出来的多线程只能占用一个 CPU ,但是为什么呢?噢,因为 GIL , GIL 是什么东东,请自行补脑。。。但是你非得用多线程吗?你可以用多进程呀,再牛 B 你还可以用协程呀,这些 PYTOHN 支持的都很好呀,如果你的程序逻辑不好,搞个多线程也快不起来。我认识一个博士讲过一句话,我觉得不错,他说,程序效率高低, 80% 都是写程序的人决定了,语言本身就占 20% ,所以下次有人再说 PYTHON 效率低的时候,请让他先回去自己检查下自己的程序多了多少无用的逻辑、循环等等。 这个博士自己用 PYTHON 写的 WEB 程序,一台服务器每天能处理上亿请求,一秒并发近两万, 什么 WEB 框架这么牛 B ? 别问它是谁, 它叫 tornado 。