附录 A 编程语言对比
通常情况下,当你使用某种编程语言时,其他人都会问你选择这种语言的原因。为什么不用 X 或 Y 呢? X 或 Y 的选择有许多,这取决于提问者都知道哪些语言,也取决于他是不是一个狂热的开发者。要试着理解他们问这个问题的原因,也最好思考一下自己的回答:为什么选择 Python ?本附录将对比 Python 和其他有用的编程语言,你可以据此回答上述问题,也可以深入理解我们选择编程语言的理由。
A.1 C、C++、Java与Python
与 C、C++ 和 Java 相比,Python 很容易学习,特别是对没有计算机背景的人来说。许多和你起点相同的人已经可以开发插件和有用的工具,使 Python 在数据科学和数据处理领域更加强大、更加高效。
至于技术性差异,Python 是一种高级语言,而 C 和 C++ 是低级语言。Java 是高级语言,但又有一些低级语言的特性。这是什么意思?高级语言将与计算机架构的交互抽象化,你可以输入代码字(code word,比如 for
循环或变量定义),高级语言会将其编译成计算机可以执行的代码,而低级语言会直接处理这些代码字。与高级语言相比,低级计算机语言的运行速度更快,可以更直接地控制系统,从而优化内存管理等。高级语言更容易学习,因为它已经帮你完成了大多数低级别的任务。
对于本书中的练习而言,不需要系统控制,也不需要将运行时间缩短数秒,所以我们不需要用到低级语言。虽然 Java 也是高级语言,但它的学习难度比 Python 更高,你需要更长时间才能上手。
A.2 R或MATLAB与Python
Python 有许多库(补充代码),能够实现与 R 和 MATLAB 相同的功能。这些库的名字是 pandas
(http://pandas.pydata.org/)和 numpy
(http://www.numpy.org/)。这些库可以处理与大数据和统计分析相关的任务。如果你想学习更多这方面的内容,你应该查阅 Wes McKinney 的《利用 Python 进行数据分析》一书。如果你在 R 或 MATLAB 方面有较强的专业背景,可以继续用这些工具来处理数据。在这种情况下,Python 是一个很好的补充工具。但是,用同一种语言负责工作流程中的每一个环节,可以让数据处理过程更容易,维护起来也更加方便。同时学习 R(或 MATLAB)和 Python,你可以根据具体项目需求来选择使用哪种语言,这样可以更好地满足项目的需求,也更加方便。
A.3 HTML与Python
解释为什么不用 HTML 处理数据,就如同解释为什么不把水放到油箱里一样,你就是不会这么做。HTML 的用途不在于此。HTML 代表 HyperText Markup Language(超文本标记语言),用来为浏览器中显示的网页提供基本结构。我们在第 3 章中讨论过 XML,与此类似,我们也可以用 Python 解析 HTML,但反过来却不行。
A.4 JavaScript与Python
JavaScript 是一种向网页添加交互与功能的语言,不要与 Java 混为一谈。JavaScript 运行在浏览器中。Python 与浏览器分离,运行在计算机系统上。Python 有大量库,可以充实数据分析的功能。JavaScript 具有与浏览器相关的额外功能。你可以利用 JavaScript 抓取网络数据并创建图表,但无法用于统计汇总。
A.5 Node.js与Python
Node.js 是一个 Web 平台,而 Python 是一种语言。有许多用 Python 编写的框架与 Node. js 类似,像 Flask 和 Django,但 Node.js 是用 JavaScript 语言编写的。Node.js 主要用的是 JavaScript,所以你可以用 JavaScript 作为后端语言。如果你后端用的是 Flask 或 Django,你可能需要学习 JavaScript 来处理前端需求。但本书大部分内容针对的都是后端过程和大型数据处理过程。Python 更方便、更容易学习,还有现成的数据处理库。正因为这一点,我们选择用 Python。
A.6 Ruby和Ruby on Rails与Python
你可能听说过 Ruby on Rails,这是基于 Ruby 语言的一个流行的 Web 框架。Python 也有许多框架:Flask、Django、Bottle、Pyramid 等,Ruby 也经常不用于 Web 框架。我们之所以选择 Python,是因为它快速的数据处理能力,而不是因为它的 Web 框架能力。我们的确会讲到数据展示,但如果你的目标是创建一个网站的话,那么你不应该阅读本书。