新手问题 ruby 没有 python 流行是不是因为 ruby 太难了?

tablecell · 2019年10月01日 · 最后由 jhyc 回复于 2019年11月04日 · 4544 次阅读

ruby没有python流行是不是因为ruby太难了?

共收到 54 条回复

因为早期 Ruby 资料都是日文,不便于传播。

Rei 回复

Matz 说令人痛心的是, Ruby 也是因为在国外先流行起来,才开始在发源地日本流行的 😂

知乎赞ruby的人少,踩ruby的人多。ruby培训机构为0家,python的培训机构数量为100家以上,ruby就业机会少,python的就业机会多。

ruby 只有web dev这一波

而python起码有web + data/AI这2波

因为ruby、rails在windows上运行不了

Python 有干爹 Google。你看 Go。

再一个 Python 语法简单,比较适合教学。

ruby 一直都可以在 windows 上运行的,核心库里面都还有 win32api 那么个东东。而其依赖的使用了 C 的那些 gem 因为需要编译所以就变得对 windows 不太友好了(替换成纯 ruby 写的 gem 的话我觉得就没这个问题

马太效应的牺牲品

上面几位都在避重就轻。避而不谈ruby的真正缺点:设计比python混乱

gaicitadie 回复

你指 python2 还是 python3?

gaicitadie 回复

为什么这么说呢?没明白你的意思。

赞同马太效应

生态。。。

Guido 过去学术圈子的,在学校流行学生不得不学习了。Ruby 爱好者学习居多,学校是不会教的(我发小在美国读博,前阵子讲面向对象课用 Ruby 教学)

gaicitadie 回复

Ruby 不是没有混乱的地方,看你能不能说出来了

那就先说说 Python 让我觉得混乱的地方

https://github.com/satwikkansal/wtfpython

Ruby太喜欢元编程了

flask 回复

看你名字就想踩一下,但论坛没有这个按钮。

sharpx 回复

元编程是特有的?

cqcn1991 回复

正解吧

Lisp 没有 C 流行是不是因为 Lisp 太难了?

stephen 回复

最逗的是日本那边 Ruby 核心开发至少一半用 Win 的

其实 Ruby 2.0 后换了新的打包方案, Win 原生 build 都没坑的,问题对于内地这边,安装 Ruby for Win 中间需要的依赖在 AWS 上,全被墙了

我作为初学者说一下吧 本身会Python

我只说一下Web框架对比

  1. rails学习曲线明显抖很多 不好上手 把官方的教程走一遍还是迷迷糊糊的 要反复的看文档才能搞清楚之间的关系 反观Python的Web框架 跟着走一遍基本上就能依葫芦画瓢了 「直接拦住了很大部分想要学的人 本来想学的人就少 直接变更少」
  2. 中文资料少的可怜
  3. 用的人数少导致有些问题去谷歌搜 搜不到,讨论的也不多,而python的web框架基本上遇到问题都能找到答案
  4. 敲代码的自动提示 都是大JB家的东西 RubyMine 感觉基本就是废物。。。

这个确实是原因之一,难挺多的。

但是主要原因可能还是应用场景的问题,生态。

Ruby设计太烂,文档简直是对软件工程的侮辱,如果想搞清楚,就去看源码吧😓

可以这样认为,Ruby代码本身的撕扯比功能要多

  1. 你写了双引号,会有人让你改成单引号
  2. 你写了字符串作为键值的哈希表,会有人让你改成Symbol
  3. 你写了trailing comma,会有人让你去掉

其他的比如写了三个以上类似的方法/类就会有人让你改成元编程就不一一而论了。

另外Rubocop本身的taste很有问题,配置起来也很讨厌。

29楼 已删除
www 回复

针对这位兄弟的观点聊一下自己粗鄙的看法:

rails学习曲线明显抖很多 不好上手 把官方的教程走一遍还是迷迷糊糊的 要反复的看文档才能搞清楚之间的关系 反观Python的Web框架 跟着走一遍基本上就能依葫芦画瓢了 「直接拦住了很大部分想要学的人 本来想学的人就少 直接变更少」

我的感觉是Rails其实并不适合对web开发一点基础没有的人来学,从前端到后端,乃至数据库及运维的知识都要有一个宏观性的了解,在这基础上再学Rails感觉会好不少,我是先接触的flask,简单清晰,然后又接触的django,回想当初学django的时候感觉也迷糊,本质原因还是当时对该了解的理论知识没有了解透彻。所以武断地讲,无论哪种语言的全栈框架都不是为一点基础没有的初学者准备的。

用的人数少导致有些问题去谷歌搜 搜不到,讨论的也不多,而python的web框架基本上遇到问题都能找到答案

个人的体会是,在使用Rails过程中碰到的比较棘手的问题都是靠看源码解决,对自己来说这到是个好事情。

bysxiang 回复

哈哈哈~ 看源码+1

把Ruby替换成Lisp会不会让人更容易理解问题在哪?

nouse 回复

太真实了,每次code review都是在争论这些东西。。

misakamikoto 回复

code review不是code style review

因为网络不好,经常打不开相关的网站。 比如下载这个: https://rubyinstaller.org/downloads/ , 200MB 要花4小时 。

虽然工作一直没离开ruby,但这几年的感觉下来,ruby进化得比较慢。但是楼主说是否ruby太难,本人感觉不是。

oatw 回复

个人的体会是,在使用Rails过程中碰到的比较棘手的问题都是靠看源码解决,对自己来说这到是个好事情。

不错是好事,但是对于初学者不是说不想去看源码,而是自身的水平还不够,这就比较尴尬

Rails文档算非常好的了,Ruby的源码我至今也没看过也不影响开发。

web开发,尤其是全栈开发本身知识点比较杂才是劝退新手的主要原因。python还能干别的,ruby不做web没得做

国内也有一些公司,不声张的,但另一方面是,AWS 没有一个专门的 Ruby 开发,写 Java 的顺手就把 Ruby 项目写起来了

jasl 回复

说明 ruby 学起来容易,用起来容易!

https://news.ycombinator.com/item?id=21138422 在 Y Combinator 估值前10 的公司裡面有 6 家使用 Ruby

主要是生态,特别是高校生态,一些高校老师和学生或多或少会接触了解到python,进而促进了python在研究领域生态的积累,其实python写web比不上ruby,python主要是生态,什么都能搞一点,python生态的人员背景很广泛,涉及科研、运维、安全、web的各个方面,这也是python的库广泛的原因。

monika 回复

伯克利有门课用的是 RoR,cs169。

MIT 出了 Julia,但一直没火起来。

44楼 已删除

Python 能做的 ruby 做不了, ruby 能做的 Pythpn 也可以。 为什么我要学 ruby ?

我们公司的新项目我一直想要用rails去做,省事太多了,但是后来考虑到后续人员的招聘问题,无奈放弃。不想给未来的自己和公司挖这么大坑。

个人项目或者创业项目那倒是可以。

ruby 鼓励一个问题有多种解法。。。。这个放到工程里简直是噩梦,尤其是你有坑队友的时候

48楼 已删除

很显然大家都没有认识到 ruby 不如 python 流行的真正原因.

最真实的原因是早期 ruby 对 windows 的安装实在太不友好了(现在windows有wsl, 终于没这个问题了, 不过也晚了), 至今本论坛的 wiki 上还写着不建议用 windows .

windows 系统占据的市场比例大概是 90%, 可以想象, python 爆发性发展的时候, 效率是 100%, 而 ruby 爆发性发展的时候, 效率是 python 的 10%. 几年下来, 用户量的差距已经不可想象.

一个语言想要流行起来, 一定要为新手考虑, 尊重新入门的成员, 而不是高傲的说, 建议买 mac 或者重装成 linux 系统, 这样必然会被大量的用户所抛弃.

我Python感觉很dirty,但是就是让你那么用,你还没有办法,在定义类的实例方法中,居然要传入第一个方法参数self来占位,在方法的context中难道不能知道this吗?感觉Python中的面向对象是个假的

@Rei 发现疑似博彩网站灌水者@lesliehuang

qichunren 回复

估计因为c的面向对象就是把第一个参数作为对象的,guido就偷懒了,对象能继承就不错啦。。。

从语法讲,Ruby简单多了

还是看应用,Dart不是快死了,弄出个flutter又复活了。

ruby不管什么问题,我觉得有两点是其他语言比不了的,第一是友好,没有之一,第二是rails这个web框架,很多人说这个难,我觉得不是rails难,而是rails太成熟了,包含的东西就多,市面大部分流行的其他web框架都是学rails过来的,多少年了,可以说没有一个到达rails的成熟度,你拿rails开发web项目,快,而且安全

都不是。是ruby开发web太方便,不用加班,不用996,码农没有成就感,老板觉得钱花的亏,所以用的人越来越少了😂 😂

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册