我们已经在Ruby 2的阴影下生活了七年了。七!。Ruby 2是在2013年发布的(顺便说一句,与Reaction 0.3.0的首次公开发布同年!)。
在这段时间里,Ruby的性能有了很大的提高,很多对该语言的增强让很多人和项目受益。我们已经看到很多公司使用Ruby,在很多情况下,Rails成为开发者和消费者互联网基础设施的基石。GitHub。购物。条纹。正方形。爱彼迎。
但在此过程中也出现了一些恐慌。Ruby真的是一种能够与Javascript、Python、PHP、Go等其他编程语言竞争的顶级编程语言吗?或者,这只是一个由DHH推动的炒作周期,注定会随着其他技术和框架的崛起而不可避免地相对默默无闻?(我真的不相信现在有人真的这么想了,但你仍然可以在黑客新闻上看到那些不知所措的人。)。
现在我们距离Ruby的主要新版本:版本3只有几周的时间了。虽然Ruby 3是一个激动人心的更新,有很多功能,让它现在和未来都很有趣,各种点的更新有望带来更多的好处,但我认为从主要版本2转到版本3的心理对社区未来的健康最重要。
Ruby3不仅仅是一个新版本。这是一个新时代。
这个时代代表着什么?让我们列出几个谈话要点,我希望我们能开始努力,并经常以Ruby主义者的身份推动:
不,我不是说Ruby 3突然比Ruby 2.7快了很多。我的意思是,与Ruby2相比,Ruby3更快。不幸的是,很多“Ruby is Slow”的模因都是一种落后的观点,源于人们多年前使用这种语言或旧版本的Rails、Jekyll或…的经验。事实是,这并不是我们今天乐于享受的那种活泼的体验。
我们还想要更好的表现吗?当然了!。但在这一点上,与许多其他“脚本”语言相比,Ruby已经相当快了。大多数情况下,它与Python不相上下。它甚至可以与Javascript相提并论。(什么?不相信我吗?了解一下类似的Jekyll和Elevely作为静态站点生成器的表现。)。正如Nate Berskopec经常提醒我们的那样,您的Rails应用程序只需进行一些微调就可以很好地运行,而且通常典型的瓶颈位于堆栈中的其他地方(数据库、Web服务器等)。
如今,你不需要与gem依赖地狱搏斗,也不需要祈求上帝来编译Ruby或Ruby扩展。那是“老红宝石”。新的Ruby正在使用像rbenv和bundler 2相结合的花哨的版本管理器。
真的,Ruby是我在任何新操作的Mac或Linux机器上安装的第一件东西,设置起来非常容易。安装导轨。安装布里奇敦。安装…。管他呢。它。只是。行得通。
我们也有像Docker和WSL这样的东西,如果你在使用原生Win的Ruby时遇到困难,它可以让你在Windows机器上更容易完成任务。见鬼,你现在可以把你的整个开发环境上传到云中,并使用带远程扩展的VSCode。
有没有办法可以改进捆绑器和围绕Ruby版本/依赖关系的生态系统?确实是这样。但这并不比npm/纱线的世界更复杂或更麻烦,你也看不到那里愤怒的人群试图烧毁谷仓的门(也许除了Deno First😉)。
Ruby并不是所有问题领域的最佳选择。事实并非如此。但当谈到“标准”网页开发时,它往往是最好的选择。真的是这样!花几天时间编写NestJS+TypeORM类型脚本代码,然后回到Rails。它就像是一股清新甜蜜的空气。这不仅仅是在编写控制器或模型…时才出现的情况。它在堆栈中一直向上和向下移动。
Ruby只会让一切变得更好。代码更少。少一些陈词滥调。少一些礼节。更加流线型。更确切地说,是面向对象的。读写起来更加优雅和愉悦。当然,人们可以假设,还有其他Web框架/语言也有很大的优势。Laravel在PHP开发人员中很受欢迎,这是有充分理由的。姜戈在毕多纳主义者中很受欢迎。但是,有谁能面无表情地说,在其他条件相同的情况下,PHP是一种比Ruby“更好”的编程语言呢?有人能说,作为一个整体,Python比Ruby更适合构建网站吗?
我想不会。虽然Ruby最初并不是作为推动Web开发的一种方式被发明出来的,但它在Rails、Rack、Jekyll等令人惊叹的项目的兴起中找到了自己的利基市场,以及Strike和许多其他公司开发的出色的API。它在早期的Web2.0热潮中占据了很大一部分,这一遗产至今仍在惠及我们。
Ruby 3不仅仅是最近发布的Ruby版本中的另一个档次。它是Ruby 3.0。这意味着我们可以展望3.1、3.2、3.3甚至更高的版本。这是一个全新时代的开始。新的创新。新的模式。将其他技术的概念与Ruby方式融合在一起的激动人心的想法。新鲜血液流入生态系统。(坊间传闻,我经常看到新手和老员工跳进基于Ruby的论坛和聊天室,在经历了几年的平淡无奇的渐进式发展之后,有趣的新Ruby瑰宝涌现出来的速度似乎终于加快了。)
要点是:Ruby3代表了一个时刻,我们应该以Ruby爱好者为荣,毫不掩饰地向世界各地的训练营和工程部门宣布,我们是开放的,准备好做大大小小的生意。当然,你可以选择Ruby以外的其他东西来构建下一个伟大的互联网成功故事。但如果你真的选择了Ruby,你肯定会有很好的同伴。毕竟,你的代码很可能生活在由Ruby(GitHub)管理的仓库里,你会通过Ruby(Basecamp;amp;嘿)与同事交流,你会通过Ruby(论坛)寻求支持,你会通过Ruby(Dev.to)研究最新的开发者新闻和技术,你会穿着从独立供应商Ruby(Shopify)那里买来的13.3t极客T恤来启动你的开发机器。当你厌倦了所有的编程,需要在海滩边的私人小屋放松一下时,Ruby也会帮助你(Airbnb)。
订阅以接收及时的提示,您可以每周直接向Ruby站点或应用程序申请:
由于具有Perl风格的传统,Ruby在处理文本时为您提供了开箱即用的很大灵活性。让我们来挖掘一下什么是可能的吧!
从完全不同的部分组装ActiveRecord查询的表现力使使用Rails变得非常有趣。