用rails 三的有没有想过退回到2.3的
用rails 3的有没有想过退回到2.3的
正在用rails3的各位,你们有没有被忽悠的感觉?
以前对大胡子yehuda印象不错,特别是此君ruby/javascript双修,一度被我视作偶像。和他也见过两次面,感觉人也不错。我现在还清楚记得他一直消灭无意义的语言之争的倡导。
可是rails 3的速度实在难以忍受。3.1所谓的新特性coffeescript和scss的支持自己加上两句require也能解决了。对于chunked encoding的支持在rack和sinatra中也早就实现了。
rails所谓的社区主导其实还是几个主要开发者主导,比如现在yehuda转去做前端了,rails也要增加传说的rich client api了。
建议顺带看一下下面这篇吐糟basecamp的,创新公司也终归有一天不思进取
http://www.christianjung.com/2011/goodbye-basecamp-this-is-the-end-of-a-true-love-my-heart-is-broken/
这个时间大部分都是ruby的加载文件所花的时间,和rails性能没多少关系。当然这个会影响开发体验。
ruby1.9.2的require性能问题已经解决了:http://www.rubyinside.com/ruby-1-9-3-faster-loading-times-require-4927.html
这是冷笑话么
让你的代码更DRY和提供漂亮的API接口难道不实用?不知道你指的实用是什么。
这个时间大部分都是ruby的加载文件所花的时间,和rails性能没多少关系。当然这个会影响开发体验。
ruby1.9.2的require性能问题已经解决了:http://www.rubyinside.com/ruby-1-9-3-faster-loading-times-require-4927.html
对于新建项目来说,退已经成了一个不太容易的事情。rails(包括其他很多gems)的带病升级是一贯的优良传统,新的更新和对旧bug的修改会出现在新的版本里。
如果进3.1的话,至少这几个安全方面的改进和HTTP Streaming,Rack::Cache ,Rack::ConditionalGet.就已经值得进。
ActiveRecord3.1 对于association chain的改变,特别是has_one和belongs_to,更像是给3.2版本作的准备工作。但是现在肯定有一批依赖于association chain的东西会被影响,能够马上想到的一个例子比如will_paginate.
mountable的engine在实用上我用得很不舒服,但是在做了一些hack工作之后还是能够出来可以接受的效果。只是在mount之后必须要用main_app.xxx_path这样的方式来找route helper我个人觉得很多余;另外在engine内调用route也很难受,因为不可能知道自己会被以什么别名来mount。
sprockets作为一个第三方的包被作为杀手级应用引用到rails3.1里,结果sprockets2的最新一个版本2.0.0.beta.11的一个看起来很有道理的改变会让rails-3.1.0.rc4里的rake assets:precompile直接不工作。
这个改变是把一个getter里原来直接返回一个数组的方式改成返回数组的dup:
2.0.0.beta.10里的
2.0.0.beta.11里的
恶啊~总之~现在类似的情况还有一些~
但是不管怎么说,2.3和3.1之间还有一个3.0 .我想说,所谓慢通常并不是一个框架单方面的问题,框架通常是把原有的问题放大。当然,这事具体问题具体分析,各家有各家的经。
只用最新的,不回更旧的,
PS:
LZ其实一直发rails 不好用的信息,,可能与你现在推广的啥有关的,只是个人想法...
PSPS
我觉得rails很好,所以一直用,就这么简单,我自认为自己没能力改变rails 的速度什么的,所以,只能看大牛们努力了
忽悠倒没觉得,rails3带来的新特性让人一震,性能的话,应该还在调优,期待后续版本
正在用rails3的各位,你们有没有被忽悠的感觉?
以前对大胡子yehuda印象不错,特别是此君ruby/javascript双修,一度被我视作偶像。和他也见过两次面,感觉人也不错。我现在还清楚记得他一直消灭无意义的语言之争的倡导。
可是rails 3的速度实在难以忍受。3.1所谓的新特性coffeescript和scss的支持自己加上两句require也能解决了。对于chunked encoding的支持在rack和sinatra中也早就实现了。
rails所谓的社区主导其实还是几个主要开发者主导,比如现在yehuda转去做前端了,rails也要增加传说的rich client api了。
建议顺带看一下下面这篇吐糟basecamp的,创新公司也终归有一天不思进取
http://www.christianjung.com/2011/goodbye-basecamp-this-is-the-end-of-a-true-love-my-heart-is-broken/
10 楼
hellolaojiang
2011-06-27
到底好不好,慢不慢,你还是自己去实践实践吧。别看了几篇BLOG就说这也不好,那也不行。天天还有人嚷着JAVA要死了呢,你看人家还不是活的好好的。我没上过3.1,但从我的小站在3.X上运行的情况来看,3.X并没有你想象的那么慢。
11 楼
易卡螺丝君
2011-06-27
花花知道在鸡眼网发贴 是多么徒劳的事了吧
12 楼
orcl_zhang
2011-06-27
rails很多地方做的很不好。比如关于form,routes等,太多的语法糖,同一个东西写法太多,过于花哨,不实用。带来的是学习上的成本提高,而没有任何一点好处。
真的慢了好多。不过还没开始用r3
http://blog.tstmedia.com/news_article/show/86942
真的慢了好多。不过还没开始用r3
http://blog.tstmedia.com/news_article/show/86942
引用
A simple reproducible benchmark shows ActiveRecord 3.0.7 to be 1.43 times slower than ActiveRecord 2.3.2.
13 楼
rainchen
2011-06-27
的确是慢了,刚好有个项目从2.3.9升级到3.0.5的,简单对比下db和routes的:
在development上rails3比2慢了将近一倍
但比较让人满意的是production时区别不大
但在做开发时随便跑个rails、rake命令都要30-40秒以上实在影响情绪
肯定是不会退回去的,rails3好的地方更多,只是希望再后面的版本性能能提上来。
另外个人不大喜欢coffeescript这种东西。
for 2.3.9: development: time rake db:version real 0m24.219s user 0m10.152s sys 0m2.971s time rake routes real 0m19.710s user 0m10.089s sys 0m2.713s production: time rake db:version RAILS_ENV=production real 0m20.110s user 0m12.217s sys 0m2.592s time rake routes RAILS_ENV=production real 0m19.384s user 0m12.109s sys 0m2.600s for 3.0.5: development: time rake db:version real 0m41.514s user 0m26.641s sys 0m3.403s time rake routes real 0m34.094s user 0m27.760s sys 0m3.100s production: time rake db:version RAILS_ENV=production real 0m26.630s user 0m20.295s sys 0m2.643s time rake routes RAILS_ENV=production real 0m24.340s user 0m21.401s sys 0m2.547s
在development上rails3比2慢了将近一倍
但比较让人满意的是production时区别不大
但在做开发时随便跑个rails、rake命令都要30-40秒以上实在影响情绪
肯定是不会退回去的,rails3好的地方更多,只是希望再后面的版本性能能提上来。
另外个人不大喜欢coffeescript这种东西。
14 楼
up2u0609
2011-06-27
R3.1上,coffeescript和scss这两个变化我个人情感上很喜欢,但是目前是项目里还基本忽视,类似的锦上添花的变化每次都有一些。
我觉得ActiveRecord/association,engine和route的变化比较值得关注。
只是一些方法变化太大,主要还有一些明显的bug,让人觉得很不舒服。
我觉得ActiveRecord/association,engine和route的变化比较值得关注。
只是一些方法变化太大,主要还有一些明显的bug,让人觉得很不舒服。
15 楼
t0uch
2011-06-27
3.1 coffee这东西把gem去掉就ok了,generate的时候就不会生成有关coffee的东西
16 楼
Hooopo
2011-06-27
从rails2.3到3.1,我觉得很多地方越来越好。
易用性方面:
解耦合方面:
安全方面:
XSS
ActiveModel::SecurePassword
Rack::SSL
性能方面:
还有就是修复若干bug
当然目前各种测试表明,rails3的性能确实不如rails2.3。据说rails3.2要优化性能和内存使用情况(好像3.0的时候就提过..)。
我觉得从框架本身上提升rails性能空间有限,rack就是rails性能的极限,但是rack/sinatra的性能和nodejs的框架比起来还差得远。
易用性方面:
引用
Bundler
ActiveRecord 的新 Query API
ActiveRecord 的新 Validation API
Block Helper
UJS
新的 Routing API
新的 ActionMailer
Rails console默认输出SQL query log
Custom ActiveRecord Attribute Serialization
ActiveRecord 的新 Query API
ActiveRecord 的新 Validation API
Block Helper
UJS
新的 Routing API
新的 ActionMailer
Rails console默认输出SQL query log
Custom ActiveRecord Attribute Serialization
解耦合方面:
引用
Mountable Engines
Template Inheritance
ActiveModel
Template Inheritance
ActiveModel
安全方面:
引用
XSS
ActiveModel::SecurePassword
Rack::SSL
性能方面:
引用
HTTP Streaming
SQL Prepared statements
Rack::Cache
ActiveRecord Identity Map
SQL Prepared statements
Rack::Cache
ActiveRecord Identity Map
还有就是修复若干bug
当然目前各种测试表明,rails3的性能确实不如rails2.3。据说rails3.2要优化性能和内存使用情况(好像3.0的时候就提过..)。
我觉得从框架本身上提升rails性能空间有限,rack就是rails性能的极限,但是rack/sinatra的性能和nodejs的框架比起来还差得远。
17 楼
Hooopo
2011-06-27
rainchen 写道
的确是慢了,刚好有个项目从2.3.9升级到3.0.5的,简单对比下db和routes的:
在development上rails3比2慢了将近一倍
但比较让人满意的是production时区别不大
但在做开发时随便跑个rails、rake命令都要30-40秒以上实在影响情绪
肯定是不会退回去的,rails3好的地方更多,只是希望再后面的版本性能能提上来。
另外个人不大喜欢coffeescript这种东西。
for 2.3.9: development: time rake db:version real 0m24.219s user 0m10.152s sys 0m2.971s time rake routes real 0m19.710s user 0m10.089s sys 0m2.713s production: time rake db:version RAILS_ENV=production real 0m20.110s user 0m12.217s sys 0m2.592s time rake routes RAILS_ENV=production real 0m19.384s user 0m12.109s sys 0m2.600s for 3.0.5: development: time rake db:version real 0m41.514s user 0m26.641s sys 0m3.403s time rake routes real 0m34.094s user 0m27.760s sys 0m3.100s production: time rake db:version RAILS_ENV=production real 0m26.630s user 0m20.295s sys 0m2.643s time rake routes RAILS_ENV=production real 0m24.340s user 0m21.401s sys 0m2.547s
在development上rails3比2慢了将近一倍
但比较让人满意的是production时区别不大
但在做开发时随便跑个rails、rake命令都要30-40秒以上实在影响情绪
肯定是不会退回去的,rails3好的地方更多,只是希望再后面的版本性能能提上来。
另外个人不大喜欢coffeescript这种东西。
这个时间大部分都是ruby的加载文件所花的时间,和rails性能没多少关系。当然这个会影响开发体验。
ruby1.9.2的require性能问题已经解决了:http://www.rubyinside.com/ruby-1-9-3-faster-loading-times-require-4927.html
18 楼
Hooopo
2011-06-27
wenyiyun 写道
yehuda的胡子还嫩着呢,我猜他的计算机功底是一坨狗屎,纵然他又搞JS又搞html。
这是冷笑话么
19 楼
richyzhang
2011-06-27
以我的经历来说,Rails3.0看了下,我觉得内部结构优化的不错,但没有任何让我换版本的动力。毕竟jquery早有插件可以支持,ActiveRecord我也没需求换成其他的,反而要连带命令变更、接口变更等的麻烦,于是继续用Rails 2.3.
但是,3.1的出现,Rails让人提神的东西又出现了。scss虽然本来也就存在,但和rails框架内的结合还是3.1做的好,asset变成头等公民的意义重大。coffeescript值不值两说,但反正可以直接在里面写js,Rails3.1为此提供了一个良好的什么代码放在什么位置的惯例和框架,这是很棒的。同样在view层面,还支持了view模板的继承,终于开始有一个框架把写OO代码常用的思想运用到view层去了,这是了不起的创举。动手写网页的人都明白,写web应用最费时间的就是view层。另外几个层面老实说已经解决的算不错了,但view层基本被动的很少。Rails3.1在这方面做出了突破。
说道性能,Rails3主要搭配ruby1.9了,不知道1.9@3.1 vs 1.8@2.3性能如何。无论如何,这一点确实挺让人郁闷的,从各种言论来看,rails3的性能提升确实不佳。
但是,提神的东西超过让人郁闷的东西,老的项目我是不想折腾,继续2.3。新的项目那肯定直接上3.1了。
但是,3.1的出现,Rails让人提神的东西又出现了。scss虽然本来也就存在,但和rails框架内的结合还是3.1做的好,asset变成头等公民的意义重大。coffeescript值不值两说,但反正可以直接在里面写js,Rails3.1为此提供了一个良好的什么代码放在什么位置的惯例和框架,这是很棒的。同样在view层面,还支持了view模板的继承,终于开始有一个框架把写OO代码常用的思想运用到view层去了,这是了不起的创举。动手写网页的人都明白,写web应用最费时间的就是view层。另外几个层面老实说已经解决的算不错了,但view层基本被动的很少。Rails3.1在这方面做出了突破。
说道性能,Rails3主要搭配ruby1.9了,不知道1.9@3.1 vs 1.8@2.3性能如何。无论如何,这一点确实挺让人郁闷的,从各种言论来看,rails3的性能提升确实不佳。
但是,提神的东西超过让人郁闷的东西,老的项目我是不想折腾,继续2.3。新的项目那肯定直接上3.1了。
20 楼
rainchen
2011-06-27
前面跑rails3的就是用ruby 1.9.2
ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.7.0
关于ruby 1.9.3提速的(http://rhnh.net/2011/05/28/speeding-up-rails-startup-time)之前试过,部分gem 不兼容,project跑不起来没办法对比
btw,有了rvm,换ruby版本很轻松
ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.7.0
关于ruby 1.9.3提速的(http://rhnh.net/2011/05/28/speeding-up-rails-startup-time)之前试过,部分gem 不兼容,project跑不起来没办法对比
btw,有了rvm,换ruby版本很轻松
21 楼
Hooopo
2011-06-27
orcl_zhang 写道
rails很多地方做的很不好。比如关于form,routes等,太多的语法糖,同一个东西写法太多,过于花哨,不实用。带来的是学习上的成本提高,而没有任何一点好处。
让你的代码更DRY和提供漂亮的API接口难道不实用?不知道你指的实用是什么。
22 楼
richyzhang
2011-06-27
Rails的学习曲线是很高,而且实际上用rails能节省的开发时间和对web的了解成正比。Web知识丰富的学起来快用起来也觉得自然,否则就觉得学起来成本太高了。
Rails的开发效率很高,但是别指望一个新手可以很快上手。
Rails的开发效率很高,但是别指望一个新手可以很快上手。
23 楼
t0uch
2011-06-27
每次rails新版本总是有很多让人兴奋的东西出现。用上了rails3从来没有想过rails2。rails2到3是这样,这次的3.1也一样。有时候,很多东西比性能重要。
24 楼
up2u0609
2011-06-28
Hooopo 写道
rainchen 写道
的确是慢了,刚好有个项目从2.3.9升级到3.0.5的,简单对比下db和routes的:
在development上rails3比2慢了将近一倍
但比较让人满意的是production时区别不大
但在做开发时随便跑个rails、rake命令都要30-40秒以上实在影响情绪
肯定是不会退回去的,rails3好的地方更多,只是希望再后面的版本性能能提上来。
另外个人不大喜欢coffeescript这种东西。
for 2.3.9: development: time rake db:version real 0m24.219s user 0m10.152s sys 0m2.971s time rake routes real 0m19.710s user 0m10.089s sys 0m2.713s production: time rake db:version RAILS_ENV=production real 0m20.110s user 0m12.217s sys 0m2.592s time rake routes RAILS_ENV=production real 0m19.384s user 0m12.109s sys 0m2.600s for 3.0.5: development: time rake db:version real 0m41.514s user 0m26.641s sys 0m3.403s time rake routes real 0m34.094s user 0m27.760s sys 0m3.100s production: time rake db:version RAILS_ENV=production real 0m26.630s user 0m20.295s sys 0m2.643s time rake routes RAILS_ENV=production real 0m24.340s user 0m21.401s sys 0m2.547s
在development上rails3比2慢了将近一倍
但比较让人满意的是production时区别不大
但在做开发时随便跑个rails、rake命令都要30-40秒以上实在影响情绪
肯定是不会退回去的,rails3好的地方更多,只是希望再后面的版本性能能提上来。
另外个人不大喜欢coffeescript这种东西。
这个时间大部分都是ruby的加载文件所花的时间,和rails性能没多少关系。当然这个会影响开发体验。
ruby1.9.2的require性能问题已经解决了:http://www.rubyinside.com/ruby-1-9-3-faster-loading-times-require-4927.html
对于新建项目来说,退已经成了一个不太容易的事情。rails(包括其他很多gems)的带病升级是一贯的优良传统,新的更新和对旧bug的修改会出现在新的版本里。
如果进3.1的话,至少这几个安全方面的改进和HTTP Streaming,Rack::Cache ,Rack::ConditionalGet.就已经值得进。
ActiveRecord3.1 对于association chain的改变,特别是has_one和belongs_to,更像是给3.2版本作的准备工作。但是现在肯定有一批依赖于association chain的东西会被影响,能够马上想到的一个例子比如will_paginate.
mountable的engine在实用上我用得很不舒服,但是在做了一些hack工作之后还是能够出来可以接受的效果。只是在mount之后必须要用main_app.xxx_path这样的方式来找route helper我个人觉得很多余;另外在engine内调用route也很难受,因为不可能知道自己会被以什么别名来mount。
sprockets作为一个第三方的包被作为杀手级应用引用到rails3.1里,结果sprockets2的最新一个版本2.0.0.beta.11的一个看起来很有道理的改变会让rails-3.1.0.rc4里的rake assets:precompile直接不工作。
这个改变是把一个getter里原来直接返回一个数组的方式改成返回数组的dup:
2.0.0.beta.10里的
def paths @trail.paths#.dup end
2.0.0.beta.11里的
def paths @trail.paths.dup end
恶啊~总之~现在类似的情况还有一些~
但是不管怎么说,2.3和3.1之间还有一个3.0 .我想说,所谓慢通常并不是一个框架单方面的问题,框架通常是把原有的问题放大。当然,这事具体问题具体分析,各家有各家的经。
25 楼
xiaojin0913
2011-06-28
PS:
LZ其实一直发rails 不好用的信息,,可能与你现在推广的啥有关的,只是个人想法...
PSPS
我觉得rails很好,所以一直用,就这么简单,我自认为自己没能力改变rails 的速度什么的,所以,只能看大牛们努力了
26 楼
zires
2011-06-28
花花公子 写道
正在用rails3的各位,你们有没有被忽悠的感觉?
忽悠倒没觉得,rails3带来的新特性让人一震,性能的话,应该还在调优,期待后续版本
27 楼
chloerei
2011-06-28
之前用脚手架测试,rails3 + ruby 1.9.2是最慢的,rails3 + ree 1.8.7 是最快的。数据丟了,感兴趣的可以测试下。
28 楼
cxh116
2011-06-28
根据RAILS3更新太快了 哎...
29 楼
山雨欲来风满楼
2011-06-28
如果在开发模式下太慢, 已经有解决方案了。
gem install rails-dev-boost
另外,我没有用active-record,自己感觉rails 3速度还可以, 在生产模式下,不过没有测试数据来证明。
gem install rails-dev-boost
另外,我没有用active-record,自己感觉rails 3速度还可以, 在生产模式下,不过没有测试数据来证明。