论坛首页 编程语言技术论坛

改变你能改变的,接受你不能改变的

浏览 16313 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-10-24  
最近关于ruby够提高开发效率的问题讨论的热火朝天 。我也插两嘴。

有一句格言我比较喜欢:“改变你能改变的,接受你不能改变的”。
人月神话告诉我们软件开发没有银弹:因为软件的内在复杂性是现实世界复杂性的映射。现实复杂性归咎于客观世界,属于上帝,所以软件的内在复杂性不可消灭。

但是它又告诉我们,软件开发中充斥着“次要复杂性”,也就是人为引入的复杂性,这种复杂性是可以消灭的,并且Brooks也很高兴的发现面向对象技术的发展对降低次要复杂性功不可没。这种次要复杂性表现在哪里呢?比如hibernate的hbm 文件,struts的formbean,Java匿名类的恶心语法。

Godlikeme的观点我很同意:现实复杂性是项目的最大障碍。可是如果现实复杂性的客观世界本身的复杂性的话,那不正就是客户的业务问题么,与其说是障碍,不如说是目标。这个Cost是无论如何不能消灭的,也就是“接受你不能改变的”。

可是实际项目中,除了现实复杂性,还有一些我们能够克服的次要复杂性。更少的代码量,更快的部署时间,自动化的单元测试和验收测试都是解决次要复杂性有力手段。

Godlikeme也承认ruby开发效率要快一些,但又说这是微乎其微的,“以至于”用不用ruby都一样。这是典型的否认定量 分析问题的手段。既然ror能够提升效率,哪怕只是一点点,有什么理由不接受呢?莫以善小而不为啊!假设我有和你一样解决业务问题的能力,那么我使用一套高效的开发工具,就会用较低的成本打败你,事情就这么简单。

以定量的手段降低项目成本是一个开发者的基本素质。

工具之所以重要,是因为他所代来的效率的提高几乎是无代价的!如果你掌握了他的话。从这场口水战中我发现,ruby这一方大多数掌握了ROR和java,而java这一方却不是。

何况ROR提高的效率真的是微乎其微么?
   发表时间:2006-10-24  

这个话题本身的内容属于“主义”还是“问题”呢?

人们天生都喜欢讨论“主义”,而不是“问题”。
“主义”这东西虚无缥缈,谁都可以插上嘴。
“问题”这东西到了客观细节,可就是手底下见真章了。讨论的人数就很少了。

0 请登录后投票
   发表时间:2006-10-24  
buaawhl 写道

这个话题本身的内容属于“主义”还是“问题”呢?

人们天生都喜欢讨论“主义”,而不是“问题”。
“主义”这东西虚无缥缈,谁都可以插上嘴。
“问题”这东西到了客观细节,可就是手底下见真章了。讨论的人数就很少了。



有同感。瞎扯容易,说具体数字难。
0 请登录后投票
   发表时间:2006-10-24  
还在用c++写cgi的我无声飘过.... hiahia.
0 请登录后投票
   发表时间:2006-10-24  
“有勇气来改变可以改变的事情,有胸怀来接受不可改变的事情,有智慧来分辨两者的不同”

帮楼主把格言补全
0 请登录后投票
   发表时间:2006-10-24  
只要能更快更好的解决我的问题,就用它,至于别人的分析,让他们说去吧
0 请登录后投票
   发表时间:2006-10-24  
搂主,用了我的大名也不跟我说一声
搂主说的话我基本上是赞同的,对ruby的浅薄让我无话可说了,我不能拿出定量的论据来支持我的观点,没有调查就没有发言权。所以我选择保持沉默。

在说过微乎其微之后,后来和robbin的讨论中我已经承认低估了ruby的效率。

我再次重申,从没有对ruby做过负面评价,我也不想为java做什么辩护,只是对ruby的一些评价保持怀疑的态度,还是让实践去检验吧。
0 请登录后投票
   发表时间:2006-10-24  
flyisland 写道
“有勇气来改变可以改变的事情,有胸怀来接受不可改变的事情,有智慧来分辨两者的不同”

帮楼主把格言补全

真不错,让我自我感觉又长了点EQ
0 请登录后投票
   发表时间:2006-10-24  
That is a translation of the famous serenity prayer

引用
God grant me the serenity
to accept the things I cannot change;
courage to change the things I can;
and wisdom to know the difference.
0 请登录后投票
   发表时间:2006-10-25  
哈哈 在这里也能见到roseanne:)
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics