Python的辉煌,Ruby能否挑战?

发表时间: 2017-04-15 10:50

Python和Ruby都是基于Web应用程序和Web服务的流行编程语言,这两种语言有很多相同之处,如它们都为程序员提供了高级别、面向对象的编码,交互式shell,标准库和长期支持。但是它们解决问题的方法不同,由于各自的历史原因,它们在语法和哲学方面相差很大。

Web开发需要程序员有自己的思路,因为所有的编程语言都有自己的优缺点。

Python在数据科学机器学习领域被认为是原型语言,该领域的很多起步教学都是使用Python。Python常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。

Ruby主要是被用来进行Web开发,尤其是Rails框架的发展,更是扩展了Ruby在开发复杂网站的人气。

Python和Ruby到底哪种语言才最符合你的需求呢?下面我们就来比较一下吧。

编程语言 VS 人类语言

Python

Python采用的是直接编程方法,主要目标的是使程序员显而易见。在Python中,只有一种“最好”的做法,这种理念导致了Python严格的语言布局。

Python的核心理念包括三个关键的层次原则:

  • 显式优于隐式。

  • 简单比复杂好。

  • 复合胜于复杂。

以上三个原则使得Python更加易于学习和阅读,同时这也是Python受到编程初学者青睐的原因。Python在介绍性编程课程中占有重要地位,语法简单,易于理解,另外Python的代码结构明确,开发人员可以很容易的定位错误,实现调试。

Python的原理层次在语言的许多方面都是显而易见的。它使用空白来做流量控制作为语言语法的核心部分与大多数其他语言(包括Ruby)不同。缩进代码的方式决定了其动作的含义。这种空白的使用是Python“明确”哲学的一个很好的例子,Python应用程序的形状说明了它的逻辑和应用程序的行为。

Ruby

与Python相反,Ruby专注于“人类语言”编程,其代码阅读起来更符合人类的习惯,而不是机器的习惯。Ruby的发布者Yukihiro Matsumoto表示:“我设计Ruby来是我的惊讶最小化,我现在可以肯定全世界的程序员的思维都是相似的。”不同的情况,Ruby都可以不同的方法来实现相同的事情。

与Python不同,Ruby有一个“块”的概念,块由大量的代码组成。Ruby将OOP(面向对象编程)的概念发挥到了极限,一切都可以是一个对象,甚至全局变量都是在ObjectSpace对象中表示的。

类和模块本身是对象,而函数和操作符则是对象的方法。这种组合让Ruby变得十分强大,当然除了这些,Ruby的函数编程和lambdas函数也不容小觑。Ruby的粉丝认为它的优雅也是其顶级卖点之一。Ruby的“magical”功能和灵活性可以很好地跟踪错误。

社区:稳定与创新

虽然功能和编码理念是一门编程语言兴盛的主要驱动力,但是社区的贡献也是不容小觑的。而我们今天的主角Python和Ruby都拥有强大的社区。

Python

Python的社区包括一个大型的Linux学术社区,因此会有很多数学和科学的学术用例。这种支持为社区提供了稳定性和多样性,未来随着Python在Web开发中的应用越来越多,用例也会增长,社区的作用会日渐重要。

Ruby

Ruby的社区主要侧重于Web开发,与Python相比,Ruby社区的创新性更强,但是有时创新也会导致很多事情被破坏。此外,Ruby社区也比之前更加多元化,但距离Python的多样化水平还有一定差距。

写在最后

对于Web开发来讲,Python和Ruby都有护法分别是Rails和Django,这两者都是强大的框架,所以无论你选择使用哪一种语言都不能说是错误的选择,真正的决定因素应该是你的编码水平和经验水平。