乐趣区

最近迫切应学的编程语言

作者 谢恩铭,公众号「程序员联盟」(微信号:coderhub)。
转载请注明出处。
原文:http://www.jianshu.com/p/08ca…


编程语言之争从来不曾停止,这篇文章绝对不会去讨论哪个语言是最好的(当然了,除了“PHP 是世界上最好的语言”这句“真理”之外)。

插句题外话,不要听一些人说:“编程语言没有好差之分,只有用起来顺不顺手”。这话其实不正确,编程语言就是有好差之分。有些编程语言就是设计得不好,就是不适合一般的应用,就是无人问津。

我想谈谈最近几年我的感受:

我深刻地认识到 Python 是当下迫切应该学习的编程语言。

为什么这么说呢?且听我慢慢“因式分解”:

  1. Python 很火,非常火。这和人工智能(AI:Artificial Intelligence)有关。Python 有很多优秀的库,特别适合数学运算和科学计算,而人工智能就需要很多计算和一些算法,因此 Python 的很多库比如 Numpy,Pandas,SciPy,等就有用武之地了。而且很多大公司启动了适合人工智能的库或项目,比如 Google 公司发布的开源机器学习库 TensorFlow,Tesla(特斯拉)的 OpenAI,FaceBook 开源的 PyTorch,等等。这些库上层都可以很方便地用 Python 来操作。Google 的 AlphaGo 击败了人类最强围棋(Go)玩家李世石,而 AlphaGo 是基于 Google 的 DeepMind,DeepMind 前不久宣布底层基于 TensorFlow 了。特斯拉的 OpenAI 在单人对抗中击败了人类最强的 Dota 2 影魔选手之一的 Dendi,完整对战视频。当然了,现在 AI 已经可以在星际争霸 2 中战胜人类选手了。​

  1. Python 非常容易入门。Python 号称「Battery included」。我们知道 battery 是「电池」的意思,included 是「包含」的意思,因此就是说 Python 简单到「已经包含了电池了」,功能都已经包含在语言里了,直接拿来用即可。其语法实在很简单,基本没有编程经验的孩子几天也可以学会。现在 Python 更是已经被加入幼儿园、中小学的教材中了。
  2. Python 几乎可以被应用在任何领域。人工智能、科学计算领域自然不用说,各种成熟的库调用起来极为方便;大数据领域也是 Python 大展拳脚之处;云计算领域 Python 可以发挥实力,比如著名的 Dropbox 就是 Python 写的;用 PyGame 可以进行快速游戏开发;GUI 图形界面编程也不在话下,Matplotlib 这个绘图库可以满足你;嵌入式领域,著名的树莓派(Raspberry Pi)开发板的主要开发语言是 Python;Web 应用有 Django、Flask,等这个 Web 应用框架,可以很快速地开发出绚丽无比的网站;Web 后端 Python 也不甘寂寞,知乎和豆瓣的后台就是 Python 写的;近几年新兴的职业 DevOps(development 和 operations 的组合)一般也用 Python 来写脚本;一些大型项目的构建以及一些小任务的处理,Python 的脚本也能助你快速开发;用 Python 做爬虫程序,可以轻松爬取网络上你想要的内容(当然,请不要干坏事),Python 有很多不错的爬虫库,例如 Scrapy。
  3. 优越的跨平台性能,几乎所有的操作系统都可以跑起来 Python。
  4. Python 既支持面向过程函数式编程也支持面向对象的抽象编程。
  5. 用 Python 语言编写程序让人很愉快,反正我学习的时候感觉写 Python 的程序有一种快感。
  6. Python 非常精简。本身的 API 封装得挺好,因此很多功能不需要我们重新造轮子,直接调用即可。再加上那么多成熟的库,用起来不要太开心。同样实现一个功能,用 C 语言,Java 或 C++ 往往要写很多行代码,Python 只需一行或者几行代码帮你搞定。
  7. Python 在 Tiobe 编程语言排行榜的最新一期榜单(2020 年 6 月)中已经位列第 3,仅次于 Java,C 语言。虽说这个榜单不能涵盖全部,但也是编程界比较权威的榜单了。可以看出 Python 势头强劲。
  8. Python 是解释型语言,因此假如你要做些小测试,或者学习这门语言,将会非常省时间,因为不需要编译,直接解释就可以执行。比如我很喜欢的 Python 的 IDE(集成开发环境),由大名鼎鼎的 Jetbrains 出品的 PyCharm,就让写 Python 程序成了一种享受。
  9. Python 的可扩展性很好,开发者可以用 C 语言或者 C++ 编写 Python 的扩展模块,还能将 Python 嵌入到 C/C++ 程序中。著名的 Numpy 就是用 C 语言写的。
  10. Python 的源代码写得不错。其源代码一开始是用 C 语言写的,Python 的作者使用中立的面向过程的 C 语言,实现了动态面向对象,使得 Python 具备灵活和优雅的特性。Python 的源代码也是值得学习的。推荐一本书,是中国人写的,叫《Python 源码剖析》,作者 陈儒,豆瓣评分 8.7。
  11. 规范的代码。Python 使用强制缩进来保证代码规范性,几乎不需要代码审查。

以前学习 C++ 的时候,感觉真是挺难的,主要是 C++ 比较庞杂,东西太多,概念都能把你绕晕了,而且还要考虑指针和内存等等。很多写 C++ 的人其实并没有很好地掌握其精髓,写出来的程序往往非常丑陋,难以扩展和维护。

但 Python 就很简单,终于可以用节省下来的时间去看看诗和远方了。当然了,要写出优秀的 Python 代码也没有那么容易。

Python 的优点也不只我所列的这些。

当然,Python 也不是没有缺点。比如动态解释型语言速度相对编译型慢一些(但其实 Python 现在速度已经挺快了)。操作系统的编写目前还是以汇编语言,C 语言和 C++ 为主。

Python 还有一个最大的缺点,就是「优点实在太多了」。

所以,省下几局打王者荣耀的时间,来学学 Python 吧,一定大有裨益。

至于学习 Python 的教材,可以看看《Head first Python》这本书,很浅显易懂。慕课网的各种 Python 视频也是入门和提高的好资源。

如果你英语好的话就直接看 Python 官网的 Tutorial(教程)吧:

https://docs.python.org/3/tut…

没有比这更权威和保持更新的了。

当然了,到时候你深陷 Python 的「情网」,无法自拔时,请不要来找我「算账」,这锅我可不背。

当然了,这篇文章只介绍了 Python。其实 Google 开源的 Go 语言和 Kotlin 语言也都不错,但比起 Python 势头还是差了点。
我之前也写过一篇关于 Kotlin 的文章:Kotlin 探索之旅 | 第一部分第一课:Kotlin 若只如初见。


我是 谢恩铭,公众号「程序员联盟」(微信号:coderhub)运营者,慕课网精英讲师 Oscar 老师,终生学习者。
热爱生活,喜欢游泳,略懂烹饪。
人生格言:「向着标杆直跑」

退出移动版