Chris Castiglione One Month的老师。哥伦比亚大学的教师,我教数字素养。

Ruby 和 Python:有什么区别?

31 sec read

Ruby on RailsPython / Django哪个更好?

我们经常被问到这个问题,这也是一个很重要的问题。 如果你对RubyPython / Django不熟悉的话,那么你回答不了这个问题。 幸运的是,我们对两者都熟悉。 RubyPython / Django我都曾使用过,虽然它们很相似,但它们在某些关键方面也有所不同。

ruby-vs-python

为了打好基础,首先我学习了PythonDjango,进而又学习了Web开发。 在花了四年时间开发了一系列Django应用之后,我又找了一份关于Ruby on Rails的工作,我自认为这个过渡会很顺利。但也是从那时候开始,我清楚地认识到这两种语言和框架是非常不同的,从一种语言跳到另一种语言并不容易。

那么……他们有什么不同?

语言方面:

Ruby on Rails的网页框架是使用Ruby语言构建的,而Django的网页框架是使用Python语言构建的。

这就是之所以产生差异的原因。 这两种语言看起来很像,但在解决问题的方法上是截然不同的。

Ruby旨在为程序员提供最大限度的灵活性和权力。 所以Ruby on Rails可以尽情发挥本领,构建出优美的网页框架。 但是在灵活性带来惊喜的同时,也会带来一些问题。 例如,当你不想使用Ruby工作的情况下使用了它,就会很难追踪漏洞,这就需要你进行数小时的代码梳理。

Python采用更直观的编程方法。 它的主要目的是让程序员可以看到所有内容。 虽然不如Ruby那样优美,但在编码学习和有效调试问题的方面,Python有着很大的优势。

能够展示二者差异的一个很好的例子是应用程序的计时方面。 想象一下,你希望从这一秒开始计时一个月。 以下是使用两种语言的代码:

Ruby
require 'active_support/all'
new_time = 1.month.from_now

Python
from datetime import datetime
from dateutil.relativedelta import relativedelta
new_time = datetime.now() + relativedelta(months=1)

请注意Python是如何要求您从datetimedateutil库导入特定功能的。 它的方式很直白,但这也有好处,那就是你可以很容易地分辨出一切来自哪里。

反观Ruby版本便隐藏了很多内容。 我们导入了一些active_support库,现在突然间Ruby中的所有整数都有这些“.days”和“.from_now”方法。 虽然阅读性很强,但我们不清楚它来自active_support的哪里。 此外,使用新功能完善语言中的所有整数的想法很棒,但也可能导致问题。

这两种方法都没有对错; 只是他们突出的东西不同。  Ruby突出了灵活性,而Python突出了直接性和可读性。

网络框架

DjangoRails都是帮助您构建web应用程序的框架。 因为RubyPython都是脚本语言,所以它们的性能相似。 每个框架都为您提供传统MVC框架中的所有,如模型,视图,控制器和数据库迁移。

每个框架在实现这些功能的方式都有所不同,但是它们的核心都非常相似。  PythonRuby也有许多库,您可以使用它们为Web应用程序添加功能。  Ruby有一个名为Rubygems的存储库,Python有一个名为Package Index的存储库。

社区

PythonRuby背后有大量的社区。 每个社区都会影响语言的方向,更新以及构建软件的方式。 但是,Python拥有比Ruby更广泛的社区。Python在数学和科学方面有大量的学术用例,这使得Python得以继续蓬勃发展下去。 几乎每台Linux计算机上都预装了PythonPython成为Linux服务器(也就是世界上最受欢迎的服务器)的完美语言。

Rails2005年问世后,Ruby开始大受欢迎。有关Rails的社区激增,并开始专注于Web开发。 尽管Ruby越来越多样化,但仍达不到Python的多样化水平。

使用

 

那么是谁在使用这些编程语言? 答案是相当多的公司都在使用。RubyPython在技术领域的普及程度相当高。

有许多有名的网站是使用Python构建的,包括Google, Pinterest, Instagram, National Geographic, Mozilla Firefox以及the Washington Post 同样,也有很多公司的网站使用Ruby on Rails,其中包括AppleTwitterAirbnbShopifyGithubGroupon

我应该先学习Python还是Ruby

虽然Ruby的受欢迎程度在20102016年之内迅速飙升,但似乎这个行业的走势正逐步趋向于Python。有一种方法可以帮助你做出决定:那就是如果您已经有具体的客户,工作或项目,而且它们需要你对Ruby有一定的了解,那么你应该先学习Ruby。如果没有,请先学习Python 请注意,Python 2Python 3之间存在差异。如果您不熟悉编码,那么我建议您从最新版本开始学习,也就是Python 3

总结:RubyPython的对比?

能使用Ruby on Rails做的任何事,同样能使用PythonDjango做。所以不可以从功能方面分辨出哪个框架更好,我们应该注意的是问题是:哪种语言更适合你或你的团队?

如果你打算构建Web应用程序,那么请考虑优先使用Ruby on Rails 而且它的社区很棒,总是处于发展的最前沿。 如果你对构建Web应用程序感兴趣,但又想学习一种更使用程度更广泛并且能够进行数据分析的语言,那么我建议你学习Python

Learn to Code Comment Avatar
Chris Castiglione One Month的老师。哥伦比亚大学的教师,我教数字素养。

Bitcoin 对…

Learn to Code Comment Avatar Chris Castiglione
14 sec read

Codecadem…

Learn to Code Comment Avatar Chris Castiglione
24 sec read

为什么Codeca…

Learn to Code Comment Avatar Chris Castiglione
10 sec read