@
BigZ 回楼主,你的行文风格让我觉得你是比较难以说服的人,所以我在想指出一下,除了你说windows安装麻烦之外,与我所见印象中的Rails特点都有出入,除此之外就是天可怜楼主假如你还肯再去深入了解一下Rails,和一些新版本的特性,或会撤回你之前的观点让这贴不再继续下去。
不说论据可能就是觉得这是很麻烦的事,特别是自己浅显易见的东西但别人不肯花点时间去了解就去草草得出另一结论,这很多时候都会产生无力感,相信也是很多用Rails的同学不愿回应的原因
题外话,我觉得楼主博客界面设计得挺简洁,挺好看的
你的文章一开始罗列了很多你过去的经验,“rails,我07年买过一本 Agile web development with rails,这次翻出来重新看了一遍”,到这句为止还未看到和“我为什么要放弃Rails”有相关的东西。
“%w,%q这样的缩写,说明ruby的作者写过大量的代码,coding经验丰富,对php又很深的恶感”,不明白为什么会得出“说明ruby作者对php有很深的恶感"的结论
“rails的ActiveRecord 比django的orm强不少,可以随意的写get_by_xxx函数”
楼主应该是说写find_by_xxx的函数吧?
“各种生成器慢的惊人,任何一个操作都要等5-6秒”
这是在我自己mbp13寸低配上面直接生成scaffold的时间,已经同时生成了model,controller,view,test一堆东西了,我觉得这时间还可以接受。Ruby的性能是比不上其他脚本语言,但再重申一下Ruby圈子的哲学就是,快速把东西做好,等到你产品真要为那高访问量带来的性能问题烦恼的时候,你已经幸福死了。还有恶感php的Ruby作者说,Ruby2.0出来的时候,会让大家觉得性能问题不再是个问题,对这个我们还是蛮有期待的。
“约定太多,每个model都要按部就班的定义controller,每个controller,model都只能定义在单独的文件当中”
约定优于配置,貌似楼主上面几楼已经肯定了这个好处,另外我也不太了解一个文件可以多写几个model和多写几个controller有什么好处,我最近用spine,很多时候贪方便一个文件写好几个controller,我觉得维护时定位代码起来很麻烦,一个文件塞太多东西也不美观。
“rails版本维护者,已经进入魔怔,任何一个第三方包,只要他们觉得有点用,就要整合进入rails安装包中,我删除rails的时候发现,里面居然有bootstrap这样的玩意!!!
”
Rails的core team每次引入新特性,他们都有足够的理由,而绝大部分的特性经历过一段时间洗礼后,都被我们开发者认同,像引入bundle去管理gem, assets pipline管理静态文件(甚至可以包成gem方便复用), sass去写css, coffeescript写js,restful, 这些都是让我们幸福得发慌的好特性,我以前搞PHP的时候,从来不知道web开发能这么的舒服。另外Rails从没什么胡乱继承一堆东西进来,像是4.0开始就会把很多有更好取代方案的东西废弃掉。至于楼主说的bootstrap问题,我自己一路以来情况从未见有集成过bootstrap的rails版本,还希望楼主多多求证再作结论。当然我们也不会刻意说什么这写特性就比django要好多少多少的,大家哲学本来就不同,我们喜欢拥抱变化和追求更新更好的解决方案,python还要解决到底用2还是3问题:)
“第三方包都有各自的开发者,他们没有统一的协调,每个人都按照自己的想法升级版本,rails集成这样的多的包,版本管理必然是噩梦”
相反地,bundle版本管理下这不但不是噩梦,而且在你项目有了测试下,升级gem基本上不会怎样的痛,而且,DRY原则下,github众多的gem包让我们幸福得发慌...
“如此多的依赖包,会让初学者不知所措,极大的影响项目本身的推广”
这是楼主说Ruby/Rails社区是小圈子的论据吧? 楼主觉得一个初学者上手框架,学习顺序是应该先了解框架的核心特性,还是先去学一堆依赖包插件什么的? Ruby/Rails的确中文资料不多,但Rubier更喜欢一手英文资料,所以能进圈子的都是自学能力和解决问题能力比较强的人(我所见,如不同意还请噗嗤一笑),讨论氛围也是我比较喜欢的(过去java,php...),我甚至有时觉得搞一些很基础的视频教学会拉低这个圈子的水平(个人意见),小圈子很好啊,小的力量是很大的。外国呢,github库数量好像第二主流语言就是ruby吧?
“作为一个有丰富经验的django开发者,我考虑再三还是继续使用django写网站 - java web开发者,可以尝试学习使用rails - 没有任何开发经验的开发者,建议学习php,有一定经验之后根据自己兴趣选择 - python程序员,完全不需要考虑rails”
总结也是很奇怪,前文有说为什么java web可以尝试使用rails吗? 还有php,还有python...文章看不出这总结的理由啊
我没有10年开发经验,我不觉得Rails比Django好很多很多,但我也很难说出Rails有什么地方让我觉得有噩梦般的地方,最后推荐楼主看一下Rails官方的guide,希望楼主这不是钓鱼软文,不然我就浪费了写文字的时间