Ruby on Rails:已成为过去?

Ruby on Rails:已成为过去?

无论您是在独角兽公司工作的经验丰富的开发人员,还是希望进入编程世界的新手,您可能已经想到一个问题:“我应该学习 Ruby on Rails 吗?”如果您已经了解 Ruby,您是否应该继续使用并扩展您的技能?还是转向更流行的语言?当您思考这些问题时,让我们更深入地研究 Ruby 和 Rails 框架,并列出历史、好处、挫折和潜在的未来。

那么,什么是 Ruby on Rails?

Ruby on Rails 也称为“Rails”,我将从这里开始使用它。为了明确地按名称进行细分,Ruby 是编程语言,而 Rails 是服务器端 Web 应用程序框架。由日本程序员 Yukihiro “Matz” Matsumoto 在 1990 年代中期发明的 Ruby 语言由于类似于英语,因此获得了初学者友好的地位。 Matz 构建 Ruby 的重点是首先要被人类理解,其次才是计算机。然而,Rails 是由 David Hansson 在 2005 年晚些时候发明的。 Rails 类似于 AngularJS 和 Django 框架,因为它通过将 Web 应用程序拆分为三个相互关联的部分(模型、视图和控制器,称为 模型视图控制器 (MVC) 框架。红宝石是一个 面向对象编程 (OOP) 语言,这意味着每个值,包括字符串和数字,都是对象。

现在让我们回顾一下 Ruby 和 Rails 的优缺点,以指导您是否发现 Ruby 值得在您现在或未来的职业生涯中学习和使用。

好处

简单的项目设置

  • Ruby 和 Rails 允许我们创建整个 Web 应用程序;它是全栈的! Ruby 和 Rails 框架允许我们从头开始构建功能性网站。 Rails 自动将模板添加到 Ruby,使项目的初始设置变得快速而简单。您可以使用 HTML 进行结构化,使用 CSS 进行样式设置,使用 JavaScript 进行 Rails Web 应用程序内部的交互。无需使用单独的应用程序来托管前端。 Rails 的默认模板引擎是 Embedded Ruby (ERB),它允许我们将 Ruby 集成到 HTML 中。

预算友好

  • Ruby 的简单性与 Rails 相结合带来了高开发速度(而不是性能速度),这对开发社区尤其是雇主很有吸引力,因为它可以在更短的时间内生产出高质量的产品。因此,降低了构建项目所需的预算。

Fast development speed = Save money

一体化

  • 随着 Vue、React、Angular 等前端框架的流行,Rails 可以很好地与这些框架集成,并且不依赖 Ruby 成为有用的后端框架。

宝石

  • Rails 有数千个名为 gems 的内置库。与许多其他库一样,gem 是开源的(免费),可用于满足开发人员或团队在不编写额外代码的情况下添加功能的任何特定需求。

大量的学习资源

  • 如前所述,Ruby 是一种更容易学习的语言,不仅因为它的语法,还因为它的大量文档。当您遇到错误时,您不会很难找到教程或解决方案。

大型开发者社区

  • 鉴于 Ruby 和 Rails 已经存在了很长一段时间,它已经从它的时代中受益。多年来,一个著名且成熟的社区已经发展壮大,它维护源代码并为许多新开发人员贡献和使用 Ruby 和 Rails 框架提供环境。

缺点

人气下降

  • 近十年来,Ruby 和 Rails 的流行一直在最受欢迎的编程语言列表中名列前茅。即使 Hulu、Github、Shopify、Kickstarter 和 Airbnb 等大型公司网站在其技术堆栈中使用 Ruby 和 Rails,也未能阻止

Top languages over the years ( Github)

正如您在上图中所见,JavaScript 多年来一直是 Github 上的主导语言。然而,在 2015 年突然开始急剧下降之前,Ruby 一直是前 5 种语言之一。是什么原因造成的? JavaScript ES6 的发布。 ES6 发布的新特性导致 Ruby 被更多的公司和开发人员技术栈淘汰。 Ruby 跌出前 10 名可能只是时间问题。

在上面的视频中,Rails 也一直在下降,开发人员更倾向于使用 Laravel for PHP 或 Django for Python。对于铁杆 Rails 的支持者来说,这是一颗难以下咽的药丸,但数字不会说谎。

性能缓慢

  • 虽然使用 Ruby 和 Rails 结合的 Web 应用程序的开发速度很快,但应用程序的实际性能速度并不理想。较慢的性能可能与 Rails 框架中存在的许多默认功能、组件、模块、模型和模板相关联,以使开发应用程序更容易,因此请谨慎对待这个弱点。

Fast development vs slow performance time

可定制性

  • Hanson 以“约定优于配置”的设计理念为 Ruby 构建 Rails。他通过设置“合理的默认值”来实现这一理念,这样程序员就可以开始运行并将所有注意力集中在构建应用程序上,而不必担心设置配置文件。 Rails 中的默认值和设置对象提供了改进的易用性,这对于基本任务和功能非常有用,但是,它限制了开发人员在项目中的创造力和灵活性。对于想要完全控制他们的应用程序的开发人员来说,这可能是一个交易破坏者。

Python的兴起

  • 许多 相比 Python 和 Ruby 因为它们都相对容易阅读和学习,这就是为什么初学者倾向于选择两者中的一个作为他们的第一门编程语言。您可能会想,如果它们相似,那么为什么 Ruby 的受欢迎程度会下降?可以说 Python 的兴起导致了 Ruby 的衰落。让我们开始吧,我们……

Python 有一套很酷的原则,称为 Python之禅 蒂姆·彼得斯(Tim Peters)从本质上说 Python 是为了明确、简单、美观和可读的。下面是一个代码片段,显示了多么相似,但更明确, Python 与 Ruby 相比

在 Python(顶部)中,Twitter 类是从 twitter 库中导入的,因为这就是我们所需要的(显式)。在 Ruby(底部)中,需要 twitter 库来导入整个库(隐式)。

  • 与 Ruby 相比,对数据库的更多社区支持使 Python 在数据科学领域非常流行,Mozilla、Instagram、Google 和 Dropbox 都在商业上使用它。它也在教育机构中教授。由于个人开发人员正在做出切换到 Python 的个人选择,因此有些教育机构目前没有在其课程中提供 Python。话虽如此,合并 Python 可能是一个有益的决定,因为它可能会因为它的持续流行和对 Ruby 的偏好而引起学生的更多兴趣。
  • Python 的崛起在 2005 年 Django 发布时尤其加速。 Python-Django 组合让 Ruby 和 Rails 框架物有所值,正如我们之前看到的,它实际上已经大大超过了 Ruby 和 Rails。如果您已经做到了这一点,请享受下面的漫画作为您的奖励:)

结论

作为开发人员,我们需要适应新的和即将推出的编程语言,以及使用遗留代码库。当我们中的许多人面对这个现实时,Ruby 和 Rails 可能已经失去了前几年的蓬勃发展,但它经受住了时间的考验,而且还没有消亡。它建立了良好的声誉和成熟度,这就是需求仍然存在的原因,许多初创企业和大

所以要回答前面的问题,“我应该学习 Ruby on Rails 吗?”没有简单的是或否的答案。我提供了支持和反对 Ruby 和 Rails 用例的几个理由。尽管受欢迎的统计数据可能显示出什么,但您决定评估什么对您的职业生涯很重要。如果您选择学习 Ruby 和 Rails,它有许多可转移的技能和语法!还记得我提到 Ruby 是一种面向对象的语言吗?好吧,Python 等其他语言也是如此!如果我之前已经说服您使用 Python,您可以尝试两种语言,因为其中一种语言可以互补另一种语言。没有一种语言可以满足您所有的业务或个人需求。尝试一些,选择你最喜欢的,并成为他们的专家!

以下是一些文章链接,它们提供了有关 Ruby on Rails 用例的更多信息:

https://launchschool.com/books/ruby/read/introduction

https://www.rubyguides.com/2018/11/ruby-erb-haml-slim/

https://careerkarma.com/blog/why-learn-ruby-on-rails/

https://careerfoundry.com/en/blog/web-development/should-i-learn-ruby-on-rails/#introduction-to-ruby-on-rails

https://www.software-developer-india.com/advantages-and-disadvantages-of-ruby-on-rails/

https://www.coursera.org/articles/ruby-vs-python

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/1526/52442916

posted @ 2022-08-29 16:54  哈哈哈来了啊啊啊  阅读(458)  评论(0编辑  收藏  举报