瞎扯淡 Ruby 和 Ruby on Rails 在 2017年 还有前途吗?

pengedy · 2017年01月18日 · 最后由 huacnlee 回复于 2018年02月21日 · 20063 次阅读

知乎上看到一个问题 https://www.zhihu.com/question/54572105

我是在校学生,最近在一家公司实习,公司是一个小国家的 IT 业内相对较大的公司,而这个国家这么多 IT 企业貌似使用 Ruby on Rails(RoR) 的仅有我们一家。从国内外各种技术网站/门户/社区来看,RoR 在过去的这两年完全没有人气似的,现在是 JS 的天下,不是么?所以想求证下业界人士,RoR 是不是还有前途?

最近我的感觉可以总结如下

优势 劣势
公司 快速搭建业务逻辑 难招人,进而影响构建研发体系,优秀的小众技术反倒会成为技术团队发展的瓶颈
个人 能够全面接触 Web 开发 隐藏了底层实现,难以做到专精;大量精力花费在以业务为重心的技术实现上,而忽略了技术深度

2017 年,我也打算开几样新的技术栈。

不过,关于 Ruby 和 Rails,社区里诸位怎么看?

知乎上的答案还不够多?

技能多开,确实是 ruby 程序员需要的。这里推荐一下,想深入网络编程的,可以实现一个 surge for mac with enhanse mode,囊括了网络层以及网络层以上的大部分常用协议和知识点。

Elixir,Ruby,JS。选一个自己偏爱的吧,没有绝对标准吧,个人偏好。

反正我认识的 Rubist 的涉猎都非常广泛

“隐藏了底层实现,难以做到专精;大量精力花费在以业务为重心的技术实现上,而忽略了技术深度” 如果专精才是真正的问题的话,那么完全以市场导向学技术其实不能解决问题,多学多用的过程中挖挖技术深度会更好吧。

你的 pros and cons 很有道理。

你可以找一个

  • 与你私交甚好
  • 你十分仰慕的
  • 从业 10 年的
  • 编程技术过硬的
  • 至今还未转管理的

行业专家认真讨论一下,让他给你指条明路,然后坚定的走下去。

与其犹犹豫豫,比如按他的路先走下去,边走边调整。

我觉得有前途。

1.Rails 并非没人气。 Google 搜索趋势- Django,Rails 和 Laravel 可以看到在全球范围内,Rails 比 Django 和 Laravel 等热门框架还热门。结合实际看到的内容,Rails 社区活跃,框架稳步发展,应用广泛,并没有没落。

  1. 包含内容丰富,初期可以学习的东西多。Rails 在一定程度内是小型 Web 应用开发的最佳实践,默认包含了前端打包、Web 安全等等内容新。手或者初级程序员如果能掌握 Rails,能到熟练运用 Rails API 解决业务、能写扩展并且能理解背后的原理的程度,在学习过程中掌握的内容其实非常丰富,并且能反哺到运用其它语言、框架进行 Web 开发的场景中。

  2. 单兵、小团队开发效率高。Rails 结合 Ruby 语言,验证原型、做小型业务效率非常高。

  3. 生态圈质量好。因为在国内的小众,导致社区氛围和资料的质量都很好。不容易接触烂书烂资料。 --- 上面 1234 是 markdown 解析错了还是我排版错了。。。 ---

结合 lz 的总结我也提下自己的感受:

公司难招人:国内圈子小这个是事实,也是在国内做 Rails 的一个大缺点。不过国内应该有少数规模小、也不追求快速膨胀扩张的公司,做自己的产品和外包、咨询业务,这种场景用 Rails 没什么不好。也不需要招很多人。上规模的企业,会从各个方面去权衡利弊,也不一定会因为难招人一棍子打死 Rails。同时 Ruby 在测试、运维、开发工具里应用还算比较多?

个人难专精:我自己接触了四五年 Rails,花在上面时间不超过 200 小时,写的 Ruby 代码不超过 4000 行(但是其实用这些 Ruby 代码产出的成果和回报还不错。。),感觉已经从 Rails/Ruby 里收益匪浅了。 学点入门花不了多少时间,并非人人学 Rails 都要成为大师。

可以肯定没有前途,因为什么语言火跟潮流行业有很大关系.你 Ruby 在再害还不是需要求(要) 职 (饭).如果公司里面有决定权的人不懂或者不想用一门技术,一切都没用. 最近再看 Java/Spring 框架. 发现怎么恶心的东西居然能得到广泛的使用.真是应了句老话.得屌丝者得天下。

我不知道在 Rails 领域有什么能够挑战 Rails 的。并且这个领域需求还是很大的。

语言和框架相当于一个类型的车,悍马跟丰田,各有各的用处。 编程的经验和技术才是驾驶技术。 我觉得如果没有其他语言帮忙消化,rails 也深不到哪去。 驾驶技术精湛了,开什么车只需要个适应阶段。

学语言学框架都是表面的。你要能看透这些东西背后的本质。

比如 Ruby 这个语言,你要能看到他以消息为主体的 OOP 机制,随意打开类带来的灵活性以及可能被滥用导致难以维护的问题。你要能看到大范围使用 block 带来的便捷,这样还能顺便去理解函数式风格的程序。

比如 Rails 这个框架,你要能看到背后提供的最佳实践,要去搞懂为什么曾经 Rails 几乎就是硅谷创业公司的不二选择,以及为什么后来人们离开了 Rails 而转去用别的框架了。

如果「只会 Ruby / Rails」的话,那是没什么前途。只是码代码的话,学 Java 去就好了。

14 楼 已删除

前几天 Quora 上也有讨论 Rails 是否还值得学,还引得 DHH 亲自回答。见 What makes Rails a framework worth learning in 2017?

个人看法,高度集成的解决方案总是有市场的,默认集成了很多最佳实践,可以节省很多琐碎的决策和时间,前提是你认可框架给你的大多数解决方案。Rails 一直走的就是这条路,也总是在很积极的吸收其他好的实践,所以也不算过时。而且前端再怎么变化,其核心也是更注重展示和交互的,后端功能总得有人写吧。前端现在少有高度集成的框架,原因也很简单,各个基础组件方面都还没杀出最终的优胜者呢,还不是时候选出“最佳实践”的集大成者。

不过现在其他语言的框架都吸收了 Rails 不少优点,并且也有各自的闪光点,比如我很喜欢 Laravel 单独抽了 validator 出来在 controller 那一层校验 params 的想法,更喜欢 Ecto 的 changeset。Rails 不再是领先“友商”X 年了的选择,但对于 Rubyist 而言仍然是个好选择。这有点类似 iPhone 的现状 -- 不再是唯一的选择,但仍然是部好手机,对果粉而言更是……

#15 楼 @darkbaby123 Rails 单独抽取 validator 层也很简单

@novtopro 并没有说这是 Rails 不能做的。Changeset 也有 ROM 在尝试,进一步放到语言层面来看,又有多少特性是一种语言完全没法实现的呢?这里只是举个例子说明下各家对同一个问题的不同处理思路。

这是当然毋庸置疑的,Rails 一直都会有前途。

这种问题是不是有点太业余了。建议删除

#19 楼 @alex_l_zhang 我是想了解社区的看法。你的看法是“这个问题太业余”,我知道了。

#4 楼 @easonlovewan 我并没有幻想学好 Rails 之后一劳永逸。 我这里有另一个说法,只会用 Rails,连操作系统的 TCP/IP 协议栈都不熟悉,也能称得上是 Web 开发者?

建议学习 Java 方向。

#10 楼 @lilijreey java 真是恶心爆了

我觉得,使用 Rails 开发会形成很多很好的习惯,开发别的也能给后人少挖点坑

#24 楼 @xiaoronglv You got the point.

大师之路,任重道远。

#25 楼 @xiaoronglv 同意 Ruby/Rails 本身的价值就值得我们借鉴学习. 很多事道法相同,但是技法就可能会相互冲突. 而且很多时候技术不是其决定因素的原因,甚至很多时候公司只需要找一个能够完成工作的庸才.

#28 楼 @hooopo 明白,我没有鄙视的意思。

别的我不知道,反正在我家厦门这边找工作真心难,对于我这样的新手来说,找份关于 Rails 方面的工作,好难,还是 Java 好找点。前途不太清楚,不过用 Ruby 的新生代程序员估计会越来越少。

离职快两月了都还窝在家里的人路过。。。这么说吧,如果你是 ruby 程序员,那么钱途和前途都有,但是如果你是 rails 程序员,大概也就能做到饿不死。。依然建议在会 ruby 的同时会一门其他语言,最好是会一门系统级,一门跨平台,一门脚本,这样基本上只要程序员这个职业还存在,就饿不死

作为 rails 程序员,我觉得我挺全栈的~~

是通过 rails 才开始了解 ruby 的,刚开始接触,还没体验到 rails 带来的极速开发的感觉,体验中。。

房价上涨居然影响到了 ruby 程序员就业

ruby 程序员转其他程序员难吗?你能做 ruby 能用 rails 开发产品,就证明你在用最佳实践的轮子,为了使用这些轮子,你要去他们的 github 或者官网上看他们的英文说明书 (因为中文版资料满足不了)...然后你学会了程序的最佳实践,然后你学会了无障碍阅读英文资料..有了这两个技能,你找其他语言的工作真的还会有难度吗?

其实不太同意楼上的一个说法:如果你是后者 (在意高性能、架构),我觉得非常不适合做 Ruby 程序员
好的项目和优质的代码是分不开的,所谓优质不外乎对性能和架构上的精益求精。而且最近一段时间一直在做性能优化相关的业务,并且现在一些 (大批) 公司就专门招做过性能优化相关工作的 ruby 开发者。

为什么要做一个新技术的追逐者,而不是未来的开拓者呢?

不管你实际用不用 Rails,都应该学一下它,尤其是它背后的设计思想。

难道不是学好计算机科学,有前途吗?

jasl 这下真伤心了 提及了此话题。 07月08日 01:05
42 楼 已删除
43 楼 已删除
需要 登录 后方可回复, 如果你还没有账号请 注册新账号