【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 AIOps 解决实际问题,戳>>> 了解详情
写点什么

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:4013455

评论

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

ceph-csi源码分析(2)-组件启动参数分析

良凯尔

Kubernetes 源码分析 Ceph CSI

Redis-Cluster集群

Sakura

4月日更

ARST-日常打卡3

pjw

关于读书的随想

小天同学

读书 4月日更

大数据-数据处理分类篇

进击的梦清

大数据 批处理 流式计算框架

内容平台与热点挖掘思考

程序员架构进阶

28天写作 4月日更 领域思考 内容平台

打通本地部署和公有云,混合云架构让“鱼”和“熊掌”兼得(一)

UCloud技术

混合云

Golang 反射

escray

学习 极客时间 Go 语言 4月日更

Go 的 UTF-8 实现

Rayjun

utf-8 Go 语言

介绍一款能取代 Scrapy 的爬虫框架 - feapder

星安果

Python 爬虫 Scrapy feapder

基于NIO高性能、可扩展网络应用库:xSocket

风翱

4月日更 xSocket

HZFE 快报002 / 比特币7年来首次跌破50天均线

HZFEStudio

大前端 金融科技 科技互联网 资讯

如何利用 Google 开源工具 Ko 在 kubernetes 建并部署 Go 应用

公众号:云原生Serverless

Kubernetes 云原生

封神总结!12W字“多线程与高并发实战手册”成功助我涨薪19K

比伯

Java 程序员 架构

【网络】【操作系统】详解select、poll、epoll

Linux服务器开发

后端 网络编程 Linux服务器开发 网络io eopll

JVM-技术专题-虚拟机知识遗漏盘点

洛神灬殇

JVM

都在看的18WJava核心成长笔记 让我成功收获字节、阿里、腾讯大厂Offer!

学Java关注我

Java 编程 架构 架构师 程序人生】

想拿到10k-40k的offer,这些技能必不可少!作为程序员的你了解吗?

Java架构师迁哥

产品训练营第三周作业

innovator琳

产品

微信读书又更新,吃灰已久的Pencil又能拿出来遛一遛了。

彭宏豪95

效率工具 读书 阅读 4月日更 微信读书

高效获取信息的几点经验

彭宏豪95

效率 信息 阅读 4月日更

ceph-csi源码分析(1)-组件介绍与部署yaml分析

良凯尔

Kubernetes 源码分析 Ceph CSI

思维训练

Ryan Zheng

流量分析中常见的指标简单总结

五分钟学大数据

4月日更

太厉害了,终于有人能把Ansible讲的明明白白了,建议收藏

沐风

ansible

Python OOP-2

若尘

面向对象 oop 面向对象编程 Python编程

iOS 面试策略之语言工具-Swift

iOSer

ios swift 面试

深入理解Spring框架之AOP子框架

邱学喆

aop 动态代理 cglib ProxyConfig AspectJ

DAPP系统开发运营版,DAPP系统开发案例源码

系统开发咨询1357O98O718

封神总结!蚂蚁金服+滴滴+美团+拼多多+腾讯15万字Java面试题

Java架构追梦

Java 阿里巴巴 架构 面试 金三银四

Web3.0时代需要什么样的企业级协作工具?

猫Buboo

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