话说语言不重要,重要的是背后的技术栈,那咱们就来看看 Python 都能做什么事吧。
(1)命令行工具/运维工具
Python 有 argparse 模块,便于写命令行应用,同时又有 ctypes 模块,调用 DLL 很方便。它的 subprocess 模块也很方便,便于整合其它命令行应用。
如果你想通过 SSH 远控其它主机,那么 paramiko 可以满足要求。
Linux 中有大量的 Python 脚本,用于启动和运行系统。你试试把它自带的 Python 2.7 删了,系统还能不能跑起来。
(2)桌面 GUI 应用
话说 GUI 框架仍旧是 Winform 和 QT 二分天下。QT 在跨平台上更有优势,而 PyQt/PySide 是最容易安装并且仍旧在维护的 QT 绑定。不信你去查查教程,安装 PyQt/PySide 比拿 CMake 安装 QT C++ API 容易多了。
桌面应用虽然在互联网行业没落了,在工业软件方面依旧有一席之地。
(3)爬虫/自动化测试
Python 的三方库非常多,仅次于 Java,不是其它语言能比的。这里面就有爬虫库 requests,以及自动化测试工具 selenium。
selenium 几乎是自动化测试的标件,不多说了。
(4)数据分析/大数据
Python 有 NumPy 技术栈,它是用于数据分析的全套技术栈。从多维数组,绘图,符号运算,数值运算,到机器学习,神经网络,应有尽有。
如果你数据量大了,想搞大数据玩分布式,那么 PySpark 是首选。考虑语言特性和 Spark 官方提供的支持,Spark 几乎只能在两种语言上用得顺手,一个是 Scala,另一个就是 Python。而且这种多机处理的效率主要取决于目标机器,不受Python的性能影响。
---
很多人提到 Python 的 Web 开发支持很烂。但 Web 只是软件的一种形态,互联网只是软件行业的一部分。把目光放宽一些,不要局限于某个领域,或者拿它的标准来生搬硬套。