V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  keakon  ›  全部回复第 36 页 / 共 53 页
回复总数  1051
1 ... 32  33  34  35  36  37  38  39  40  41 ... 53  
2011-09-12 20:14:28 +08:00
回复了 Los 创建的主题 Ruby on Rails 关于 ruby 和 rails
@chloerei

1. 有的东西我不想点明,因为我感觉你是装不知道。
就好像我说这家中国餐馆经常拿臭鸡蛋做菜,有人就会说美国的鸡蛋也是从鸡屁股里出来的一样。
你的回答甚至让我怀疑Ruby的magic就是你猜啊,猜对了就说明它是对的,猜错了说明你的想法是不切实际的。
这句话不是搞笑,我在学习Ruby时确实存在不少困惑,不是因为不懂它的语法,而是不懂为什么要这样设计。随着对它了解的深入,这些质疑让我渐渐摸到了一些规律,似乎接触到了设计者的理念,然后确信这不是我理想中的语言,仅此而已。我也知道肯定有你这种和他观念一致的人,也只有这种人才能学好Ruby。
我想你我都知道对方要表达的意思,既然不愿点破,我也不想就此问题再做回复了。

2. “盛气凌人”指的是教育我“要么就花大把时间去领悟它的好,要么就别指手划脚”的人,并不是对你说的。
我在V2EX遇到过一些这样的Rubyer,认为自己捡了块宝,所有认为Ruby不好的都是SB,能力肯定不如自己,所以没有自己这种超凡脱俗的见解。当然原话没有挑明,但字里行间透露出的语气不是来交流,而是来鄙视的。
很不巧我太过有自知之明了,我相信你也有。

3. 正如前面所说,我对Rubyer的偏见很早就有了。有个形容词我觉得很贴切,不过我觉得他人之言很难入耳,还是自省的好。
我也不掩饰对他们的好感:思维敏捷和开阔,热衷于新技术。但是他们真的不善于表达,就像Ruby一样让我困惑。好在我不是在追妹子,不需要勉强自己与其交流。

对Ruby的偏见倒是自认为没有。我考虑的是“是否适合自己”,而在“语言好不好”这方面我和你的看法是相同的。
所以我也很看不起那些没有思考过什么是自己真正想要的,就盲目去寻找一门“公认”的好语言的人,因为他们把自己看得比语言更低贱。
2011-09-12 18:55:50 +08:00
回复了 Livid 创建的主题 Diablo III Diablo 3 的 Open Beta 大概会在什么时候开始呢?
@tokki 谢谢,我等公测算了。今天下载了一天,愣是没有进度,还没进游戏就被打败了……估计公测后国内就有分流了吧。
2011-09-12 14:40:55 +08:00
回复了 Mianco 创建的主题 Python 用Python开发商业项目,选择什么框架比较便捷
@Mianco 关键在于你的需求。Django是最成熟的,但学习成本最高,当出现和需求不符时,替换底层实现的成本很高。

实际上没有必要为框架纠结,除Django外很多框架都是松散的结构,你可以任意替换组件。Python有数不清的现成的东西给你用,你只要把它们拼在一起就完事了。
2011-09-12 14:37:43 +08:00
回复了 Los 创建的主题 Ruby on Rails 关于 ruby 和 rails
@lepture 就是这样。我讨厌的语言不多,Ruby并不属于其中之一,所以我不会去刻意攻击它。
但是Ruby本身的争议很多,大家对其的误解也多,所以Rubyer大都很敏感,一看到非议就会很冲动地捍卫自己所用的语言。
我不是说Pythoner就不会这么做,但是他们会清楚地解释原因;至少不会以一种盛气凌人的姿态,告诉你要么就花大把时间去领悟它的好,要么就别指手划脚。
突然想到战色女,我的问题不是问题,一切都是男人的错。


@chloerei 以我的理解,简洁是以大家都懂的方式让其简单,简约则是为了简化,而限制了一些隐含的约束条件(例如赋予符号特殊的意义)。
顺便附字典中的解释,确实没什么区别:
简洁:简明扼要,没有多余的内容。
简约:是力求语辞简洁扼要的文体风格。其特点是简洁洗练,单纯明快,辞少意多。简约不是简单摹写,也不是简陋肤浅,而是经过提炼形成的精约简省,富有言外之意。其弊在容易流于郁而不明的晦涩。

关于JS框架,如果Rails只是单纯地引入,而不会自动生成JS代码,那就当我没说。

关于.save,让我们先抛开属性和方法的区别。假设有个函数名叫save,我把它赋值给一个变量:x = save,这会让我疑惑save是变量还是函数返回值。
你可以说动词一般用于函数名,但如果一个词既可做动词,又可做名词呢,例如answer?
你也许会换个没有歧义的名字,但这已经是在解决问题了,而不是你所说的不存在问题。
即使对你来说不存在问题,那么是否又能和我之前所说的一样,先思考为什么别人会有问题,再做定论?


@Los 以我浅薄的理解,Rails约定了一些前提,你在遵守这个前提时,除了直接体现出来的无需配置以外,其他地方也因为用到了这些隐喻,而省去了编码工作——这都建立在你必须保持一致性的前提下。

而项目的需求总是有不一样的,你可能要做移植工作,处理原来不符合Rails约定的URL、表名等,说不定还有knowlegde这种不可数名词的存在。在约定被破坏时,我不知道维持配置,以及为修复它而补充那些省去的代码需要怎样的effort。

Google搜索“约定胜于配置”,第2篇的内容囧到我了。
看上去还是到stackoverflow搜索比较好:
http://stackoverflow.com/questions/1166539/do-you-find-convention-over-configuration-good-or-bad
2011-09-12 11:56:14 +08:00
回复了 Livid 创建的主题 Diablo III Diablo 3 的 Open Beta 大概会在什么时候开始呢?
@Livid 可惜没有115下载,估计暴雪那个下载器会很慢……

@tokki 想搭车顺求个内测资格,不知道还能要到么?好奇公测什么时候开始,和内测是用相同的客户端么?
2011-09-12 11:12:15 +08:00
回复了 Mianco 创建的主题 Python 用Python开发商业项目,选择什么框架比较便捷
@Mianco 编码速度,还是维护和排错的速度,还是框架速度,还是学习速度?这些都是成本。
2011-09-12 01:13:52 +08:00
回复了 Livid 创建的主题 Diablo III Diablo 3 的 Open Beta 大概会在什么时候开始呢?
@tokki 有Mac客户端?
2011-09-11 17:51:07 +08:00
回复了 Los 创建的主题 Ruby on Rails 关于 ruby 和 rails
@Los 我会很爽快地离开,重点是有很多地方使用普通话,且我和这些人都认可普通话。

我不知道政府的禁令具体内容是什么,但如果只是在公开场合、电视台、广播电台中避免使用粤语,同时允许一部分台只为听得懂粤语的观众服务,我觉得是非常合理的,甚至是法律中早有规定的。

我记得我小时候去广州时,除了CCTV以外,所有电视台都是我听不懂的话,害得我实在没事可干。


关于约定,你所得过于抽象,而在Google里搜索“rails 约定”都是些命名规范之类的东西,而带来的好处并未提及。


@Livid,为什么Chrome下每敲一个字符,输入框就会增高一点?查了下源码可能是这个引起的:

<textarea class="mll" name="content" id="reply_content" onkeyup="c();" onpropertychange="this.style.height=this.scrollHeight+'px';" oninput="this.style.height=this.scrollHeight+'px';"></textarea>

scrollHeight要比style.height多6px,因为存在3px的padding。
2011-09-11 16:49:09 +08:00
回复了 krazy 创建的主题 程序员 怎么学算法比较好?
@krazy 算法很有必要用C来写,因为在表达底层数据结构时更有优势,而且测试性能时也不会因为语言的因素受到影响。
2011-09-11 15:50:04 +08:00
回复了 Los 创建的主题 Ruby on Rails 关于 ruby 和 rails
@Los 哈哈,其实这件事我很支持政府的(如果我没有理解错的话)。我待在上海,就觉得上海话很难听和拗口。我自己是可以不学,也可以不说;我也很认可上海人相互之间用上海话交流;但重要的是别TMD的对我说上海话,或者是一群人交流时,一小部分人不时说些上海话。

对我来说,避免痛苦远比获得快乐重要。一开始我就说了,Ruby有“很多”我喜欢的东西,但是为此而忍受“一些”我不喜欢的东西,这点我做不到。
而对“很多人”来说,这些我认为的痛苦是不存在的,所以他们会喜欢Ruby,对此我觉得可喜可贺。
但是强迫别人认可自己的痛苦或快乐,这是我不可接受的。所以我选择只和与我价值观相同的人交流,因为这部分人已经认可了什么是我们共同“不想用的”,也就不需要承受道德上的自责了。
2011-09-11 15:03:54 +08:00
回复了 Los 创建的主题 Ruby on Rails 关于 ruby 和 rails
@chloerei 我明确说出来吧,省得你还搞不懂我们观念上的根本差异:你希望的自由,是不想用可以不用;但我希望的是不想用的,我要求全世界所有人都不能用。

我承认这样很霸道,所以才会提起iOS。观念和乔布斯相符的,会满意iOS,不符的可以去选择Android。2者本来就都没有错,只在于你是否选择和你观念相符的。
2011-09-11 14:52:54 +08:00
回复了 Los 创建的主题 Ruby on Rails 关于 ruby 和 rails
@chloerei 我很不乐于和Rubyer讨论语言,原因前面也提到过了。
所以只简单回答下,我希望你有反对意见的话,先站在对方的观点想想为什么会存在这个问题,而不是把别人当成无理取闹的异类。

我就经常很疑惑,我自己就是证人,哪怕全世界只有我一个人疑惑,也是“让人疑惑”。同理,你也只能证明你自己不疑惑,不能证明它不“让人疑惑”,这在海猫中属于恶魔的证明。
要我说的话,我不认同“在实际开发中未曾成为问题”。我看到那条语句就得猜测是不是函数调用,这么大的问题都不是问题的话,那我把save改成一个属性,你在阅读代码时是否还按照“约定”认为它是函数调用?

关于“不追求简洁”,如果你注意到我的用词了的话,我对那么有好感的Ruby的第一印象不是简洁,而是简约。这2个词在Rubyer眼里也许看不出区别,这更让我觉得当初用这个词用对了。


@Livid 载入github的内容严重拖慢页面加载速度,能改善下吗?
2011-09-11 14:23:03 +08:00
回复了 jeeson 创建的主题 Google App Engine Google App Engine 价格和用量继续微调 (谷奥)
@linsk 如果只是学习,GAE的免费配额还是能维持一个1000PV以下的站点的。等超过1000时,我想该学的你也都学会了。
2011-09-11 14:19:21 +08:00
回复了 Los 创建的主题 Ruby on Rails 关于 ruby 和 rails
@chloerei 我想说的是我在接触Python后没多久,就喜欢上Ruby了,详情可以看 http://www.keakon.net/article/888

但随着了解的深入,就越来越觉得不爽了。

我可以轻易为JS和Python抛弃学了4年的C++,但却忍受不了Ruby,这实在很难以偏见来说服我自己。
2011-09-11 14:06:01 +08:00
回复了 Los 创建的主题 Ruby on Rails 关于 ruby 和 rails
@Los 那篇文章如果你读完的话,就知道我并非只是抨击RoR。我真正想说的是各种东西都有其适应的群体,开发者应该拿有限的时间去找适应他的技术,而不是逼自己去适应技术。


拿其中一个观点来说:Pythoner极力维护语言的纯洁性,简洁易懂是他们的哲理;Rubyer很喜欢新奇,巴不得每行代码都能用6种语法来写。

以你上面的为例:“Ruby允许一个函数可以有多个别名,比如得到 Array 的长度,有size,length甚至count”。

那么Python为什么不这么做?因为它需要简洁,这种简洁也带来了一致性和通用性,可以减少人们的疑惑和学习负担。
试想一下字符数组,它在C语言里可以当成字符串。前者或许可以有size,length甚至count,但是后者有count合理么?而在Python中,不论是内置的list、set、str、unicode、dict,还是开发者自定义的类型,一律都用__len__(self)这个接口获取长度,而且这个命名也让你趋向于选择更短的内置函数len()。

为什么要用函数而不是对象的方法?
我不知道Guido设计的初衷是怎样的,但是如果一个函数只想接收定义了__len__(self)方法的对象时,len()可以让不支持的对象抛出异常。而如果换成size(self)、length(self)和count(self)方法的话,你在定义自己的类时,为了不与标准的接口相冲突,这3个方法你都不能定义。于是你不能有square.size、rope.length和money.count,除非你保证其他人不会把这些对象当成Array。

我承认你的例子里用count确实更符合语境,但在Pythoner看来,作为一门语言的基本类型,它应该保持简洁;而在开发者需要他的语境时,才去自行定义别名。
而在Rubyer看来,他们只知道__len__很丑,len不面向对象,而且没有alias语法,这太过死板和沉闷了。


关于那个“:attachable_id=>topic_id”,我只想说人类的语言不会带:和=>。不管你学过多少门语言,只要没学过Ruby的人都看不懂这些符号。
而Python极力避免使用符号,宁愿使用关键字来取代符号。


还有我之前所提到的,那个.save让人疑惑究竟是一个属性访问,还是一个方法调用。一个get方法模拟成属性说得过去,可是这种带有强烈副作用的方法,为什么要伪装成人畜无害的样子?
假如这个对象还有个saved属性,然后你在获取它时碰巧少写了个d,而这个save方法最后会返回saved属性,会出现什么现象呢?你也许会说我有写单元测试啊,可假如你的测试代码是save == saved,或者这个错正好就发生在单元测试里呢?


我想这3点差异的本质就是:Python追求简洁,不让人疑惑;而Ruby追求自由,让自己惬意。
这也是我说“真正的Python程序员和Ruby程序员肯定是2个极端,绝对是水火不容的存在”的原因。他们的观念和care的方面完全不一样。
更多原因可以看这篇文章,有些观点现在看来存在错误,但大方向上和我现在的看法仍然相符: http://www.keakon.net/2009/03/17/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E9%80%89%E6%8B%A9Python%EF%BC%8C%E8%80%8C%E9%9D%9ERuby

其实回头想想,这有点像iOS和Android的差异。很多人想把iOS当成Android用,然后觉得很不灵活。可问题是2者本来就是风格迥异的,不适应就换一个,何苦折腾自己?


关于你的PS.2,这并不能解决根本原因,如果想用mootools呢?
2011-09-10 11:52:59 +08:00
回复了 Mr_Vangogh 创建的主题 Android 用Eclipse开发Android程序真是慢得一逼啊
@wenhuacn 还不如多花点钱开发iOS应用…
2011-09-09 19:07:04 +08:00
回复了 Los 创建的主题 Project Babel 假如建立一个PB2的rails版本分支
@Los 据我所知,redis是存在丢失数据的风险的,为了提高性能,写入文件的间隔一般都达到几分钟了吧。

说些题外话。就代码来说,以我直观的看法就是符号太多了。
如果说Python是写英文的话,Ruby就是写公式了。
英文可以一眼区分出是否优雅,而公式只能看出是否复杂。
这是我在学习Ruby时最大的障碍。

另一点就是我不喜欢Ruby的一些省略,例如自动return最后一行表达式,函数调用可以不带括号。
我知道我自己可以因为不喜欢,而不去这样写。但我没法限制别人这么做,我也不可能不去读别人的代码。
我同意很多人喜欢这种自由,可这种不考虑副作用(比如得手动return nil,没法直接传递函数,查找函数调用时经常搜到注释)的默认做法让我觉得设计者考虑问题有点单纯。

还有一个很大的区别:做同一件事,Python和Ruby都可能有几种写法,区别就在于前者只有一种是最简单而优雅的,并且同时还是效率最高的。
这也可以看出Ruby鼓励多样性,但我不得不为学习多种方式付出N倍的时间,因为我没法避免遇到这样的代码。

所以虽然Ruby有很多我喜欢的特性,但最终还是放弃了。设计者在观念上与我格格不入,这是我感到最遗憾的。
2011-09-09 18:33:24 +08:00
回复了 Los 创建的主题 Project Babel 假如建立一个PB2的rails版本分支
@Los 表示确实很难读,粗略看了下,如果发通知时用户不在线,上线时怎么查看错过的通知?
2011-09-09 15:58:34 +08:00
回复了 berrylei 创建的主题 随想 互联网企业做大了就一定得上市么?
多加点空行和换行吧,看着密密麻麻的…
2011-09-09 00:32:24 +08:00
回复了 Los 创建的主题 Project Babel 假如建立一个PB2的rails版本分支
看完一部电影,结果多了这么多回复……

感觉 @Livid 在另一篇的回复像是在挑刺,虽然 @Los 也是在赌气,但没必要过了20个小时还去接茬吧…
自信和自傲的差别很小,往往就在于是否怀疑自己的能力。虽然有时候很难做到坦诚地表达,但只要以最好的善意去揣测对方,之后的沟通就会顺利很多。
人总是会不自觉地贪慕虚荣,若不先给与赞美和鼓励的话,就很难获得认同和真正帮助到对方。我觉得你运营V2EX是希望能帮助到大家,那么你大可让人愉悦地接受你的意见,这个技巧我想并不难掌握。

关于 @Los 的这个问题,我总结下我的想法:
1. 不管编码效率如何,需求和设计的成本加进去就不止7天了。
2. 7天以后还有维护的成本。
3. 细节上的处理和新功能的开发,不真正去运营是感受不到的。
4. 不去运营的话,你无法证明它的价值,也就无法吸引足够多的开发者持续更新这个项目。
1 ... 32  33  34  35  36  37  38  39  40  41 ... 53  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3257 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 04:38 · PVG 12:38 · LAX 21:38 · JFK 00:38
Developed with CodeLauncher
♥ Do have faith in what you're doing.