任何实物都不是完美的, 这是一个不变的真理, RubyAndRails 也受此约束。
没有最好,只有更好, 要想更好,首先需要知道哪里不好, 然后进行补足。
所以请大家说说对 Ruby 和 Rails 的不满。
比如, ruby 中,函数参数没有类型,无法简单地实现静态代码检查。
#11 楼 @sunzheng91 我不支持这个说法,用 method_missing、动态添加方法都可以,但不要用 class_eval 调用一段字符串来凭空生成类,这个看得真的好恶心的。
当时我们做 java 项目时,更倾向于使用 iBATIS 而不是 hibernate,就因为 iBATIS 一简单,二 sql 可控。 现在 rails 中 AR 抽象级别也挺高也,有类似 hibernate 的担心。
Json 式的 Hash 在 DSL 时有用,让语法更像英语而不是 ruby 代码,坏处就是和已有的 Symbol 太像了。
让时间检验吧,像 size count length 这样的冗余一直就有了……
@hhuai 用 class_eval 的目的主要是为了性能考虑的,sinatra 可以不怎么考虑性能,所以它的源码里貌似没怎么用 eval 形式(我不是很确定,但确定 sinatra 里有些地方是用 define_method 这样阅读性比较好的方式),但 rails 就必须考虑性能了。
class_eval
和 instance_eval
的命名有些搞-前者 eval 在 class 上,所以是给所有的 instance 用。后者 eval 在当前 class instance 上,所以只有当前这个 class 可以用。
最讨厌 end end end end end end
应该像 python 用 indentaion 来作判断,感觉清爽很多。
Ruby 不能支持 pattern matching. Haskel, ML 语言都有这个功能,连新的语言 Scala 也有。要是对 pattern matching 不熟可以看看。 http://sites.google.com/site/steveyegge2/choosing-languages
#29 楼 @zhang_victor 其实关于end
是各有所爱了。和 Python 的强制缩进一样。有人很喜欢,有人就挺反感。我对 python 的强制缩进就不感冒。对 end 反而挺喜欢。呵呵
目前我对 Ruby 最满意的地方是 DSL 语言,基本上,我们配置好基础的东西,剩余的可以完全交给业务人员,比如表单、调查、后台管理的数据呈现。
对 Ruby 最不满意的则是与科学相关的这块,这几天很郁闷,前面几个步骤都很顺利,一写到跟科学计算相关的这块,翻 Ruby 库,全是三年前更新的,再翻 python 库,则是三个月前更新的,可替代的选择还很少,用的人与案例也基本找不到。比如这个库:igraph
我原本的想法是,让 Ruby 专注于 web 处理,然后 R 专注于数据处理,但是现在一翻,发现 python 太成熟了,我们用的几个大库,社会网络分析、认知神经,Python 库都很活跃,这几个月几本新教材也出版了。
是不是有必要全部整合到 python 中去?
I did hear that Strobe (company who was hiring Carl Lerche, Yehuda Katz and contracted Jose Valim) used to have an ActionPack based, mini stack but it was never released and apparently only Rails core members really knew what was going on there.
这是真的吗?
#42 楼 @fsword stanford open classroom http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=WebApplications