的作者,谢恩铭,公众号“程序员联盟”(微信ID:coderhub)。请注明出处。原文:http://www.jianshu.com/p/08ca...编程语言的争论从未停止过,本文也绝不讨论哪种语言最好(当然《PHP是最好的语言》除外世界上最好的语言”超越短语“真理”)。顺便说一句,不要听某些人说:“编程语言没有好坏,只有用起来流畅”。这其实不是真的,编程语言有好有坏。有些编程语言只是设计得很糟糕,不适合一般应用,或者被忽视了。我想说说我这几年的感受:我深刻体会到Python是一门急需学习的编程语言。你为什么这么说?且听我慢慢“分解”:Python很火,很火。这与人工智能(AI:ArtificialIntelligence)有关。Python有很多优秀的库,特别适合数学运算和科学计算,而人工智能需要大量的计算和一些算法,所以Python的很多库如Numpy、Pandas、SciPy等都有用。而且,很多大公司都推出了适合人工智能的库或项目,比如谷歌的开源机器学习库TensorFlow、特斯拉的OpenAI、FaceBook的开源PyTorch等等。这些库的上层可以很容易地用Python操作。谷歌的AlphaGo击败了人类最强围棋(Go)选手李世石,AlphaGo基于谷歌的DeepMind,最近宣布底层基于TensorFlow。Tesla的OpenAI在单人对抗中击败了世界上最强的Dota2影魔玩家之一的Dendi,完整的战斗视频。当然,现在星际争霸2中AI已经可以打败人类玩家了。Python非常容易上手。Python被称为“包含电池”。我们知道battery是“电池”的意思,included是“包含”的意思,所以说Python简单到“batteryisalreadyincluded”,语言中已经包含了函数,可以直接使用。它的语法真的很简单,基本没有编程经验的小朋友几天就能学会。现在Python已经加入到幼儿园、中小学的课本中。Python几乎可以用于任何领域。不用说,在人工智能和科学计算领域,各种成熟的库调用起来极其方便;大数据领域也是Python大展拳脚的地方;在云计算领域,Python可以发挥它的长处。例如,著名的Dropbox就是用Python编写的;可以快速开发游戏;GUI图形界面编程不是问题,Matplotlib就是一个能满足你的绘图库;在嵌入式领域,著名的树莓派(RaspberryPi)开发板的主要开发语言是Python;Web应用包括Django、Flask等,这种Web应用框架可以快速开发出极其华丽的网站;web后台Python不甘寂寞,知乎、豆瓣的后台都是用Python写的;近年来,新兴职业DevOps(开发与运维的结合)普遍使用Python编写脚本;一些大型的项目构建和一些小的任务处理,Python脚本也能帮你快速开发;使用Python作为爬虫程序,可以很方便的在网上爬取你想要的内容(当然,请不要做坏事),Python有很多不错的爬虫库,比如Scrapy。超强的跨平台性能,几乎所有的操作系??统都可以运行Python。Python既支持面向过程的函数式编程,也支持面向对象的抽象编程。用Python语言编写程序非常愉快。总之,在学习的时候,我觉得写Python程序是一种乐趣。Python非常精简。API本身封装的很好,所以很多功能不需要我们重新造轮子,直接调用即可。再加上这么多成熟的库,别太乐意用了。实现同样的功能,用C语言、Java或C++往往需要写很多行代码,而Python只需要一行或几行代码就可以帮你搞定。在最新一期(2020年6月)的Tiobe编程语言排行榜中,Python已经位居第3位,仅次于Java和C语言。这个榜单虽然不能面面俱到,但也是编程界比较权威的榜单。可见Python势头正盛。Python是一种解释型语言,所以如果你想做一些小测试,或者学习这门语言,会节省时间,因为它不需要编译就可以直接执行。比如我最喜欢的PythonIDE(集成开发环境),大名鼎鼎的Jetbrains出品的PyCharm,让编写Python程序成为一种乐趣。Python的可扩展性很强。开发者可以用C或C++编写Python扩展模块,也可以将Python嵌入到C/C++程序中。著名的Numpy就是用C语言编写的。Python的源代码写得很好。它的源代码一开始是用C语言写的,Python的作者用中性的面向过程的C语言实现了动态的面向对象,使Python变得灵活优雅。Python的源码也很值得学习。推荐一本书,中国人写的,名叫《Python 源码剖析》,作者陈茹,豆瓣评分8.7。规范代码。Python使用强制缩进来确保代码规范,几乎不需要代码审查。以前学C++的时候,觉得真的很难。主要是C++复杂,东西太多,概念弄得头晕,还得考虑指针,内存等等,很多写C++的人都没有把握好它的本质,而且他们编写的程序通常非常丑陋,难以扩展和维护。但是Python很简单,我终于可以用节省下来的时间去读诗和远方了。当然,写出好的Python代码并不那么容易。Python的优点并不是我列出的唯一优点。当然,Python并非没有缺点。比如动态解释型语言的速度就比编译型语言慢(但实际上Python现在已经相当快了)。操作系统目前是用汇编语言、C语言和C++编写的。Python的另一个最大缺点是“优点太多”。所以,省下几轮打王者荣耀,学学Python,肯定大有裨益。至于学习Python的教材,大家可以看看《Head first Python》这本书,非常通俗易懂。MOOC的各种Python视频也是很好的入门和提升资源。如果你的英文不错,就看看Python官网的Tutorial(教程):https://docs.python.org/3/tut...没有比这更权威和更新的了。当然,当你深陷Python的“情网”不能自拔时,请不要来找我“算账”,这锅我不背。当然,本文只涉及Python。其实谷歌开源的Go语言和Kotlin语言也不错,但是比起Python还是差了那么一点点。之前也写过一篇关于Kotlin的文章:Kotlin探索之旅|第1部分第1课:Kotlin就像第一次见到它一样。我是公众号“程序员联盟”(微信ID:coderhub)的运营者谢恩铭,MOOC精英讲师,终身学习者Oscar先生。我热爱生活,喜欢游泳,会做饭。人生格言:“直奔目标”
