在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
网红编程语言Ruby 过时了吗?很多开发语言像人一样是有生命的,很多技术都会有自然的生命周期,虽然红极一时但也会随时间流逝而衰落,开发者们的关注和精力就那么多,流向了其他地方、自然也就不再流向这里。
Ruby 十年前极受追捧,Ruby 是一种用于面向对象编程的解释性脚本语言,核心优势就是允许开发者快速构建并启动应用程序。Ruby 语言本身采用大量英语单词,所以上手难度更低。但由于可扩展性不佳Ruby 应用程序的运行速度往往不及其他语言。
这门编程语言由 Yukihiro Matsumoto 于 1993 年开始创建,于 1995 年正式发布。虽然和 Java 基本上可以算是同时期(Java 诞生于 1993 年,正式发布于 1995 年),但在 2004 年 David Heinemeier Hansson 发布 Ruby on Rails 之前,Ruby 一直非常小众。
Ruby on Rails简称为 Rails是一个使用 Ruby 编程语言的开源 Web 应用程序框架,曾一度大受欢迎,Rails 的出现极大的推动了 Ruby 语言的发展。
在2004 年之后,Rails 社区贡献出了广泛的插件(Gems)、书籍(光 2006 年就有 10 本关于 Rails 的书籍问世)、培训、一个主要会议(RubyConf)等等。随着 Rails 风头正劲,甚至连最保守的公司都开始考虑采用 Ruby。
《From Java to Ruby》一书的作者 Bruce Tate,曾是一位 Java 程序员,在当时也变成了一名 Ruby 狂热分子,他曾在 2007 年提出一个“木马计(Trojan Horse)”的方法,让一些领路人在保守的公司里为 Ruby 树立威望:
先找到一个不那么令人兴奋的技术问题。私底下使用 Ruby 解决此问题,尽可能在管理层发现不了的情况下工作。创建一个草根阶级联盟,通过培养文化的方式培养 Ruby 布道者。
“实现一个试点项目,用这个策略来暗度陈仓,在眼皮底下把 Ruby 整合进系统。剩下的工作让 Ruby 完成就可以了。不过为了建立你的试点项目首先需要创建一个案例,让 Ruby 看起来足够吸引眼球从而让大家甘心冒这个风险。
接着,你得在你的试点策略里面添筋加骨。鉴于人们对采用一门新语言与生俱来的抵抗力,你要选择一个不给疑虑留任何余地的方法。最终,你得愿意为成功建立制度根基。”
从 2000 年开始,到该时代中期,Ruby 受欢迎程度在 TIOBE 指数评级中逐渐达到顶峰,人们认为 Ruby 还有它的旗舰级 Rails 框架,可以大大提高生产力。不少现在的大型网站,比如 Twitter 和 Groupon 在当时都是这门框架的使用者之一。
只不过,人们也逐渐发现它存在一些致命缺陷。Groupon 工程师 Sean McCullough 在 2013 年的一个技术会议上讲道,“要在 Groupon.com 整个网页上更改一种颜色,估计需要三个月的时间。这导致我们无法以需要的速度进行迭代。”
Groupon 工程师不得不研究Ruby on Rails 的一系列替代方案,最终选择了流行的 Node.js,并花了一年时间进行迁移。Groupon 还表示,更换之后页面加载速度得到了显著提升,高达 50%。
从 2008 年引进,到 2013 年替换掉,Groupon 在这个坑里挣扎了 5 年。而在同一时期,备受扩展性问题困扰后,Twitter 也放弃了 Ruby on Rails。
现在,Ruby 确实不咋行了接下来,让我们一起从课程、实践、社区情况来看看当年盛极一时的网红编程语言发展现状。
现在,很多朋友可能注意到,专门的 Ruby 播客或者新闻网站已经越来越少。除了一个每周通讯网站还能保持高质量,其他的真就没什么了。
这就突出了 Ruby 语言正陷入恶性循环:因为缺乏好的信息和教程,新手开发者就不愿选择它;而因为没有足够的新人,市场对信息和教程的需求也随之减少。
因为在劳动力市场上不被看好,编码训练机构 Coding Dojo 决定从 2017 年开始将 Ruby 课程从全美六大学区内尽数撤下,同时增加 Java 的全栈开发课程。
Coding Dojo 课程负责人 Speros Misirlakis 曾表示,“我们一直在关注各地市场、把握技术需求,并发现 Java 的人气位居榜首。相比之下,Ruby on Rails 在招聘热度、市场需求和开发者关注度等方面都远远落后。”
到现在以 Udemy 为例,截至 2022 年 3 月,上面只有 109 种关于 Ruby(on Rails)的课程。
但 Python、Java 和 JavaScript 等语言的课程量都超过 10000 种。目前质量最高的 Rails 课程之一最后公开更新是在 2020 年。当然,go-rails 等其他服务也在提供相关课程,但 Ruby 衰落的趋势已经非常明显。
十年前,Ruby 背后还有高度活跃的社区,比如 GitHub、热门 repo。现在情况也发生了变化,支持并使用 Ruby 的开发者越来越少,曾被经常提起的 gems 服务,现在基本属于无人问津。再举个典型的例子,Rails 的 Azure 支持。
对微软 Azure 的支持状态可谓一团糟。相关一部分成果无人维护,过去几年来也毫无动静。大量问题被提出之后就长期搁置。
例如,Azure 官方库中有 22 个问题仍在开放,其中的依赖性问题大多源自 Nokogiri 库版本过老。我知道这例子有点极端,但它确实能反映出生存状态的一个侧面。
最近十年来,现代 SaaS 方案中的 API 几乎都不提供官方 Ruby 客户端或 SDK。形成鲜明对比的是,Java、JavaScript、Python 甚至是 Rust 可都在支持之列。
Slack 没有官方的 Ruby 客户端或者 SDK(其他语言都有),Dropbox 也一样。之前提到过,Azure 倒是有,但基本没有维护。
在所有 HubSpot API 实施意见中,Ruby 版本的人气(根据 stars 和 forks 判断)和更新频率都是最低的。像 Monday、Teamleader 或者 Notion 这样的现代项目管理方案都没提到过 Ruby。
这里要澄清一下,我举的都是不支持 Ruby 的 SaaS 项目。支持 Ruby 的也不少,从 AWS 到 Square,都提供一流且维护良好的 gems 供用户选择。
虽然没对 Ruby gems、repo、待解决问题等量化指标做过数据分析,但单是浏览一下基本情况就已经看得出相当负面的趋势。而且从部分 SaaS 服务上看,Ruby 确实不太受待见。
2010 年时 Ruby 的 SDK 和 API 客户端都是最亮眼的,之所以出色,是因为当时的 API 与 SaaS 开发团队往往会自己动手编写 Ruby 版本,所以客户端质量自然不在一个层面上。但近年来情况大变,而相应的社区版本要么维护不善、要么压根没有。
关注大型 SaaS 或者软件公司,我们会发现运行在 Ruby(on Rails)上的成果基本都有点年头了。
特别是在 2020 年之后,已经很难找到任何立足 Rails 构建的成功 SaaS 产品。GitHub 诞生在 2008 年,Shopify 是 2006 年,Twitter 是 2006 年,Groupon 是 2008 年,Zendesk 是 2007 年,Airbnb 是 2008 年,Fiverr 则是 2010 年。
我能想到的诞生于 2010 年之后、而且运行在 Ruby 或 Rails 上的成功厂商就只有 Stripe(2011 年)和 Gitlab(2014 年)。
在比较流行的 Ruby 开源项目方面,我能想到的也只有 Discourse 和 Mastodon。但这里确实也有幸存者偏差的因素:成功的企业需要经历漫长的磨练才会显露,所以不管用不用 Rails,成功的 SaaS 都得用时间证明自己。
2010 年那会 Rails 的成功催生出使用模型视图控制器(MVC)架构建立快速应用开发(RAD)框架的市场需求。可以肯定地说,Rails 这类框架确实拥有比较明确的市场定位,但还不至于火到那个程度。
这些架构的解决能力和适用范围都比较差,所以无论使用哪种语言,Rails 本身的流行度下降甚至在根源上来自 MVC 和 RAD 方法的逐渐衰落。
2021 年 StackOverflow 的调查结果也支持了这样的判断:Ruby 与 Rails 在各项评比中基本都处于象限底端。
Ruby 得到的“赞”和“踩”基本相当。很遗憾,StackOverflow 并不提供可供访问的趋势指标,倒是有一款基于标签活动的独立工具。
经过查阅,发现 Ruby 这几十年来持续下滑、而且身处底部象限。TIOBE 指数也给出了类似的结论,Ruby 稳定保持着每况愈下的生存状态,逐渐落后于其他语言。
请谨慎选择学习!!
虽然彻底消亡并不容易,就像 Pascal、COBOL 乃至 Perl 当下也仍然存在一样。Ruby 的情况要好一些,这艘船还远远没沉、只是速度越来越慢。
不过人气并不能直接决定语言的质量。毕竟如果用人气来衡量,那 IE 6 将是人类历史上最好的网络浏览器。
Ruby 仍然保持着 2005 年时的出色开发体验,而且体验只会越来越好。Rails 也仍是实现原型设计演示的好方法,能帮助大家在几天之内更稳妥地构建起最小可行性产品。
那我们是不是不该在职业规划中学习 Ruby 或者 Rails?话可不能这么说。市场对于 Rails 和 Ruby 开发者的需求仍然相当旺盛,或者说市场对任何语言的开发者都需求旺盛。自 2008 年以来出现的一切 SaaS,在未来几十年中都需要新的开发者加入进来。
但我们也要考虑到,在 Ruby 陷入萎缩的同时,Node.js 开始快速流行。在过去的十年里,开发领域的创新成果可谓百花齐放。HTML5、Node.js、Angular 和 React 已经在前端和后端遍地开花。
JavaScript 与 Python 在市场需求稳定性上也越来越具有优势。Python 是过去十年中增长速度最快的主流编程语言,目前已经扩展到 Web 开发、数据科学、科学编程等多个领域。Stack Overflow 的调查也显示出,JavaScript 已经成为全球应用最广泛的语言。
另一方面,很多技术都会有自然的生命周期。开发者们的关注和精力就那么多,流向了其他地方、自然也就不再流向这里。
所以这里还是想提醒大家如果 Ruby 继续保持过去十年来的衰落趋势,那各位一定要认真考虑学习这门语言的风险——也许 Ruby 终有一天也会像 COBOL 或者 Perl 那样成为时代的眼泪。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
少儿编程教师适合哪些人做?需要具备什么能力?
少儿编程教师适合哪些人做?需要具备什么能力?严格上来讲只要是对孩子有爱心,愿意从事少儿教育行业,就适合做少儿编程教师。可能一般人会认为,少儿编程教师需要具备极强的编程能力。其实不然,少儿编程教师只需要基本掌握编程语言就行了,难度要求并不大,因为对孩子的培训主要是集中在编程思维的养成上,而不是真的教孩子编写代码。
14120
2019-09-19 19:13:55
软件架构师是干什么的?要做哪些工作?
作为技术的骨干岗位,软件架构师需要在项目开发过程中,制定软件项目的整体大框架,带领整个技术团队完成项目的开发计划。近些年,随着人工智能、大数据等技术的发展,中高级的软件架构师人才需求缺口逐年递增。相信大家对于这个香饽饽行业会感到好奇,今天本文就来为大家揭开软件架构师的神秘面纱。那么软件架构师是干什么的?要做哪些工作呢?
6203
2020-02-14 15:38:55
IT程序员要什么学历?学历和能力哪个更重要?
IT行业招聘一般设置最低学历为专科,专科这个学历,如果能达到就业的能力水平也能找到工作。学历是给HR人看的,而能力是留下来做事的真功夫,故做IT程序员能力比学历重要。虽说做程序员的能力比学历更重要,但是学历是入职的敲门砖,学历越高越好,求职的机会越多。
13971
2020-03-05 11:04:04
编程第一步,怎么选择适合自己的编程语言?
现如今,信息技术革命进行得如火如荼,互联网行业俨然成为了新时代的宠儿,它也吸引着众多有识有志的人加入。但对于刚开始接触这个行业的学习者来说,编程语言的抽象化和复杂性,往往在选择什么语言时时令人感到困惑。本文让你从宏观上理解语言的本质,告别选择困难症。
2988
2021-07-14 15:49:06
值得收藏的程序开发的利器,你都有吗?
又到周五啦,秋高气爽、云淡风轻,感觉今天的天气好适合做好物分享呀,所以,勤劳的小谷就来给大家介绍8款我珍藏已久的开发者利器吧!不仅方便快捷,还可以集中注意力提高工作效率哦,祝大家周末愉快!
2737
2021-09-10 12:17:31