Python vs Ruby:谁是最好的Web开发语言?
Python 和 Ruby 都是目前用来开发 websites、web-based apps 和 web services 的流行编程语言之一。
这两种语言在许多方面有相似之处。它们都是高级的面向对象的编程语言,都是交互式脚本语言、都提供标准库且支持持久化。但是,Python 和 Ruby 的解决方法却千差万别,因为它们的发展历程导致它们的语法和原理都大不相同。
那么要采用哪种语言来进行编程就需要好好考虑了,因为每种语言都是自己的优点和缺点。而且这些优缺点都会影响我们的决定。
基础知识
Python 最初是作为科学领域的原型设计语言的,因为它可以很容易转换成 C++ 语言。Python 发展很久之后才被第一次用于网站开发。而 Ruby 之所以流行就是因为网站开发,继承自 Ruby 的 Rails 框架被开发人员用来设计复杂的网站。
哪种编程语言更适合你的需要?下面对于每种语言都做一个概述来帮助你选择:
方法:最好的方法 VS 以人为本的语言
Python
Python 作为一种直接面向对象的编程语言。它主要的目的是对程序员来说所有的事情都是很明显的。在 Python 语言中做某件事情的时候,只有一种‘最好’的办法。这种原理导致 python 语言的代码规范很严格。
Python 的核心理念主要包括三条关键的分层原则:
- 显示优于隐式;
- 简单优于复杂;
- 复杂优于超复杂;
这种严格的原理导致 Python 语言是一种易读且易学——这也就是为什么一部分码农说 python 语言是伟大的语言。对于,入门级的编程语言 Python 有很大优势。它的语法简单,几乎不需要去记。因为它的代码结构很明朗,开发者很容易知道一切从哪里来,也很容易去调试。
Python 代码的层次结构是很明显的一个特点。不同于其他编程语言,包括 Ruby,Python 语言使用空格进行流程控制。代码的缩进决定了它执行的意义。使用空格是 Python “显示”原理的一个很典型的例子,一个 Python 代码的形状决定了它的逻辑结构和执行顺序。
Ruby
不同于 python ,Ruby 是“以人为本”的语言,是按照开发者认为的方式来运行的,它的代码读起来更像是口语化的语言(像开发者)而不是像其他语言一样类似于一种机器语言。Ruby 遵循“最小惊动”原则,提供很多作相似事情的方法。这些相似的方法有多个名称,使得很多开发者感到困惑和沮丧。
不同于 Python,Ruby 语言使用了“模块”,一级对象在程序中被当做一个单元。事实上,Ruby 是一种面向对象编程的语言。一切皆为对象——甚至全局变量事实上都是对象空间中的对象。类和模块本身就是对象,函数和运算符都是方法的对象。这种方式使得 Ruby 尤其强大,尤其是当结合其他主要力量:函数式编程和 lambdas 表达式的使用。
除了模块和函数式编程,Ruby 为编程者提供了许多特性包括分片、哈希、不哈希类型以及可变字符串类型。
Ruby 的追从者认为它优雅的编码方式是它最好的特点。同时,Ruby 的“神奇”的功能和灵活性使得它很难追踪 bug。
社区: 稳定与创新
尽管特性和编程哲学是选择一个语言的首要驱动因素,但是社区开发者的力量仍然会扮演一个重要的角色。幸运地是,Python 和 Ruby 都为自己有强大的社区而自豪。
Python
Python 的社区已经包含一个巨大的 Linux 社区和学术社区,因此它能提供很多学术(数学和自然科学)上使用的案例。这种支持不仅给社区带来了稳定,还带来了多样性,这就导致了 Python 的增长不仅限于在 web 开发上。
Ruby
然而,Ruby 的社区从一开始主要就聚焦在 web 开发上。它在创新上往往比 Python 社区更快,但是这种创新也引起了更多的破坏。另外,它在多样性上,还没有达到 Python 的水平。
总结
对于 Web 开发,Ruby 有 Rails ,Python 有 Django 。 两者都是强大的框架,所以当谈到 Web 开发时,你使用任何一种语言都不会出错。你的决定最终将归结于你的经验水平和偏好。