论坛首页 入门技术论坛

个人喜好:php ruby and java

浏览 17038 次
该帖已经被评为新手帖
作者 正文
   发表时间:2006-10-23  
diogin 写道
Godlikeme 写道
我从没有对Ruby有过负面评价,我的出发点是不要把开发语言的优点、缺点看得如此的重,他们本身是同质的,真正能够给开发效率带来的提高并不大。我在这里强调了算法,是想强调软件开发的难点是现实问题的复杂性,这些才是软件开发中最大的障碍,任何开发语言遇到这个问题都无能为力。我不想比较什么优缺点,ruby我了解一点点,耳濡目染,但至少对我现在所了解的情况来说,还没有什么让我觉得ruby较其他语言有本质上的进步,大同小异罢了。我相信语言还会不断进步...,但它还仅仅是语言,是表达形式,内容才是最重要的。

    我想问一问,你所谓的现实问题的复杂性就是诸如二叉树遍历,二分查找之类的“算法”?
敢问现在web开发在多大程度上能用得上这些低级的算法?不要把问题域的层次给弄得太离谱。
熟悉这些算法跟开发软件是两码事,不要偏颇地认为算法才是硬道理,其它什么技术都上不得台面。
我在一个知名的公司兼过职,这个公司的招聘要求也是算法。是的,在二叉树遍历,快速排序,复杂度计算上他们很强,但我实在很惊讶于“他们开发的软件”:首先不是自己开发的就不说了,买别人的产品复用自然也对,但看过他们修改的源码后我是确确实实惊讶了好几分钟:什么风格什么效率,什么优雅什么美感根本就无从谈起,能草草实现出功能就算完事,源代码里上千行的垃圾代码也视而不见,运行时间的90%都浪费在做无用功,很难想象这些所谓的算法牛人“开发”出的“东西”是软件。
    另外,我想知道您做过多少项目?


我在这里强调了算法,是想强调软件开发的难点是现实问题的复杂性,这些才是软件开发中最大的障碍 我觉得我的本意被误解了。
完全没想到会被理解成这个样子,我想说你说对,没错,可你那么想是我的错么?
0 请登录后投票
   发表时间:2006-10-23  
后来想了想robbin的话,觉得有一个重要的问题。那就是开发速度的提高带来开发人员数量的减少,从很大程度上减少了沟通、管理、代码质量上的问题。即使不考虑这些,可以说两三个水平比较高的人,完全可以胜任8-10个人水平参差不齐的工作量,而且大大降低的项目管理的各方面成本。这样算来8-10人两三个月能搞定的项目,2-3个人一两个月做完也是有可能。当然,这里所指依然是开发和测试过程。
0 请登录后投票
   发表时间:2006-10-23  
axgle 写道
charon 写道

觉得好笑,写上面这段话的时候,请先仔细思量一下自己对java有没有过一个公正的评价,即使了解java的过程也许不那么愉快。

连一个hello world都需要到网上拷贝粘贴,看到某种语言打字数多就绕道走,能让观众相信楼主对这个语言的评价是 严肃深刻而且公正的吗?
只能归之于 "任意的评价" 和  "很轻松和惬意的事情"这一类.


我在第一贴中已经说过:"我对java不熟悉,不敢继续评判。"并且我指出了个人的喜好:不喜欢冗长的代码风格。网上拷贝粘贴的java代码只不过用来表明java的代码难以记忆.并且对java的感受是"在我心目中。。。"。我的标题就已经暗示了这是“个人喜好”。


这个不矛盾。就好比你在大街上痛殴一个人,然后对他说:兄弟,其实我和你不熟..........
而且,难以用记忆来编写一段java的hello world代码的,怎么着都不像是写过java程序的.
个人喜好当然不错,但是你未必需要痛殴不了解的事物来强调个人的喜好吧。而且,既然你知道自己不熟悉java,仍然敢于作出这种比较和评价,那你怎么好意思去暗示Godlikeme可能的(通过这个帖子并不足以判断Godlikeme是否熟悉ruby)不够公正和任意轻松的评价态度
敢情java真是条落水狗,走过路过的都要来痛殴一番才行?

引用

还有就是我遇到一个长期使用java和JSP的人,当他第一次见到我在php中使用cookie操作的时候,他惊呆了,没想到事情可以这么简单而轻松。所以为什么要搞那么麻烦,为什么洗澡却要穿着棉袄呢?

这个就无语了... 任何一个只靠着勤劳的双手生写java程序的人自然会有这个感慨,但是...., java有无数的第三方开源库和框架啊. 即便如ruby,如果不用rails或某些库,直接去玩cookie,也不会很爽吧。这个只能说是扩展库的力量,而不是语言的力量。任何语言,你都可以做到穿着棉袄洗澡。
0 请登录后投票
   发表时间:2006-10-23  
Arden 写道
其实熟悉程度才是最重要的,虽然Ruby开发速度快,可不是很熟悉,用它还要去学习它,如果一个对java非常熟悉,并且积累了一定现有的API,开发速度并不会比ruby低!


我用Java的时间到现在有六年了,可是用ruby的时间还不到6个月,但是我用ruby开发web项目效率至少可以达到Java的5倍,如果我能有时间好好熟悉一下ruby和rails,估计可以达到10倍。
0 请登录后投票
   发表时间:2006-10-23  
Godlikeme 写道
后来想了想robbin的话,觉得有一个重要的问题。那就是开发速度的提高带来开发人员数量的减少,从很大程度上减少了沟通、管理、代码质量上的问题。即使不考虑这些,可以说两三个水平比较高的人,完全可以胜任8-10个人水平参差不齐的工作量,而且大大降低的项目管理的各方面成本。这样算来8-10人两三个月能搞定的项目,2-3个人一两个月做完也是有可能。当然,这里所指依然是开发和测试过程。


用ruby不光能够带来开发速度上的提升,代码量也能够大大减少。拿JavaEye2.0这个网站来说,包含了forum,blog,SNS三种大型软件的主要功能,每个部分单独去做,都要花好几个月,合起来的代码量(包括XML配置行数)保守估计至少要3-5万行。现在用ruby on rails编写,ruby代码量只有不到5000行。

维护5000行代码的项目和维护50000行代码的项目,其难度和工作量是差很多倍的。你可以想像一下,打开eclipse面对只有十几个文件,5000行代码,而且代码还很易读的,你的心情是怎么样的,维护难度是什么样的?而当你打开eclipse面对一大排密密麻麻的package,几十上百个class文件的时候,心情是怎么样的,维护难度又如何?

特别是当需求变来变去,你对这些代码来回改过几次之后,你再看这5000行代码和那50000行代码,我敢保证你的心情绝对是截然相反的。

因此先进的生产工具不但能够提供生产率,降低生产成本,还能够有效降低软件的维护成本,提高软件的需求变更能力,最后程序员面对这个项目代码的心理压力也是完全不一样。当然了,原来十个八个人做的项目,现在两三个人来做就够了,项目团队的沟通成本降低,项目团队协作能力加强,也能非常有效的提高软件项目的成功率。



0 请登录后投票
   发表时间:2006-10-23  
charon 写道
个就无语了... 任何一个只靠着勤劳的双手生写java程序的人自然会有这个感慨,但是...., java有无数的第三方开源库和框架啊. 即便如ruby,如果不用rails或某些库,直接去玩cookie,也不会很爽吧。这个只能说是扩展库的力量,而不是语言的力量。任何语言,你都可以做到穿着棉袄洗澡。


这你就外行了不是。PHP和rails操作cookie之简便可不是Java能比的了的。

0 请登录后投票
   发表时间:2006-10-24  
Godlikeme 写道
我没有体验过,不知道ruby的速度,但我比较悲观,就假设是5倍好了。
把项目的开发和测试时间定为整个项目的40%好了,那么一个j2ee项目应该在100%,而ruby是68%,也就是ruby比java项目的整个周期快了1/3,我不认为开发速度加快会带来真个项目的进度加快那么多,如果是10倍这样,Ruby is a silver bullet。不管怎样,开发效率的提高是一件好事。

现在的应用软件开发中最大的障碍根本就不是什么现实问题复杂性,应用软件开发的最大障碍就是开发速度和开发成本问题,还有需求变更响应能力上。

对于这句话,我只想引用人月神话序中的一句话“Jackson指出软件行业人员/方法学大师们只是简单地模仿、照搬其他学科的方法,却将最重要的方面--问题域给忽略了。他指出,面向对象方法和结构化方法对问题域的处理没有什么大的区别,却被人们过分地用美好的词汇给美化了。”

因此,我只能认为,robbin认为Ruby是一颗银弹,到底是不是,只能拭目以待。


这是另外一个问题了,而且还是比较大的问题。我到是经常看见别人说业务重要,技术不重要什么的论调,要说我都重要,哪个缺少哪个更重要。

不过从我个人项目经历来说,我主持、参与和咨询过n多行业项目,涉及了医药、机械、广告、化工、航空、银行、教育、电子政务等行业项目,这些行业的业务知识我都不懂,但是我没有发现这些行业的业务知识,或者说问题域成为项目的最大障碍。

其实这个道理很容易想通的,搞编程的人都比较聪明的,那些行业知识你没有理由比掌握一门编程语言困难啊?再说也不需要你成为行业专家你才能进行业务逻辑抽象啊。而且搞编程的人,他们的逻辑思维能力都被训练的很好了,对于普通的业务逻辑抽象和归纳,根本就是小儿科的事情啊,为啥会成为障碍呢?哪些地方你不知道,你随时去问客户的业务专家不就好了吗?

项目成败的因素有很多,如果抛开外部因素的话,一般来说项目成败往往取决于Team Lead的个人能力:包括他的技术能力、管理能力、组织协调能力,但无论如何行业知识的问题域不是什么障碍,如果你们做项目在这方面被卡住了,就要想想看老板是通过什么手段拿到项目的了。
0 请登录后投票
   发表时间:2006-10-24  
hurricane1026 写道
Godlikeme 写道
帮我写一个二分法排序算法吧。


我就不太明白这个了,二分法怎么排序?
二分法顶多用于insert sort,否则,未排序的数列,你怎么二分法?有谁会用二分法排序?看了你又不是笔误,最好不是故意刁难人。


没有刁难人的意思 ,二分法有点不太准确了,归并叫得更多些。
0 请登录后投票
   发表时间:2006-10-24  
两路归并啊,还有快速排序也可是一种二分法排序
0 请登录后投票
   发表时间:2006-10-24  
robbin 写道
Godlikeme 写道
后来想了想robbin的话,觉得有一个重要的问题。那就是开发速度的提高带来开发人员数量的减少,从很大程度上减少了沟通、管理、代码质量上的问题。即使不考虑这些,可以说两三个水平比较高的人,完全可以胜任8-10个人水平参差不齐的工作量,而且大大降低的项目管理的各方面成本。这样算来8-10人两三个月能搞定的项目,2-3个人一两个月做完也是有可能。当然,这里所指依然是开发和测试过程。


用ruby不光能够带来开发速度上的提升,代码量也能够大大减少。拿JavaEye2.0这个网站来说,包含了forum,blog,SNS三种大型软件的主要功能,每个部分单独去做,都要花好几个月,合起来的代码量(包括XML配置行数)保守估计至少要3-5万行。现在用ruby on rails编写,ruby代码量只有不到5000行。

维护5000行代码的项目和维护50000行代码的项目,其难度和工作量是差很多倍的。你可以想像一下,打开eclipse面对只有十几个文件,5000行代码,而且代码还很易读的,你的心情是怎么样的,维护难度是什么样的?而当你打开eclipse面对一大排密密麻麻的package,几十上百个class文件的时候,心情是怎么样的,维护难度又如何?

特别是当需求变来变去,你对这些代码来回改过几次之后,你再看这5000行代码和那50000行代码,我敢保证你的心情绝对是截然相反的。

因此先进的生产工具不但能够提供生产率,降低生产成本,还能够有效降低软件的维护成本,提高软件的需求变更能力,最后程序员面对这个项目代码的心理压力也是完全不一样。当然了,原来十个八个人做的项目,现在两三个人来做就够了,项目团队的沟通成本降低,项目团队协作能力加强,也能非常有效的提高软件项目的成功率。

摆事实,讲道理,这我无话可说。对我来讲这个事实是惊人的,完全不能想到语言的表达能力会有如此大的差别,这也引起了我极大的兴趣。
对于问题域的问题,暂持保留意见,但我相信技术实力和丰富的项目经验肯定是解决问题域的主要方面,语言应该还是属于其次。
0 请登录后投票
论坛首页 入门技术版

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