ruby 没有 python 流行是不是因为 ruby 太难了?
知乎赞 ruby 的人少,踩 ruby 的人多。ruby 培训机构为 0 家,python 的培训机构数量为 100 家以上,ruby 就业机会少,python 的就业机会多。
ruby 一直都可以在 windows 上运行的,核心库里面都还有 win32api 那么个东东。而其依赖的使用了 C 的那些 gem 因为需要编译所以就变得对 windows 不太友好了(替换成纯 ruby 写的 gem 的话我觉得就没这个问题
Guido 过去学术圈子的,在学校流行学生不得不学习了。Ruby 爱好者学习居多,学校是不会教的(我发小在美国读博,前阵子讲面向对象课用 Ruby 教学)
最逗的是日本那边 Ruby 核心开发至少一半用 Win 的
其实 Ruby 2.0 后换了新的打包方案,Win 原生 build 都没坑的,问题对于内地这边,安装 Ruby for Win 中间需要的依赖在 AWS 上,全被墙了
我作为初学者说一下吧 本身会 Python
我只说一下 Web 框架对比
可以这样认为,Ruby 代码本身的撕扯比功能要多
其他的比如写了三个以上类似的方法/类就会有人让你改成元编程就不一一而论了。
另外 Rubocop 本身的 taste 很有问题,配置起来也很讨厌。
针对这位兄弟的观点聊一下自己粗鄙的看法:
rails 学习曲线明显抖很多 不好上手 把官方的教程走一遍还是迷迷糊糊的 要反复的看文档才能搞清楚之间的关系 反观 Python 的 Web 框架 跟着走一遍基本上就能依葫芦画瓢了「直接拦住了很大部分想要学的人 本来想学的人就少 直接变更少」
我的感觉是 Rails 其实并不适合对 web 开发一点基础没有的人来学,从前端到后端,乃至数据库及运维的知识都要有一个宏观性的了解,在这基础上再学 Rails 感觉会好不少,我是先接触的 flask,简单清晰,然后又接触的 django,回想当初学 django 的时候感觉也迷糊,本质原因还是当时对该了解的理论知识没有了解透彻。所以武断地讲,无论哪种语言的全栈框架都不是为一点基础没有的初学者准备的。
用的人数少导致有些问题去谷歌搜 搜不到,讨论的也不多,而 python 的 web 框架基本上遇到问题都能找到答案
个人的体会是,在使用 Rails 过程中碰到的比较棘手的问题都是靠看源码解决,对自己来说这到是个好事情。
因为网络不好,经常打不开相关的网站。 比如下载这个: https://rubyinstaller.org/downloads/ ,200MB 要花 4 小时。
个人的体会是,在使用 Rails 过程中碰到的比较棘手的问题都是靠看源码解决,对自己来说这到是个好事情。
不错是好事,但是对于初学者不是说不想去看源码,而是自身的水平还不够,这就比较尴尬
Rails 文档算非常好的了,Ruby 的源码我至今也没看过也不影响开发。
web 开发,尤其是全栈开发本身知识点比较杂才是劝退新手的主要原因。python 还能干别的,ruby 不做 web 没得做
https://news.ycombinator.com/item?id=21138422 在 Y Combinator 估值前 10 的公司裡面有 6 家使用 Ruby
主要是生态,特别是高校生态,一些高校老师和学生或多或少会接触了解到 python,进而促进了 python 在研究领域生态的积累,其实 python 写 web 比不上 ruby,python 主要是生态,什么都能搞一点,python 生态的人员背景很广泛,涉及科研、运维、安全、web 的各个方面,这也是 python 的库广泛的原因。
我们公司的新项目我一直想要用 rails 去做,省事太多了,但是后来考虑到后续人员的招聘问题,无奈放弃。不想给未来的自己和公司挖这么大坑。
个人项目或者创业项目那倒是可以。
很显然大家都没有认识到 ruby 不如 python 流行的真正原因。
最真实的原因是早期 ruby 对 windows 的安装实在太不友好了 (现在 windows 有 wsl, 终于没这个问题了,不过也晚了), 至今本论坛的 wiki 上还写着不建议用 windows .
windows 系统占据的市场比例大概是 90%, 可以想象,python 爆发性发展的时候,效率是 100%, 而 ruby 爆发性发展的时候,效率是 python 的 10%. 几年下来,用户量的差距已经不可想象。
一个语言想要流行起来,一定要为新手考虑,尊重新入门的成员,而不是高傲的说,建议买 mac 或者重装成 linux 系统,这样必然会被大量的用户所抛弃。
我 Python 感觉很 dirty,但是就是让你那么用,你还没有办法,在定义类的实例方法中,居然要传入第一个方法参数 self 来占位,在方法的 context 中难道不能知道 this 吗?感觉 Python 中的面向对象是个假的
ruby 不管什么问题,我觉得有两点是其他语言比不了的,第一是友好,没有之一,第二是 rails 这个 web 框架,很多人说这个难,我觉得不是 rails 难,而是 rails 太成熟了,包含的东西就多,市面大部分流行的其他 web 框架都是学 rails 过来的,多少年了,可以说没有一个到达 rails 的成熟度,你拿 rails 开发 web 项目,快,而且安全