当前位置: 首页 > 科技观察

30岁的Ruby:单挑Java后,为什么出头这么难?

时间:2023-03-13 06:30:49 科技观察

编译器丨千山如果你长期从事web开发领域,你会见证很多语言和框架的兴衰。在群星之中,Ruby及其Web应用框架RubyonRails就像一颗流星,在绽放光彩后逐渐暗淡。曾经,Rails的出现极大地促进了Ruby语言的发展。当Rails风头正劲时,就连最保守的公司也开始考虑采用Ruby,甚至业界发出了“Ruby将挑战Java”的说法。但事实是,十多年后回头看,Ruby将取代Java的想法似乎很可笑。根据TIOBE发布的2023年1月编程语言排行榜,Ruby位列第16位,介于MATLAB和ObjectPascal之间,而Java仍然很受欢迎,位列第四。而且与Java相比,Ruby在招聘热情、市场需求、开发者关注度等方面都远远落后。TIOBE2023年1月编程语言排行榜,来源:互联网不过,暂时不要把Ruby和一些已经“入土”的语言放在一起。尽管Ruby不再占主导地位,但它在编程语言世界中仍然占有一席之地。本文试图通过一群Ruby程序员之口,追溯这门语言的兴衰,分析Ruby为何崛起,又如何从鼎盛时期衰落,以及为什么他们认为Ruby还有未来。一、Ruby的辉煌岁月:为什么伟大Ruby是面向对象编程的解释型脚本语言。核心优势在于它允许开发人员快速构建和启动应用程序,尤其是前端应用程序。这一点从未改变。.这门语言是1993年由YukihiroMatsumoto创建,1995年正式发布,基本上与Java同时出现。但相比Java的“光环”,Ruby一直很低调。直到2004年,DavidHeinemeierHansson发布了世界上第一个WebMVC框架RubyonRails。这种小众语言开始让世界感到惊讶。Ruby的发展可以说是恰逢其时。万维网诞生于1994年,十年后,Web2.0逐渐兴起。在此期间,Rails的诞生加速了Ruby的发展。从2000年开始,Ruby作为一匹“黑马”走出日本,受到全球开发者的关注。它的受欢迎程度在TIOBE指数评级中逐渐达到顶峰。当时,很多大型网站,如Twitter和Groupon都对这种语言青睐有加。YukihiroMatsumoto曾在采访中评价Ruby的“繁荣”:“首先,得益于Web的快速发展,几乎所有的软件开发平台都瞄准了Web领域。也就是说,可以开发的应用程序“在Web上这是主要的背景。另外,Ruby的优势在于其开发效率高。这两点的结合,我认为是RubyonRails成功的主要原因。”归根结底,促成Ruby兴起的因素有很多,但与语言本身的特质是分不开的。一是发展速度快。“RubyonRails仍然是小团队影响大团队的好方法,”《Programming Ruby 3.2》的合著者NoelRappin说。“它仍然是从头开始构建真正有价值的东西的最快方法之一。”尤其对于初创公司和最小可行产品的开发,试错成本很高,任何微小的延迟都可能导致失败,因此RubyonRails成为了战略选择。此外,它易于使用。由于Ruby语言本身使用了大量的英文单词,上手容易,而且RubyonRails的语法简单明了,程序员只需要编写少量的代码就可以解决复杂的任务。清晰的语法允许开发人员在多个项目之间切换,这使得开发和维护代码更加容易。最后,社区支持。一个强大而有凝聚力的社区在Ruby的发展中发挥了巨大的作用。Qwoted的首席技术官KevinTrowbridge认为,这与语言本身的性质有很大关系。“它是所有编程语言中最易上手的编程语言,易于阅读和编写。这一理念不仅有助于优化产品,还能提高开发人员的生产力和幸福感,这也解释了为什么它具有如此强大的影响力。”社区。支持。”当然,编程语言世界的竞争一直很激烈,而在Ruby不断前进的同时,其他语言和框架也没有停滞不前。即使随着时代的发展,当互联网公司逐渐重视2、来自JavaScript和Python的挑战“Rails正处于Web转型和增长的风口浪尖,它既受益于也推动了这种增长,但不会唯一成功的。这是一个给定的结论。”自2006年开始从事Ruby开发的MatthewBoeh如此描述。在他看来,在某种程度上什至可以说“Ruby是其自身成功的牺牲品”。“因为它的社区一直是主要的近年来命令行复兴的驱动程序。在2000年代初期,它向从未听说过Lisp的人介绍了repr驱动开发,向那些被Perl的CPAN推迟的人介绍了包管理,并向Java世界之外的人介绍了测试驱动开发。发展……这些在今天是理所当然的。尽管这些都不是Ruby原创的,但它们已被Ruby爱好者推广和使用。“如果现在有一种语言在Ruby曾经统治的地方占据主导地位,那就是JavaScript。”随着JavaScript演变成一门全栈语言,工程师可以使用一种语言,甚至共享代码库来构建前端、后端和移动项目,”NewRelic开发总监JemeahSius说,“Ruby易于学习,安全标准高,社区活跃。但是当有人想到全栈时,他们会想到JavaScript、Node.js、React或他们喜欢的任何框架。Qwoted的CTOTrowbridge指出,JavaScript之所以能够填补这一空白,是因为它从一种开发人员曾经不屑一顾的语言得到了改进。事实上,随着时间的推移,它变得更像Ruby。他说:“浏览器供应商已经做出努力来规范化、标准化、简化和增强。”“它比过去的JavaScript好多了。”Boeh补充说:“目前形式的JavaScript生态系统在2004年是不可想象的——它需要命令行复兴和网络平台才能起飞。”JavaScript标准版本。现在它是每年一次。“与此同时,Python主导了当今最热门的开发领域之一,即人工智能和机器学习。”Bhardwaj说,“领先几年”,“另一方面,Ruby被认为速度很慢,并且没有”NewRelic的Sius对此表示赞同:“当有人想到一种可以创造从游戏到VR到AI再到ML的一切东西的多功能语言时,每个人都知道Python是明显的赢家。”“3.Ruby的没落JavaScript和Python能够在与Ruby的竞争中占据上风的因素有很多,并不局限于语言本身的特性。Qwoted的Trowbridge说:“Python和Ruby有很多相似之处。例如,它们都是适合在服务器上使用的动态解释型脚本语言。它们的运行效率不高,因此运行成本很高,但它们都非常灵活,因此对初学者也很友好。但在数据科学方面,由于TensorFlow和Keras等框架的现成可用性,Python无疑具有优势。“这些框架让程序员更容易构建数据可视化和编写机器学习程序,”Bhardwaj说。“与此同时,JavaScript产生了无数的库,开发人员可以轻松下载并适应任何目标。这些库中有许多是由社区成员开发的,这也促进了其他人的贡献。就像滚雪球一样,任何参与开放的人source熟悉这种效果,在这场博弈中,还有一个不可忽视的大玩家,影响力巨大,那就是谷歌,主导了TensorFlow的发布,谷歌使用Python作为其内部脚本语言。很多人对改进JavaScript很感兴趣。Trowbridge认为Google使JavaScript比以前更快,内存效率更高。与此同时,人们普遍认为Ruby在性能上落后,部分原因是它缺乏类似的企业赞助商和资源来改进它。在Ruby曾经繁荣的一些领域,它并没有被其他语言所取代。而是整体环境发生了变化,所以这些小众市场市场不再被认可。Boeh说:“我最初是为当地一家创意机构的客户制作营销网站和在线商店,我认为很容易忽视Web开发世界的底层已经被自动化接管。几年之内,整个业务都消失了——当他们可以使用WordPress或Shopify做得很好时,没有人对这样的自定义网站感兴趣。4.2023年,Ruby将30岁。与Pascal、COBOL和即使是Perl,Ruby的情况也好一些,但没落的趋势似乎无法逆转。正在下沉,但速度还是越来越慢。Ruby有未来吗?面对这种质疑,一群开发者仍然持乐观态度。其中,电子商务巨头Shopify是最大的原因之一,因为RubyonRails是它的主要开发平台。“Ruby仍然是开发电子商务应用程序的最佳工具,因为它具有动态能力和灵活性,”Bhardwaj说。您的应用程序来自不同的模块,然后稍后对其进行修改。这使我们更容易更新应用程序以获得更多功能。“虽然Shopify的运营规模远小于谷歌,但它仍然致力于成为Ruby的赞助人,就像谷歌一直以来对其青睐的语言一样。例如,Shopify最近开发了YJIT,这是一种提高Ruby性能并内置到Ruby标准中的即时编译器。Ruby“作为一种出色的服务器端‘胶水’语言,用于Web应用程序的服务器组件,很像Rails的‘API-only’模型,”Trowbridge说。他指出,在某些方面,这个角色“基本上把Ruby带回到了它开始的地方。”“总而言之,几乎所有与我交谈过的人都相信Ruby和RubyonRails将继续在许多环境中使用。就像许多不像以前那样流行但仍被大量使用的语言一样。我认为Java就是一个很好的例子。例如,Ruby和Java会有相似的轨迹。”最后,还有很多人觉得Ruby社区一直对Ruby怀有一种在其他语言中很难找到的温暖和热情。正如LumenovaAI的CTOCosminAndriescu所说:“Rails仍然有一大优势,它拥有大量的Rubygem库。相比之下,许多JavaScript框架的API不稳定,并且在必要的Web开发工具方面还不够成熟然而。”Boeh补充说:“现在Ruby世界正在发生许多激动人心的发展。Ruby永远不会再成为下一个重大的新事物,但我认为它会一直存在。”5.写在最后:你想学Ruby吗?软件的生命周期有其内在的规律。一门编程语言能够坚持三十年,实属不易。“Ruby有很多特点,我觉得最受欢迎的是它的简单、高效、人性化。但同时,也有一些开发者不喜欢Ruby,因为一旦应用到工作中,出错的概率就会增加因为Ruby太灵活了。大。有人说Ruby里面很多东西都是运行时决定的,很麻烦。”Ruby之父松本行弘在接受采访时说。他认为,这其实是一个取舍的问题。“从使用Ruby的角度来说,我个人认为最重要的是灵活性。当然,很容易写出bug真的很烦人,但我还是想保留Ruby最重要的特性。而且,Ruby会继续提高并进一步提高发展效率。”对于开发者来说,职业规划是否学习Ruby也是一个取舍的问题。一方面,近十年来,发展领域可谓百花齐放。Node.js、Angular和React引领着前端和后端。JavaScript在市场需求稳定性方面越来越有优势,Python则是后来者。另一方面,许多公司仍然对Ruby和Rails开发人员有需求。自2008年以来出现的所有SaaS都将在未来几十年需要新的开发人员加入。毕竟任何语言都是受应用场景限制的,场景变化非常快。不管是学习还是使用Ruby,都得深入一门语言。只有深入研究,才会有进一步衡量和评价的眼光。参考链接:https://www.infoworld.com/article/3687219/whatever-happened-to-ruby.htmlhttps://zhuanlan.zhihu.com/p/108825259?utm_source=wechat_sessionhttps://www.duaima.com/Group/Topic/OtherLanguage/3300