锁定老帖子 主题:php,rails和java的有趣比较
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-11-12
引用 举个简单的例子,如果JavaEye是由三个刚刚学习Java不久的开发人员来负责,你会建议他们使用RoR吗?或者JavaEye是由三十个水平参差不齐的人来维护,你会建议项目使用RoR吗?
肯定会要求用RoR。RoR入门比Java快很多倍。 不需要30个人维护,我需要的是3个高手(Java高手,RoR高手都行),30个人只会把事情搞坏。 引用 希望用某种编程语言来大幅度的降低软件开发的复杂度是不切实际的
如果说软件业务逻辑复杂度是10,Java编程带来的次要复杂度就是50;RoR把次要复杂度降低到了10。 引用 是像Java或者C#这样强类型的准静态语言在实现复杂的业务逻辑、开发大型商业系统、以及那些生命周期很长的应用中也有着非常强的优势
为什么静态语言在复杂业务逻辑,大型商业系统,长生命周期应用当中有非常强的优势呢?理由是什么? 引用 对于软件工业来说,最重要的还是分解业务逻辑的复杂度和不确定性。毕竟,正如我的一个同事所说的那样,“无论用任何语言,初期的开发成本我们还是投入的起的。”呵呵,据他说,他经历的项目在初期的开发上占的成本大概只占到整个项目开发成本的1/6到1/5。
http://robbin.iteye.com/blog/29555 http://robbin.iteye.com/blog/29589 |
|
返回顶楼 | |
发表时间:2006-11-12
floating 写道 ssuupv 写道 说真的javaeye功能还是比较弱的.有些方面易用性也不太好(举止例子,我搜索列表,点开列表中的一个主题.看完以后,想回到列表.好想不行噢!).并且也有蛮多的bug,其中处理BUG速度也是比较慢.我提了一个BUG.居然那么久还没搞定. ssuupv的话好像有些离题,呵呵。不建议在这里讨论JavaEye的bug,因为个人觉得JavaEye用这么快的速度完成了升级已经能够说明很多问题。不知道JavaEye是兼职完成的还是有专职人员,如果是兼职,bug响应速度慢一点是完全正常的。我在北京全天给别人讲课; jerry在青岛全天给银行做项目; 现在网站只有ouspec一个人在负责bugfix,网站运营,新功能设计,网页开发,内容调整,客户联络等等等等 8月9月两个月我们是三个人全职开发和运营网站,当然做事情很快了,但我们也得养家糊口阿,现在只能分出来一个人负责网站所有的事情,再快也只能快到这种程度了。 |
|
返回顶楼 | |
发表时间:2006-11-12
robbin兄,我不太清楚你强调的重点是什么?贸然猜测一下,你的意思是RoR在Web开发领域完全有能力也完全有必要取代Java语言?如果是这样的话,那我觉得这属于“意识形态”上的分歧,是无法通过辩论来说清楚的。
我再明确一下我的观点,RoR在轻量级的系统开发上的优势已经得到了普遍的承认和追捧,它在这方面的成就是当之无愧的,而且可以预见,很快,它就会成为其他语言学习和借鉴的模版。至于RoR在企业级应用上的表现如何,从目前的情况看来,是一个未知数。同时,我个人认为Java在企业应用领域已经相当的成功,而且还会继续成功下去。 至于robbin兄不认为业务逻辑的复杂性是导致项目复杂的最本质的原因,我大胆猜测一下robbin兄大概在很多大型项目中(大型项目不可能只有个位数的开发人员)扮演的角色也许更倾向于架构师(架构师也需要对业务的足够了解,只是不需要像项目经理或者需求分析师了解的那么深入)或者技术布道者的角色。 |
|
返回顶楼 | |
发表时间:2006-11-12
Godlikeme 写道 Lucas Lee 写道 很赞同楼主的意见。
\
初期成本只是大项目的一小部分,但对小项目会更有意义。 因此,每种语言的优劣势,一定要清楚,而且要因地制宜的使用它。 呵呵,借用下,不多说了。 还有想问下robbin, 根据楼主所提供图表上的开发效率对比,ruby只是java的两倍,而维护效率只有java的1.3倍左右。之前的讨论中您曾经提出过开发效率5-10倍的观点,特别是代码量是有10倍差距的,在我理解代码量的量级差距至少能够带来维护效率的成倍差距。能否就此问题给出一些解释。 这有什么好解释的,oracle广告说比sql server快多少多少你信它还是自己研究一下? |
|
返回顶楼 | |
发表时间:2006-11-12
floating 写道 robbin兄,我不太清楚你强调的重点是什么?贸然猜测一下,你的意思是RoR在Web开发领域完全有能力也完全有必要取代Java语言?如果是这样的话,那我觉得这属于“意识形态”上的分歧,是无法通过辩论来说清楚的。
我再明确一下我的观点,RoR在轻量级的系统开发上的优势已经得到了普遍的承认和追捧,它在这方面的成就是当之无愧的,而且可以预见,很快,它就会成为其他语言学习和借鉴的模版。至于RoR在企业级应用上的表现如何,从目前的情况看来,是一个未知数。同时,我个人认为Java在企业应用领域已经相当的成功,而且还会继续成功下去。 至于robbin兄不认为业务逻辑的复杂性是导致项目复杂的最本质的原因,我大胆猜测一下robbin兄大概在很多大型项目中(大型项目不可能只有个位数的开发人员)扮演的角色也许更倾向于架构师(架构师也需要对业务的足够了解,只是不需要像项目经理或者需求分析师了解的那么深入)或者技术布道者的角色。 在互联网的Web开发领域来说,Java是肯定不行的,这个没有什么争议,互联网的web开发语言向来是脚本语言的天下,perl,php,asp,python,ruby等等。 企业应用领域我还没有开始用RoR做过项目,还不好下结论,但是根据自己的经验推测,普通的项目用RoR应该是没有什么问题的。 对于web开发的前端,我认为静态语言没有什么优势,将来肯定要让位于脚本语言(不一定是ruby),后端还是Java的天下。 |
|
返回顶楼 | |
发表时间:2006-11-12
Godlikeme 写道 Lucas Lee 写道 很赞同楼主的意见。
\
初期成本只是大项目的一小部分,但对小项目会更有意义。 因此,每种语言的优劣势,一定要清楚,而且要因地制宜的使用它。 呵呵,借用下,不多说了。 还有想问下robbin, 根据楼主所提供图表上的开发效率对比,ruby只是java的两倍,而维护效率只有java的1.3倍左右。之前的讨论中您曾经提出过开发效率5-10倍的观点,特别是代码量是有10倍差距的,在我理解代码量的量级差距至少能够带来维护效率的成倍差距。能否就此问题给出一些解释。 这种事情没有办法非常精确的量化的。根据普遍的看法,RoR是Java开发速度的5-10倍。代码量(包括页面)是Java的1/3到1/4。 我不知道Tim Bray炮制的图表数据怎么来的,我也解释不了他量化数据怎么计算出来的。 很多事情要自己做过以后才知道怎么回事。反正当我面对Eclipse里面一大堆密密麻麻的package和XML配置文件的时候,和面对Radrails里面二十几个文件的时候,心理压力是截然不同的。 |
|
返回顶楼 | |
发表时间:2006-11-12
再回答一下robbin兄的几个问题。
引用 如果说软件业务逻辑复杂度是10,Java编程带来的次要复杂度就是50;RoR把次要复杂度降低到了10。
我想robbin兄说的“Java编程带来的次要复杂度就是50,RoR把次要复杂度降低到了10”这个观点师针对原始的Java语言和原始的RoR进行比较的。的确,如今的Java语言体系太过庞大,如果不采用任何framework开发项目,Java的学习成本和使用成本都比较高。但是目前估计没有哪种语言会有Java这么多的framework,在确定好使用适当的framework开发适当的项目之后(确定适当的framework并不是件轻松的工作。还好,一般的公司做从事的项目都有一定的延续性,前一个项目确定好了framework,后续的项目基本上可以拿来用),我想语言本身的复杂度应该没有50比10这么高吧?当然,我没有用RoR开发过正规的东西,这点上没有什么强有力的发言权。 引用 为什么静态语言在复杂业务逻辑,大型商业系统,长生命周期应用当中有非常强的优势呢?理由是什么?
我想这可以从两方面来看。 一是工具支持,包括设计工具、IDE工具、白盒测试工具等。动态语言在这方面我想和静态语言能向工具提供的信息量上还是有差距的。(是不是RoR采取了某种巧妙的思路,可以很好的解决这个问题?因为我还没有对RoR的运行机制做了解,所以不好轻易说RoR在这点上有先天的劣势,姑且从另一个角度,也就是目前的确还没有得到充分的支持这个层面上说吧) 二是第三方开发包的支持。像Java,C等语言之所以取得辉煌的成功,和它提供的丰富的第三方开发包是有很大的关系的。而静态语言相对比较封闭的特点,使得第三方开发包对代码的侵害性可以降到很低。动态语言在这点上表现的就比较差,我想大家都有过从网上下载某个JS包,然后放到项目代码里发生冲突的经历。RoR是否能很好的解决这个问题呢? 再次声明,本人刚刚接触RoR,只是有比较多的PHP、JSP和JavaScript的经验而已。 |
|
返回顶楼 | |
发表时间:2006-11-12
cookoo 写道 Godlikeme 写道 Lucas Lee 写道 很赞同楼主的意见。
\
初期成本只是大项目的一小部分,但对小项目会更有意义。 因此,每种语言的优劣势,一定要清楚,而且要因地制宜的使用它。 呵呵,借用下,不多说了。 还有想问下robbin, 根据楼主所提供图表上的开发效率对比,ruby只是java的两倍,而维护效率只有java的1.3倍左右。之前的讨论中您曾经提出过开发效率5-10倍的观点,特别是代码量是有10倍差距的,在我理解代码量的量级差距至少能够带来维护效率的成倍差距。能否就此问题给出一些解释。 这有什么好解释的,oracle广告说比sql server快多少多少你信它还是自己研究一下? 很抱歉,我一直对robbin的说法将信将疑,但似乎你很确认。如果你认为这是Sun的人做的,数据可信度不高,这没什么问题。我也没有说会相信Tim Bray的数据,只是请robbin帮分析下。为什么会有这种差距, 摆事实讲道理才能让人信服。相比较来说,我更相信Tim一点。 BTW, It is funny that the people who imediately jump to Java's defense have never tried any of the alternatives, like PHP or RoR. We all need to keep an open mind. 如同上面这句话所说,似乎你一直以一个java的支持者看待我所提出的问题,很抱歉,不是这样的。 似乎我应该退出这些关于ruby,java,php的讨论,自最初我也没觉得讨论这些从纯技术角度有什么重要意义。 说太露骨就是利益集团的政治斗争,已有的既得利益者和未来的争食者。看java能不能倒下、ruby这杆大旗谁能先扛起来了。呵呵。静观其变吧。 |
|
返回顶楼 | |
发表时间:2006-11-12
robbin 写道 我在北京全天给别人讲课; jerry在青岛全天给银行做项目; 现在网站只有ouspec一个人在负责bugfix,网站运营,新功能设计,网页开发,内容调整,客户联络等等等等 8月9月两个月我们是三个人全职开发和运营网站,当然做事情很快了,但我们也得养家糊口阿,现在只能分出来一个人负责网站所有的事情,再快也只能快到这种程度了。 严重怀疑iteye.com走的是精英路线,呵呵.robbin兄,干嘛不多招些人?或者可以组织在上海工作的同道给iteye.com义务劳动啊. |
|
返回顶楼 | |
发表时间:2006-11-12
robbin 写道 这种事情没有办法非常精确的量化的。根据普遍的看法,RoR是Java开发速度的5-10倍。代码量(包括页面)是Java的1/3到1/4。 我不知道Tim Bray炮制的图表数据怎么来的,我也解释不了他量化数据怎么计算出来的。 很多事情要自己做过以后才知道怎么回事。反正当我面对Eclipse里面一大堆密密麻麻的package和XML配置文件的时候,和面对Radrails里面二十几个文件的时候,心理压力是截然不同的。 理解理解,多谢! |
|
返回顶楼 | |