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

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

为什么Codeca…

Chris Castiglione
10 sec read

HTML与CSS:…

Chris Castiglione
1 min read

10个由Pytho…

Chris Castiglione
31 sec read

发表评论

电子邮件地址不会被公开。 必填项已用*标注