RoR 难道没有任何缺点么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yhmni
V2EX    问与答

RoR 难道没有任何缺点么?

  •  1
     
  •   yhmni 2014-08-16 22:17:59 +08:00 11725 次点击
    这是一个创建于 4082 天前的主题,其中的信息可能已经有所发展或是发生改变。
    经常看到的说法就是“Web 开发,RoR 一档,其他的另一档”。

    lz没有使用过该框架,难道说 RoR 没有任何缺点么?

    为什么 RoR 没有大面积普及?以及BAT等巨头为什么不将python,php等web开发迁移到用 ruby ?
    62 条回复    2014-08-19 02:03:33 +08:00
    redvoilin
        1
    redvoilin  
       2014-08-16 22:40:21 +08:00
    现在国内使用ROR的不是越来越多了嘛,大公司迁移技术不是那么简单的,现有的技术用的好好的,人员也是以现有的技术配备的,哪能说换就换,但我知道大公司有些项目已经开始用ROR了
    pepsin
        2
    pepsin  
       2014-08-16 22:43:18 +08:00
    有很大缺点,不适用于后期业务规模大,业务组件化的项目。

    但是99%的项目根本到不了那个程度,所以初创公司爱用,一个功能用 Rails 真的就是无脑堆叠,啪啪啪就出来了。
    O21
        3
    O21  
       2014-08-16 22:45:40 +08:00
    我觉得python web开发也不错。
    redvoilin
        4
    redvoilin  
       2014-08-16 23:01:32 +08:00
    @pepsin 业务规模大的为什么不适合
    yhmni
        5
    yhmni  
    OP
       2014-08-16 23:05:40 +08:00
    @pepsin 可我感觉除非创始人hold的住ruby或本身就是RoR爱好者,不然选php或java的多啊?

    我一朋友有C开发经验,看了php语法1周,就拿discuz改改逻辑,套个css模板就上线创业了,之后根据需求小修小改,招了一两个全职php,活的很滋润啊。而用 RoR 的我感觉都是立志做大项目的?之前看了不少评论各种称赞 migration 好啊(开发到现在都没折腾过数据库的版本控制,惭愧。。)与PHP这种设计之处就是为了写Home Page的语言相比,RoR的设计应该不会应付不了大规模吧。
    yhmni
        6
    yhmni  
    OP
       2014-08-16 23:11:54 +08:00
    @redvoilin 也就是后期BAT大面积RoR的节奏?
    redvoilin
        7
    redvoilin  
       2014-08-16 23:12:33 +08:00
    @yhmni 有两方面的原因吧:一是rails的入门包括开发环境的搭建比php做web开发还是要麻烦一些的,ruby和rails的开发资料以英文为主(特别是最新的资料),这点就挡掉了不少人吧;二是目前国内的ruby开发人员相比php、java这些还是少的多
    redvoilin
        8
    redvoilin  
       2014-08-16 23:14:02 +08:00
    @yhmni 目前看不到这个趋势
    yhmni
        9
    yhmni  
    OP
       2014-08-16 23:22:13 +08:00
    @redvoilin 所以说除非ruby入侵大学校园科目,不然普及率还是那样啊(都是出于兴趣学习的,但毕竟这种对于大环境还是小数目)。像现在大学C与Java必修,我看微博说PHP都有必修课了。。汗,而且有C或Java经验的非web程序员转web方向也是首选php或java吧?
    yhmni
        10
    yhmni  
    OP
       2014-08-16 23:25:25 +08:00
    讨论 RoR 的我自己给弄歪楼了。。。那就是说除去开发人员与中文资料这些客观因素,RoR在技术架构上基本上没有缺点了?(我一直觉得任何技术都是有利有弊的吧。。)
    redvoilin
        11
    redvoilin  
       2014-08-16 23:25:55 +08:00
    @yhmni 大部分大学生都是用的windows,迷信微软的技术,很多linux都没有接触过,更别提ruby了,我是用了ruby后觉得非常好
    redvoilin
        12
    redvoilin  
       2014-08-16 23:29:43 +08:00
    @yhmni 技术架构?你是说mvc?我没有觉得有明显的缺点,以前ror最让人诟病的应该是性能吧,现在随着ruby的更新升级和ror本身的改进,已经好多了,其实对于大部分项目来说,你按照rails那套规范来开发,性能不错的
    fwee
        13
    fwee  
       2014-08-16 23:49:19 +08:00
    首先,缺点得对比看,目前没有比ROR好的框架,那么就很难看出ROR的缺点。另外大公司迁移到Rails几乎不可能,首先大公司这么有钱有人他就根本没迁移的必要。没有必要当然就不迁移了。
    qinix
        14
    qinix  
       2014-08-16 23:49:46 +08:00
    有!用户量大了之后性能捉鸡,所以 Twitter 逐渐从 RoR 过渡到了 Scala,好多互联网产品也都是做大了之后迁移到 Go、NodeJS 等。但 Twitter 仍有部分 RoR。RoR 胜在开发效率高,创业初期尽快做出原型最重要
    redvoilin
        15
    redvoilin  
       2014-08-16 23:53:24 +08:00
    @qinix 并发量大了也要看到了什么级别,世界上能达到Twitter这样的也没几个,而且大型网站看架构,其实什么语言不重要,但服务器数量确实不一样
    leiz
        16
    leiz  
       2014-08-17 00:02:47 +08:00
    看情况吧,根据业务和需要选择工具,而不是一套工具用到老。ROR对于开场是个很不错的选择。
    forghed
        17
    forghed  
       2014-08-17 00:38:53 +08:00
    @yhmni 被诟病最多的就是性能,RoR(rails)只是一个full stack web 开发框架,不是银弹,哪个框架都是有使用场景的,rails就是为快速优雅开发web应用而生,是一个web开发最佳实践的集合,中小型站最合适。国内的暴走漫画、蝉游记都是rails开发的,国外抽象出rails的basecamp等,这些站的访问量也不小。巨头级的站点就不是靠一个框架能搞定的了,阿里旗下也有用rails.

    可以看看一年前的这篇文章[Ruby社区应该去Rails化了](http://robbinfan.com/blog/40/ruby-off-rails),作者自己也说有点标题党。

    对你歪掉的部分很感兴趣,他做什么行业改个论坛就能活的不错了?
    xuwenmang
        18
    xuwenmang  
       2014-08-17 00:39:44 +08:00
    Twitter的博客用的drupal


    缺点就是语法风格很容易被模仿,失去了新鲜感。
    yhmni
        19
    yhmni  
    OP
       2014-08-17 01:21:41 +08:00
    @forghed 谢谢点评。东西比较擦边球,没经他同意我就不透漏啦
    msg7086
        20
    msg7086  
       2014-08-17 06:32:49 +08:00   2
    改个论坛这个不叫开发,叫二次开发……让你从头写一个discuz,用ror和php才能看出他们之间的区别。

    rails最大的问题在于消耗系统资源多。不做缓存的情况下php消耗的资源比ror小很多,做了良好的缓存设计以后ror才能和php对碰。

    国外普及ror主要是因为程序员成本远大于服务器成本。一个程序员一个月工资,少算算也要6000刀,加上一些福利什么的少说也要上万。一台服务器才多少钱,一个月花1000刀可以买一堆了。把一堆gem堆在一起搭积木起来就可以跑了,当然首选ror了。

    国内就相反了,找一堆3000块钱的程序员撸php就好了。
    ideaa
        21
    ideaa  
       2014-08-17 06:50:15 +08:00 via Android
    楼上真像帝
    pepsin
        22
    pepsin  
       2014-08-17 07:57:26 +08:00
    @redvoilin 业务规模大需要拆分组件,登陆比如一个服务,评分一个服务,Rails 做这块还是很费劲的。整个部署上线调试分支,全部很蛋疼。Rails 就适用于那种核心开发人员 20 来个的项目,再多就麻烦了。

    至于性能,其实问题不是很大的。哪有搞 Web 的指望某个框架去缓解实时大并发的。
    ddzz
        23
    ddzz  
       2014-08-17 10:43:05 +08:00   1
    参见我的帖子:

    Ruby是一场营销 http://www.v2ex.com/t/127950
    Rails是邪教 http://www.v2ex.com/t/126982
    ddzz
        24
    ddzz  
       2014-08-17 10:48:43 +08:00
    Ruby的生态体系非常适合“营销”,让用户爽,用户自然愿意掏钱。《Ruby元编程》需要买好多书去读,《Rspec测试》需要买一系列书去读,包括各种Rails的收费视频教程。所以Ruby体系有很多人吹捧,这是一场营销盛宴,确实别的语言都达不到这个效果,因为别的语言没有像Ruby这样让用户爽。

    但是,学开发语言、框架技术的终极目的不是爽,而是用它作为生产工具,这方面Ruby就不行了,好多学Ruby/Rails的,各种书读了一大摞,“元编程”、“测试驱动开发”如数家珍,但真正用Rails做出来的项目屈指可数
    ddzz
        25
    ddzz  
       2014-08-17 10:49:51 +08:00
    那些叫嚣“RoR 一档,其他的另一档”的只是他们良好的自我感觉,找不到工作,把自己抬到再高的档也是孤芳自赏
    redvoilin
        26
    redvoilin  
       2014-08-17 11:08:43 +08:00
    @ddzz 如果说ruby是自我营销出来的,那哪个语言不是营销出来的,php不是吗?java、c#不是吗?不都是有人在推的。还有你说ruby让开发人员爽,这也有错?那你用汇编来写web好了,肯定让你不爽的
    ddzz
        27
    ddzz  
       2014-08-17 11:21:12 +08:00
    @redvoilin 让你玩起来很爽,但“活”都是脏的,rails不适合干活。我说的那个营销,是出书卖门票,营销语言周边的东西盈利,而不是营销语言本身
    dongbeta
        28
    dongbeta  
       2014-08-17 11:21:47 +08:00
    以上没有熟练使用的人就不要评论了。
    G2bN4dbX9J3ncp0r
        29
    G2bN4dbX9J3ncp0r  
       2014-08-17 11:35:36 +08:00
    @ddzz
    @msg7086

    呵呵
    6IbA2bj5ip3tK49j
        30
    6IbA2bj5ip3tK49j  
       2014-08-17 11:37:31 +08:00
    @redvoilin 你说错了,现在大学生都流行无脑黑微软的技术。
    victor
        31
    victor  
       2014-08-17 11:56:09 +08:00
    @dongbeta +1 赞同
    fwee
        32
    fwee  
       2014-08-17 12:02:28 +08:00
    @ddzz 这位的智商和技术捉急,敏捷是营销,ruby和rails不是,我猜你根本不了解ruby和rails,无论是技术上还是社区文化上
    fwee
        33
    fwee  
       2014-08-17 12:06:06 +08:00
    我觉得很多人估计连hello world都没写出来过就开始装B指点江山,还头头是道的教育别人,这些人真是国内编程界一大害
    ddzz
        34
    ddzz  
       2014-08-17 12:11:37 +08:00
    @fwee 妄猜是SB
    ddzz
        35
    ddzz  
       2014-08-17 12:12:46 +08:00
    正因为我对Rails有足够的了解,并且用它实践过,才知道它的华而不实。那信仰Rails的孩儿,你还在路上
    redvoilin
        36
    redvoilin  
       2014-08-17 12:14:10 +08:00
    @ddzz 为什么我用rails觉得很好呢,我也不靠它卖书什么的
    ddzz
        37
    ddzz  
       2014-08-17 12:17:21 +08:00
    @redvoilin 玩的很high而已,你用它做出了什么?拿出来看看。

    Ruby/Rails让人着迷,社区声音喊得很响(着迷导致疯狂),但鲜有作品拿出来,鲜有工作机会。

    不能给你带来实际收益,而让你着迷甘心情愿花费大量时间精力的,就是邪教
    redvoilin
        38
    redvoilin  
       2014-08-17 12:20:54 +08:00
    @ddzz 用rails做出来的项目还少?就说一个好了,你身为程序员,不会连github也不知道吧
    Los
        39
    Los  
       2014-08-17 12:24:01 +08:00
    @ddzz #35 对Rails有足够的了解,并且用它实践过?
    呵呵,可以不装B吗?
    ddzz
        40
    ddzz  
       2014-08-17 12:28:44 +08:00
    @redvoilin 能跟php比吗?facebook、腾讯、百度、新浪、维基百科。看看国内的招聘PHP是rails的多少倍,在北上广,php的平均工资比rails只多不少
    ddzz
        41
    ddzz  
       2014-08-17 12:29:10 +08:00
    @Los 呵呵你买了个表,我去年买了个登山包,超耐磨
    redvoilin
        42
    redvoilin  
       2014-08-17 12:32:36 +08:00
    @ddzz 看来你是卖php书的,互联网用来开发web应用的,ruby、python、c#、java都没有php多,看来都是邪教啊
    ddzz
        43
    ddzz  
       2014-08-17 12:34:10 +08:00
    @redvoilin 别拉python、c#、java下水,人家不稀罕跟ruby为伍
    redvoilin
        44
    redvoilin  
       2014-08-17 12:38:52 +08:00
    @ddzz 你的逻辑很混乱,最好还是不要开发程序了,不是你说的吗,“能跟php比吗?facebook、腾讯、百度、新浪、维基百科。看看国内的招聘PHP是rails的多少倍,在北上广,php的平均工资比rails只多不少”,没见你讨论具体的技术,只是用招聘的数量来判断
    ddzz
        45
    ddzz  
       2014-08-17 12:44:06 +08:00
    @redvoilin 找不到工作,什么技术都是白扯,对于Rails的技术,我已经讨论了,不想过多讨论了,Rails的有些思想可取,学学还是可以的,但别沉迷。

    Rails是武术,处处有套路,江湖上到处流传着它的传说。php是散打,简单实用,如果你跟人打过架,就知道武术有多坑爹了。当然武术的传说一如既往的流传
    qiukun
        46
    qiukun  
       2014-08-17 13:02:11 +08:00   1
    你们为啥和标点符号都用错的人聊天?
    wangdaimishu
        47
    wangdaimishu  
       2014-08-17 13:10:03 +08:00
    大概是国内支持 ROR 的虚拟空间少吧。
    EPr2hh6LADQWqRVH
        48
    EPr2hh6LADQWqRVH  
       2014-08-17 15:04:21 +08:00
    rails的问题不在于它哪里不好,而恰恰在于它太好了,它是如此的好以至于新手可以很容易地建立出像样的东西,它是如此的灵活以至于想要加个啥功能基本只要装个插件就行了,它是如此的优雅以至于学会Rails的魔幻语法就可以搞定Web绝大多数工作了。

    从此大家不用再思考低层次的数据库,路由,协议,基础设施,等等等等,而是专注于所谓业务逻辑。

    但不要忘了Rails只是个Web框架而已,HTTP协议不过就是个文本协议而已。
    Rails的流行和强大经常让人忘了Rails也是从实际项目中抽离出来的。
    Rails本身并没有任何问题,它的问题在于被人顶礼膜拜,在于屏蔽了大家对于Web程序的深入思考,在于架空程序员与技术细节。

    想想那些离开了IDE就不知道怎么写程序的人,想想那些没有项目模板就不知道从何下手的人,有时候工具越强大,人就越无能,错不在工具,而在于用工具的人。
    dorentus
        49
    dorentus  
       2014-08-17 15:15:53 +08:00
    @ddzz Sorry。《Ruby 元编程》是我的 ruby 入门书。别的 Ruby 书我就没买过了。(松本行弘的其他书我倒是还买过几本)。
    hitsmaxft
        50
    hitsmaxft  
       2014-08-17 16:33:13 +08:00
    从过去招聘流程中看来, 找个靠谱的 php 开发者都难, 20个里有一个像样的就不错了. 所以在国内搞 ror, 主要是资源问题..

    另外一个角度说吧, 如果培养 ruby 系的人, 相对也比较保值, 跳到其他地方也麻烦.不像 java 和 php .
    xuxu
        51
    xuxu  
       2014-08-17 16:40:20 +08:00
    RoR啊,学会只需要1天。 不知道属于哪一档?
    RCheungIT
        52
    RCheungIT  
       2014-08-17 16:42:07 +08:00   1
    缺点是: 不好找工作 - -
    toctan
        53
    toctan  
       2014-08-17 17:22:05 +08:00   2
    @ddzz 你去国外 jobs board 搜索一下 ruby, rails 和 php 看一下结果,再对比一下薪酬再叫 Rails 找不到工作,比如 GitHub jobs 和 StackOverFlow Career

    https://jobs.github.com/positions?description=php&location=
    https://jobs.github.com/positions?description=ruby&location=

    http://careers.stackoverflow.com/jobs/tag/php
    http://careers.stackoverflow.com/jobs/tag/ruby

    国内的技术社区还没跟上而已。我觉得国内营销过度的不是 Ruby 而是 Python, 因为豆瓣,V2EX, 42区等网站在国内的影响,觉得除了「我大 Python」其余语言都是渣渣的傻逼太多了。

    实在不敢相信把 puma 搞成部署工具的对 Rails 有多少实践,请举些例子说明「你对 Rails 有足够的了解,并且用它实践过」,项目经验或者技术博客,开源项目或者稍微上规模的网站都行。不然就不要乱叫你没有资格谈论的东西。
    momo5269
        55
    momo5269  
       2014-08-17 19:11:20 +08:00
    你看看推特的发展历程,ROR除非到了一定规模,其他时候基本没问题啊

    @toctan 主要是RoR在win下……国内……于是……
    xiashali
        56
    xiashali  
       2014-08-17 19:14:54 +08:00 via iPad
    名字不行:在铁轨上切割红宝石,
    不是最好的语言。
    krfantasy
        57
    krfantasy  
       2014-08-17 19:58:27 +08:00
    过气
    leiz
        58
    leiz  
       2014-08-17 21:18:04 +08:00
    --玩的很high而已,你用它做出了什么?拿出来看看。
    这个...别人没用它做出东西和这个工具本身没什么关系...至于别的项目,太懒就不举例了

    --让你玩起来很爽,但“活”都是脏的,rails不适合干活。我说的那个营销,是出书卖门票,营销语言周边的东西盈利,而不是营销语言本身
    营销好本身说明一个问题,需求旺盛。一个工具需求旺盛,说明它本身还是可取的,否则社区不会壮大,自然不会有足够的群体来让作者去营销。这个在开源世界一直是这样吧。

    --那些叫嚣“RoR 一档,其他的另一档”的只是他们良好的自我感觉,找不到工作,把自己抬到再高的档也是孤芳自赏
    国内的技术更迭一直是脱离社区和大环境的。没办法,大量的从业人员在语言上存在先天的劣势,等到大量的ruby谭浩强出现才会出现大量的ruby技术工人,这个,着急不来。当然,也有技术债务的原因存在。如果你了解行业历史的话,这个不需要解释太多。

    其实吵了这么久居然没人拿作者是日本人来说事,我觉得已经是一个很大的进步,争论有利于推广,其实。
    Ctech
        59
    Ctech  
       2014-08-17 21:56:33 +08:00
    最喜欢看语言大战了。
    ericsens
        61
    ericsens  
       2014-08-17 23:04:18 +08:00
    @leiz 比较中肯,拿nation说事那是百度贴吧
    hardywu
        62
    hardywu  
       2014-08-19 02:03:33 +08:00
    ror 唯一的不足就是和他合拍的前端框架不是 Angularjs
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4311 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 05:33 PVG 13:33 LAX 22:33 JFK 01:33
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86