用了两天Rails,就开始怀念Python了

2011-07-12 16:31:29 +08:00
 27493586
1. Rails的文档和书跟Python比起来,都是渣渣,看惯了Python条理清晰的文档,我看到类似doxygen生成的东西就想关
左边那是啥? http://api.rubyonrails.org/
看看Python的。 http://flask.pocoo.org/docs/

能不用iframe嘛喂? http://www.ruby-doc.org/docs/ProgrammingRuby/
这才叫美。 http://docs.python.org/

2. logger打出来的东西居然不带行号和文件名?那和我自己print有什么区别?错误信息里也是,
undefined method `map' for #<String:0xb4a3a5c>
我自己代码里用到map的地方都删了,系统代码出错了至少应该告诉我在哪儿啊

3. Rails官方那本agile的书,一上来就咣咣咣生一堆满是magic的代码出来,也不讲清楚干啥用的。后来还是找了本Rails Tutorial从底向上走了一趟才勉强弄清楚了Rails里文件之间乱七八糟的关系。

4. 陡峭的学习曲线并没有带来多大程度上的开发效率提升,自动生成的代码在脱离了官方那几个例子之后用处也不大了,自己手写也多不了几行。
可能因为我没用到Rails的ORM。所以没有感觉到Rails的好处。自动测试啊,TDD/BDD之类的开发辅助工具倒是很强大,不过现阶段只想先上手。
回想去年这个时候自学Python,找了几本书并排着看,每本都讲得很清楚,没有任何难度就入门了,再之后学django/flask/web.py/bottle也都是轻松上手。Python党的文笔和美感就是比Ruby党的要好。而且Ruby/Rails代码有太多对效率提升没多大帮助的Magic写法了,无故加大了学习曲线。

5. 如果不是因为Python的json, u'xxx', unicode encode/decode error的话,我还用python。Python的语法是最接近数学和英语的,是我用过的这么多语言中最接近完美的一个。


结论就是,希望没用过Python的Ruby/Rails党去试试Python,你们会上瘾的。
23545 次点击
所在节点    Ruby on Rails
62 条回复
ssword
2011-09-09 17:19:19 +08:00
蛋疼。
huacnlee
2011-09-09 17:32:31 +08:00
哎,我们都看 http://rdoc.info 的,相比 Python 的文档,这个才是好的!
chloerei
2011-09-09 18:03:24 +08:00
我是从agile入门的,对风趣的语言和大留白的排版印象很好(当然有人会和我完全向左)。而且教给了我很重要的测试驱动开发。
perrywky
2011-09-09 18:05:04 +08:00
python是语言,rails是框架
你对ruby不熟,当然觉得rails很难,因为你同时要学两样东西,你当初也是先学python再学django的对吧
如果你有耐心,rails tutorial是不错的教材,对于没有ruby基础的人来说很适合
ayanamist
2011-09-09 18:08:35 +08:00
@27493586 只说第五点,你可以if isinstance(data, unicode): data = str(data)先预处理一下……unicode和str很容易区别开使用场景的。
另外python默认logging也是不打印traceback的呀,要自己加代码才行。
cngithub
2011-09-28 23:53:48 +08:00
学Ruby从Rails入手不建议。建议先学Ruby再玩Rails。用Ruby作者Matz的话来说,Rails充斥了太多猴子bug,过多的灵活性,让新手,尤其不是一路跟上来,直接接触Rails3.1的新手觉得很莫名其妙。 建议先读读Ruby的一些文档,再来看Rails。
chloerei
2011-09-29 00:04:41 +08:00
@cngithub 求Matz原话出处
cngithub
2011-09-29 00:10:08 +08:00
@chloerei 松本行弘的程序世界 里面有一章谈Ruby on Rails,Matz拿Rails开玩笑^-^

还有个八卦,Matz一直对Ruby on Rails而不是Rails on Ruby 有点小意见 ^-^

不过说真的, 一上来直接硬干Rails,强烈不推荐,会失去很多了解Ruby的美的机会。 先找一个小型的Ruby web框架也比Rails好。 比如这个:https://github.com/padrino/padrino-framework
chloerei
2011-09-29 00:35:52 +08:00
@cngithub 翻了下这本书与 Ruby on Rails 相关的第6章,牵涉 Rails 负面的就这句:

page-171

“……可是,决定 Rails 生产效率的并不仅仅是 DRY 或是 CoC,而主要是利用了 Ruby 的元编程能力,几乎可以说达到了恶性滥用的程度……可是,正是因为这样的彻底发挥才实现了 Rails 的强大功能……”

其余描述猴子补丁是针对猴子补丁的范围,而不是针对 Rails,而且 Rails 显然是一个猴子补丁的成功范例。所以说 “用Ruby作者Matz的话来说,Rails充斥了太多猴子bug” 我觉得不妥。

确实 Rails 3.1 更新了很多东西,直接上 Rails 可能会遭遇很多魔法,但是我觉得不用低估好的程序员的适应能力。Rails 的示范作用是很明显的,比如 method_missing 在单单看书或者自己写的时候,参照不到好的 api 设计,看了 ActiveRecord 的动态 find_by 方法才会了解到这个技术应该怎么用(Metaprograming Ruby 就是拿 ActiveRecord 做例子)。

Matz 疑惑为什么 Ruby 在 Rails 前面也在 page-171 找到了。
cngithub
2011-09-29 00:44:06 +08:00
@chloerei 谢谢chloerei的严谨与求证。书不在身边,借给朋友了。在我印象中,matz说猴子补丁,是与Ruby on Rails那章放在一起的。而他举的很多例子,其实还是对Rails的过于灵活有点小意见的,只是Matz为人行文较平和,所以是一个半玩笑的口吻。所以头脑中有上文那个印象。
arden
2011-09-29 00:51:28 +08:00
NodeJs现在很火~
leishao
2011-09-30 09:50:39 +08:00
语言之争永远是最精彩的
yy77
2011-10-11 13:26:15 +08:00
vven
2011-11-21 23:48:52 +08:00
花了一下午,分别看了下python和ruby的简单基础
感觉两种语言的语法比较类似,可能是先看python的关系,感觉它的语法更简洁一些
ruby的 @ 符号老让我想到存储过程....
小试了一下感觉都挺有意思的,期待继续深入
hit9
2012-10-22 22:29:01 +08:00
最近一个项目团队需要用到rails. 但是我看rb的语法看了一晚上,一直在叨叨不如 py优美.

rb太花哨了, 这么多语法糖.用起来真的好乱. 还有很不习惯那个 @ 符号. 而且rb不如py那么简单明了. 是rb太高级了还是... 真是玩不上手.
fwee
2012-10-22 23:21:19 +08:00
@hit9 无语。。你说的语法糖是哪些?反正ruby的特性基本都在很多框架中大量运用过,可以证明并不只是很甜..而且不是ruby太高级,只是你先入为主,因为我看py的lambda什么的也感觉很乱..
ledzep2
2012-10-23 10:58:26 +08:00
半年不用ruby就彻底看不懂了。 python随便谁一看就明白。 这就是优势。ruby我看除了写的程序能短两行,别的再没什么特别的优点了把
tceisk9584
2012-10-23 11:49:06 +08:00
偏向性太强了!
insub
2012-10-23 15:24:22 +08:00
以我个人感受来说,作为前端,没有C/JAVA/PHP基础,只想做一个网站而不是转行的话,python入门的学习曲线比rails高好多倍
rails基本上看一本书就够,实用性够强,做过一个例子,再看完后面的基本解释,大多想做的东西都可以自己做了,出来的东西由于rails“约定高于配置”,也不会太烂
甚至都不用学习ruby

当然要强调一下,我并非一个纯正的coder。
insub
2012-10-23 15:28:14 +08:00
相比前面好多同学的建议,没有任何基础的情况下,我反而更倾向于从rails入手而学ruby,对于培养兴趣和感觉,理解什么是写程序,非常有帮助。
其实当初因为豆瓣的影响,是先尝试着学习python来着

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/15666

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX