伙计们,Ruby是否死了?



上一次我与开发人员或公司交谈时,我经常用不同的词听到相同的故事-“我们是用Ruby编写的,但现在我们正在前进。” 一方面,不足为奇。 发展是一个易变的业务,总是有新事物出现,每天您都必须花很多精力来保持关联。

但与此同时,人们对技术甚至对仪器的崇拜也有所投入。 告诉php shnik,是时候该迁移到.NET了,您会听到“ PHP很棒,它写了一半的故事”,或者只是让您耳目一新。

Ruby怎么了?它的爆炸性普及在哪里? 我和一些摩擦论者交谈。 例如,来自Staply的Maxim Indykov(其团队从Ruby转到Go),以及来自GeekBrains的Alexei Kuznetsov(该公司开始使用Ruby课程,现已完全放弃了这些课程)。

Ruby为什么好?


Maxim Indykov( maks_ohs ):经过深思熟虑的语法,使代码看起来更具可读性。 您可以写得清晰,简洁。 实现了大量的库,它们的连接不会引起问题。

Pavel Serezhin:红宝石的主要优点是导轨,最好的框架。 清晰实现的模式(不像在node.js上那样)很酷。 编码本身类似于英语。

Alexey Kuznetsov:该语言具有轻量级且非常简洁的语法,非常适合描述DSL和业务逻辑。 低门槛,友好的社区。 是学习第一语言的良好人选。

Ruby为什么不好?


Maxim Indykov:对资源的要求很高 ,该语言的整个发展历史都伴随着内存消耗的优化。 在参考解释器实现(MRI)中,没有使用多个处理器内核(GIL)的真正多线程。

动态输入。 但这很难归因于缺点,因为尽管质量下降,但它允许您加快开发速度。

帕维尔·塞雷欣(Pavel Serezhin):红宝石对写作有多么好,对阅读也令人厌恶。 很难理解发生了什么,但是上帝禁止,作者患有自行车症候群,而且很烂-在这里至少马上就吊死了自己。 有时静态类型是不够的。

阿列克谢·库兹涅佐夫(Alexey Kuznetsov):该语言实际上并不是在其最接近的竞争对手(JavaScript和Python)的背景下发展的。 对Ruby的兴趣爆发式增长主要基于Ruby on Rails。 但是现在,像Rails一样的框架都可以用在每种流行的Java语言中,Ruby几乎没有提供。 即使没有可选的静态类型,也不会添加Ruby点。

告诉我为什么选择它?


Alexey Kuznetsov:大约5年前,我转而使用C ++的Ruby,那时候这是一个合理的选择。 我想制造更接近最终用户的产品。 PHP没有最好的声誉。 在JS中,ES5 + JQuery规则规则,Python语法没有启发性。

Pavel Serezhin:首先,由于有导轨,它非常适合我想做的Web开发领域。 而且,用面向开发人员的语言编写很不错。

Maxim Indykov:社区确实产生了影响。 大量高质量的书面教程和最佳实践。 Rails框架使从项目开始到部署的开发过程尽可能清晰。 编写测试的大量方法和实现:RSpec,MiniTest等。

那时,您认为他有未来吗?


Maxim Indykov:是的,语言一直在不断发展(并且现在还在继续发展)。 有大量空缺。 在php的背景下,一切似乎都是最合逻辑和正确的。

帕维尔·塞雷欣(Pavel Serezhin):我从没想到红宝石会排在首位,反之亦然。 似乎总是会有很少的开发人员,这会激起竞争。 没错-这是缺点之一,几乎不可能从六月的水平进入,除非在首都。

为什么现在对Ruby的需求越来越少了?


Pavel Serezhin:现在越来越多地,他们只是选择更多流行的语言和框架来创建新项目。 红宝石和铁轨的性能都略有落后,并且跟不上潮流。 Webpack支持已交付给Rails,并没有太大帮助-将其拆分为两个独立的项目更加容易。

阿列克谢·库兹涅佐夫(Alexey Kuznetsov): Node.js积极蚕食Web应用程序的利基市场,而Go耗尽了各种实用程序。

Maxim Indykov:在我看来,任务的不断复杂影响了我。 该解决方案需要不断增加容量和增加资源使用,或者尝试不让天花板陷入体系结构的诡计。

Ruby就是这样创建的,它被开发人员而不是企业所喜爱。 您是否认为他当前的不受欢迎程度表明这种策略行不通?


阿列克谢·库兹涅佐夫(Alexey Kuznetsov):在我看来,情况恰恰相反。 其他语言则达到了开发人员乐于使用它们的水平(ES6中的解构,Java8中的流,Kotlin和Swift中的零弱点,Go中的竞争模型)。

Maxim Indykov:企业希望节省资金-服务器资源。 当可以将负载保持更高数量级的技术可用时,很少有人会拒绝保存。
当这项技术具有严格的类型时,这是可靠性的加分-这是Ruby花园中的另一块石头。

感觉像是俄罗斯的情况:曾经有并且正在发展php。 然后是红宝石在当地的流行,它被描绘成是PHP的杀手but,但除了“好吧,用Ruby编写确实很方便”之外,通常缺少其他商业论点。 缺乏专家让所有人都感到恐惧。 随着长生不老药的问世,争论变得更加容易理解。

您必须离开露比吗?


Alexei Kuznetsov:我认为我们不应该使用Ruby,但是值得寻找替代方案。

Maxim Indykov:整个市场都在迁移。 大型公司宣布使用Go。 但是我们正在谈论在问题的某些方面的迁移。 一定要掌握新的流行技术的知识。

Pavel Serezhin:现在js变得更加流行,并且不方便使用两种不同的语法语言。 从历史上看,我对React有更多的灵魂,所以我认为应将全部内容放在首位。

他会成为完全无人认领的语言之一吗?


Maxim Indykov:不,要快速编写原型和MVP(需要易于实现),他是无与伦比的 。 有一个未耕种的项目领域,需要快速有效地实施。 可能需要进行优化的时机可能不会到来,但是如您所知,过早的优化是邪恶的。

帕维尔·塞雷欣(Pavel Serezhin):我不这么认为。 对于Ruby而言,它仍然会以某种不太受欢迎的语言而享有一定声誉,这是其社区的利基市场。

阿列克谢·库兹涅佐夫(Alexey Kuznetsov):这还有很长的路要走。 在许多情况下,编写该项目并不那么重要。 许多开发人员准备在周末收集MVP。
拥有一支激昂的摩擦专家团队,您可以成功开发该产品多年(GitHub和GitLab-都用RoR编写)。

Ruby编写了数百万人需要维护的代码行。
但是新项目的数量只会随着时间的流逝而减少。 我认为这门语言还有五年的时间。

什么可以帮助Ruby继续流行?


Maxim Indykov:语言开发人员具有极大的灵活性。 实施改进以使用多线程。

Pavel Serezhin:改善语言本身和Rails的性能。 并为公司提供了大量的支持资金。

Alexey Kuznetsov: Ruby还没有变成南瓜。 其他马车才出现。 有些配备了喷气发动机,其他的则更加耀眼。
我认为可选的静态类型(以及可以在其之上进行的调整)可能会有所帮助。

现在,哪种流行的YaP最适合摩擦学家?


马克西姆·英迪科夫(Maxim Indykov):确切地说,这取决于任务,但最常见的答案是:长生不老药。 一种由ruby / rails社区的人们创建的语言。

阿列克谢·库兹涅佐夫(Alexey Kuznetsov):总的来说,我还不能通过编程语言来划分开发人员。 对于软件开发人员而言,在2-4周内掌握足够数量的新堆栈应该不是问题。

因此,我将根据开发人员计划重点关注的任务来使用Go / JS / Swift。 有Elixir和Clojure,但它们不是主流。

帕维尔·塞雷欣(Pavel Serezhin):几乎每一个自重的摩擦主义者都会去戈朗。 因此答案很明显。

Source: https://habr.com/ru/post/zh-CN433672/


All Articles