写点什么

Ruby 到底怎么了?

  • 2023-06-07
    北京
  • 本文字数:3806 字

    阅读完需:约 12 分钟

Ruby 到底怎么了?

相关阅读:

不要学习“网红”编程语言

 

Ruby 和 Ruby on Rails 在早期就出现在 Web 开发领域了。然而,虽然现在 JavaScript 和 Python 都占据了主导地位,Ruby 还是仍然占有一席之地。

 

如果你已经在网络开发领域摸爬滚打了足够长的时间,你就会目睹许多语言和框架的兴起与衰落。Ruby 及其 Web 应用框架 Ruby on Rails 是最耀眼的明星。2008 年,Rails 推出仅仅三年后,该杂志就提出了这个框架是否会成为 Java 的继承者的问题,指出它将 Web 开发中的繁重工作挤出,并且与 Ruby 相关的初创公司看到了大量的风险资本投资。

 

15 年之后,认为 Ruby 会取代 Java 的想法看起来很荒谬。TIOBE 索引可以跟踪各种语言的查询,而 Ruby 在我最后一次查看的时候,排名是第 16 位。它位于 MatLab 和 Object Pascal 之间。(Java 位列第四,令人敬佩。)Filted 是一家提供虚拟环境的公司,求职者可以在虚拟环境的世界里,让未来的雇主看到他们的技能。这家公司甚至连 Ruby 都不在它的八大语言中。他们表示,雇主在 Ruby 上的测试时间仅为 0.5%。

 

但是,现在还不能将 Ruby 与 FORTRAN 或 ALGOL 一起放在博物馆里。我与 Ruby 的现任和前任程序员进行了访谈,以了解这门语言的兴起和衰落。他们与大家分享了他们对于 Ruby 是怎样和为何被排除在最流行语言之列的观点,以及为何他们觉得 Ruby 还有前途。

 

Ruby 最辉煌的时候

 

Ruby 最初之所以如此受欢迎,有很多原因,但是最重要的一点是,Ruby 可以让开发速度更快、更容易,尤其是前端应用。这一点没有改变。“Ruby on rails 依然是一个很好的方法,可以让一支小型团队拥有大型团队的影响力。”《编程 Ruby 3.2》(Programming Ruby 3.2)的合著者 Noel Rappin 说,“这依然是从零到真正的有价值的产品的最快捷的途径。”

 

“当涉及到为用户提供坚实的前端体验时,Ruby 一直是最好的语言,”BoutiqueSetup.net 的电子商务教练 Pulkit Bhardwaj 解释说,“它为最终用户提供了易用性,并提供了稳定、安全的体验。它还提供了一个实验的空间,因为 Interactive Ruby 能够逐行提供即时的表达结果。”

 

Ruby 一直以来都和一个强大的开源河区有着密切的关系。Kevin Trowbridge 是 Qwoted 的首席技术官,他认为,语言本身的性质与此有很大关系。“它是所有编程语言中最有文化的,”他说,意思是“它编写起来很简单,很容易读懂。这也是你拥有一个很强大的社区的原因,以及它的哲学,即它为产品、开发人员的生产力和幸福感而优化。”

 

但是,这些优势并没有对 Ruby 和 Ruby on Rails 产生什么实质性的影响。在此期间,其他的语言和架构也没有停滞不前。Matthew Boeh,2006 年就开始了 Ruby 的开发,他说,“Rails 是在 Web 转型和发展的关键时期诞生的。它既受益于这种增长,也推动了这种增长,但它不会是唯一的成功故事,这是一个预料之中必然发生的事情。”

 

Boeh 最近在 TypeScript 商店的 Lattice 担任高级软件工程师的工作。“你可以说 Ruby 是它自己成功的牺牲品,因为它的社区是近年来命令行复兴的重要推手,”他说,“在 21 世纪早期,它向那些从未听说过 Lisp 的人介绍了 REPL 驱动的开发,向那些会被 Perl 的 CPAN 吓跑的人介绍了包管理,向那些高度企业化的 Java 世界以外的人介绍了测试驱动的开发,诸如此类。这些都是当今桌上的筹码。但是它们都被 Ruby 爱好者普及和使用了。”

 

Ruby 的挑战者:JavaScript 和 Python

 

如果说现在有一种语言在 Ruby 曾经统治过的领域里占主导地位,那就是 JavaScript。只有当这种语言摆脱浏览器,接管世界其他地方时,这才成为现实。New Relic 的开发者关系部主任 Jemiah Sius 说:“随着 JavaScript 成长为全栈语言,工程师已经能够用一种语言甚至是共享代码库来构建前端、后端和移动项目。Ruby 很容易学习,而且有很高的安全标准,还有一个活跃的社区。但当有人想到全栈时,他们会想到 JavaScript——Node.js,React,或任何他们喜欢的框架。”

 

Qwoted 的 Trowbridge 指出,JavaScript 之所以能够承担起这一重任,因为这种语言已经从开发人员曾经鄙视的语言中得到了改进。事实上,随着时间的推移,它变得越来越像 Ruby 了。“浏览器供应商努力使其形式化、标准化、简化和增强,”他说,“它比以前的 JavaScript 好多了。”

 

“目前形式的 JavaScript 生态系统在 2004 年是不可想象的,这不仅需要命令行的复兴,也需要 Web 平台的腾飞。”Lattice 的 Boeh 补充道。“你知道吗,从 1999 年到 2009 年,发布一个新版本的 JavaScript 标准花了整整十年的时间?我们现在每年都有一个。Rails 在最后一个时期变得非常重要,在那个时期,即使不懂 JavaScript,也可以成为一个全栈开发人员。”

 

与此同时,Python 已经主导了当今最热门的发展领域之一,即人工智能和机器学习。Bhardwaj 说:“Python 在科学界很受欢迎,因为他们可以比以往更快地建立模型和算法的原型,所以它比 Ruby 领先好几年。另一方面,Ruby 被认为执行缓慢,并未受到开发者的重视。”New Relic 的 Sius 也同意这一观点,他说:“当有人想到一种通用语言,可以创造从游戏到虚拟现实,到人工智能,再到机器学习的一切时,每个人都知道 Python 是最大的赢家。”

 

Ruby 的衰落

 

有很多原因促使 JavaScript 和 Python 超越了 Ruby,它们超越了语言本身的品质。 “理论上 Python 和 Ruby 是相当的,”Qwoted 的 Trowbridge 说, “它们都是动态的、解释性的脚本语言,最适合在服务器上使用。它们不能非常有效地使用内存,因此运行起来很昂贵,但它们具有令人难以置信的灵活性,所以它们编写起来也相当快,对初学者也很友好。”

 

但是当涉及数据科学时,Python 就有很大的优势,因为像 TensorFlowKeras 这样的库现成可用。Bhardwaj 说:“这些框架使程序员很容易开发数据可视化和编写机器学习的程序。”

 

同时,JavaScript 已经催生了看似无穷无尽的库,开发人员可以轻松地下载并调整这些库,以满足几乎任何目的。Trowbridge 说:“作为一个技术专家,你可以按照你认为正确的方式进行你自己的英雄之旅,”。但是说到 JavaScript 时,“这些库都很出色。为什么要忽略所有这些呢?”

 

其中许多库是由社区成员开发的,这激发了其他人的贡献,这是参与开源的任何人都熟悉的雪球效应。但有一个大玩家在这里产生了巨大的影响。Python 的 TensorFlow 被 Bhardwaj 称为“游戏规则的改变者”,由谷歌发布,该公司紧随学术界的步伐,将 Python 作为自己的内部脚本语言。作为主流网页浏览器的制造商,谷歌显然也对提升 JavaScript 有兴趣。而且 Trowbridge 认为谷歌在使 JavaScript 比以前更快、更有内存效率方面功不可没。他说:“在某些方面,它感觉几乎像一种低级语言。同时,人们普遍认为 Ruby 在性能上是落后的,部分原因是它缺乏同样的企业赞助商,没有资源来改进它。”

 

而在一些 Ruby 曾经兴盛一时的领域,它并没有被另一种语言所取代;相反,情况已经发生了变化,所以这些领域已经无法辨认了。“我最初是为一家当地创意公司的客户制作营销网站和在线商店,我认为这也很容易错过网络开发世界的底层已经被自动化的程度,Lattice 的 Boeh 说。“在几年内,整个业务不再可行--没有人对这样的定制网站感兴趣,因为他们可以用 WordPress 或 Shopify 做得相当体面。”

 

为什么 Ruby 不会消失

 

尽管如此,Ruby 并没有消失---而电子商务巨头 Shopify 是最大的原因之一,因为 Ruby on rails 是它的主要开发平台。“Ruby 仍然是创建电子商务应用程序的最佳选择,因为它的动态功能和灵活性,”BoutiqueSetup.net 的 Bhardwaj 说,“你可以通过不同的模块构建你的应用程序,并在以后再修改它们。这使得更新应用程序以获得更多功能变得更容易。”

 

虽然 Shopify 显然没有像谷歌这样的规模,但它的目标仍然是作为 Ruby 的赞助人,就像谷歌为其喜爱的语言所做的那样。例如,Shopify 最近开发了 YJIT,这是一个即时编译器,可以提高 Ruby 的性能,并已被纳入 Ruby 标准。

 

Qwoted 的 Trowbridge 表示,Ruby 也在蓬勃发展“作为一种优秀的服务器端‘胶水’语言,它可以很好地用于 Web 应用程序的服务器组件,就像在 Rails 的‘仅 API’模式中一样。” 他指出,在某些方面,这种角色“使 Ruby 基本上回到了它的起点。”

 

总而言之,几乎所有与我交谈过的人都认为,Ruby 和 Ruby on Rails 将继续在许多环境中使用。Trowbridge 说:“有许多语言仍然被大量使用并具有相关性,而不像以前那样热闹了,我会把 Java 作为最主要的例子,并建议 Ruby 和 Java 将分享类似的发展轨迹。”

 

最后,从 Ruby 的社区中,你似乎找不到其他语言对 Ruby 的热情和热情,即使是那些在许多领域“击败”Ruby 的语言。例如,Lumenova AI 的首席技术官 Cosmin Andriescu 说,“ Rails 仍然有一个主要的优势,它拥有大量的 Ruby gem 库,相对于很多 JavaScript 框架来说,这些框架拥有不稳定的 API,在所有必要的 Web 开发工具中都不够成熟。”Boeh 更直截了当地将 Python 描述为“我见过的最讨厌使用它的人的语言”。

 

“我仍然在个人项目中使用 Ruby,并希望我能够再次专业地使用它,”Boeh 补充说,“现在 Ruby 世界有很多令人兴奋的发展,截至 6 个月前,还有很多的就业机会。Ruby 永远不会再成为下一个大的新事物,但我认为它将继续存在下去。”

 

作者简介:

 

Josh Fruhlinger,作家兼编辑,住在洛杉矶。

 

原文链接:

 

https://www.infoworld.com/article/3687219/whatever-happened-to-ruby.html

 

2023-06-07 13:4029512

评论

发布
暂无评论
发现更多内容

ECS公网连接指南:精明选择公网IP计费策略

Geek_2d6073

是什么阻碍了你的成长

老张

个人成长 职场成长

ChatTuGraph:通过大模型“与图对话”

TuGraphAnalytics

graph FineTuning Text2GQL

如何轻松管理你的海外主机?实用技巧大公开!

一只扑棱蛾子

海外主机

亚马逊云科技携手埃森哲、Anthropic助力企业打造负责任的AI

财见

SpringBoot集成ElasticSearch,实现模糊查询,批量CRUD,排序,分页,高亮...

Java技术精选

OLAP性能再获突破!火山引擎ByteHouse性能白皮书发布

Geek_2d6073

一站式大数据开发与治理产品实践

Jackchang234987

元数据 大数据平台 数据开发平台 数据中台数据治理

同城双活:交易链路的稳定性与可靠性探索

得物技术

Java 后端 中间件 双活

TikTok直播专线是什么?有什么用?

Ogcloud

海外直播专线 海外直播 tiktok直播 tiktok直播专线 海外直播网络

reduce函数20个高级用法 看看你掌握了多少?

高端章鱼哥

日立公司采用元太科技电子纸实现了无纸化营运

财见

软件测试学习笔记丨Allure2报告中添加附件-日志

测试人

软件测试 测试开发

更轻松地部署和升级 NGINX Service Mesh

NGINX开源社区

nginx Kubernetes Helm Service Mesh 服务网格 mTLS

DevOps迈向标准化,平台工程让开发运维更轻松

SEAL安全

DevOps 运维 平台工程

保障校园网络安全用堡垒机的几个原因分析

行云管家

网络安全 数据安全 堡垒机 等保合规 校园

分享一些大数据处理算法

宇文辰皓

大数据

聊聊我做测试开发的十年心路历程

阿里技术

测试 开发

CQ 社区版2.10.0 | 新增 SQL 审核、全新英文版上线…

BinTools图尔兹

mongodb mongo 数据库管理 SQL审核 SQLite编辑器

一文掌握Trello:功能解析、与其他工具优劣对比及高效使用技巧

爱吃小舅的鱼

任务管理工具 Trello

新版Redis不再“开源”,对使用者都有哪些影响?

华为云开发者联盟

数据库 redis 华为云 华为云开发者联盟 华为云GeminiDB

解锁TikTok直播专线,提高使用体验

Ogcloud

海外直播专线 海外直播 tiktok直播 tiktok直播专线 tiktok直播网络

自定义对象池实践

FunTester

PostgreSQL数据迁移至Doris:一站式解决方案

NineData

postgresql Doris 实时数据分析 实时同步 NineData

库存控制秘诀:鞋服品牌如何避免库存积压风险

第七在线

“专业敏捷教练课程” 6月1-2日 · CSP-SM认证周末班【晋升高阶享多重福利】

ShineScrum

阿里云实时计算Flink的产品化思考与实践【上】

Apache Flink

大数据 flink 实时计算

敏捷开发:想要快速交付就必须舍弃产品质量?

敏捷开发

项目管理 Scrum 敏捷开发 产品研发 研发

最新 Apifox 3 月更新:详解多分支升级、Query 参数支持枚举、自定义快捷键

Apifox

程序员 Apifox API 接口工具 API 工具

山东省正规等保测评机构名称以及地址一览表

行云管家

等保 山东 等级保护 等保测评

比 MyBatis 效率快 100 倍...

Java技术精选

Ruby 到底怎么了?_语言 & 开发_Josh Fruhlinger_InfoQ精选文章