V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yhmni
V2EX  ›  问与答

RoR 难道没有任何缺点么?

  •  1
     
  •   yhmni · 2014-08-16 22:17:59 +08:00 · 11004 次点击
    这是一个创建于 3511 天前的主题,其中的信息可能已经有所发展或是发生改变。
    经常看到的说法就是“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
    以上没有熟练使用的人就不要评论了。
    lidashuang
        29
    lidashuang  
       2014-08-17 11:35:36 +08:00
    @ddzz
    @msg7086

    呵呵
    xgfan
        30
    xgfan  
       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   ·   我们的愿景   ·   实用小工具   ·   5193 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 09:41 · PVG 17:41 · LAX 02:41 · JFK 05:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.