看《初学ROR的疑惑》所产生的疑惑
在论坛里看了daquan198163所写的《初学ROR的疑惑》这篇文章,robbin在回复中给了详细的解答,可是看完解答之后,我也产生了一些疑惑,在此想问问。
在robbin所给出的解答当中,更多的是阐述rails的好处,然而大家都知道,rails只是一种用来快速开发的框架,而ruby之所以如此火红,大部分原因是因为rails,这点不可否认,但是对于ror的未来,我始终有所怀疑,既然rails是框架,那当其他语言实现了类似的框架之后(现在已经有类似的框架,但仍然未成熟),ror的未来又如何呢?目前ror的优势主要在于快人一步,而ruby语言本身,在语言性能上却是不及其他语言,也许当ruby2.0正式出版后,通过YARV可能对性能有一个很大的提升,但是相信也仅仅是和其他动态语言相比,与JAVA之类的静态语言可能仍然有差距。那当JAVA出现了一个比rails更完善的框架的时候,ror又该如何呢?在该文章的回复中,robbin说过“由于编程语言内在差异,Java再简化也简化不到rails的程度。”,但是你不要忘记,正因为动态语言 具有JAVA所没有的优势,JAVA在新的版本中也已经整合了动态语言,这个问题在未来也许不再是问题,而且相信会比单独使用动态语言在性能上有更好的表现。
其实我个人并不排斥ruby,而且我更想学ruby,但是我认为ruby这些动态语言的未来,相信都不再是单枪匹马的出现在系统当中,正如robbin在《回复ozzzzzz的“java将死”》当中说的(两个观点都是robbin写的,让我有点不知道该如何表示了,一边在反驳robbin一边又赞成robbin,呵呵,糊涂):
“我和ozzzzzz都认为Sun的管理层和技术层意见是有分歧
的。Sun现在的CEO并不是Sun起家的创始人,对Java语言没有那么纯洁的怀旧感情。因此Sun管理层现在一系列动作都在表明Sun在把Java更加平台化,以提供ruby,groovy,javascript等脚本语言支持。未来Java会成为一个基础运行平台,上面可以跑各种脚本语言。”
我想这才是动态语言未来的真正出路,而java的未来也在此一览无余,我个人认为老是用java和ruby比较不太恰当,这两种语言更应该相辅相成才是正道。我的看法可能不够深思熟虑,请各位一二。
评论
为什么说ROR,反面信息,就要被隐藏啊。
“扩展性”是指Java从普通单机应用到企业级分布式应用的适应能力,RoR在中小应用的成功已得到证明,企业级的表现尚待关注。
请问什么叫“应用范围“,什么叫”扩展性“?
还是多讨论些技术吧!
我刚毕业的时候工作语言是PowerBuilder,我当时用着PB就知道他迟早会被取代,那又如何?难道我应该8年来死抱着PB不放?或者拒绝使用PB,等着被公司炒鱿鱼?我2000年操着PHP写web页面的时候,就知道PHP这玩意将来肯定要被JSP取代,那又如何?那我是不是就应该不学不用PHP了?等着失业阿?有哪种编程语言,哪种应用框架不会被取代?
PB是不如当初流行了,但客观地说,用PB做C/S效率还是很高,高过现在正在升温的WinForm。不用PB、Delphi、VB,主要的原因是流行观点认为它们“过时了”,不能满足很多其实不可能用到的特性。
至少现在看来,PHP并未被JSP取代。大多数Internet应用已经成功使用了PHP(比如大家常去的sourceforge.net及www.eclipse.org),或正向PHP转型;近来PHP更正向企业领域伸手,大有和Java及C#争夺中小应用的趋势。
本人用过一阵子RoR,但还是不看好它。要论快与直接,它不如PHP;要论应用范围及扩展性,它不如Java。这种精巧的东西玩起来好玩,但难成大器。
虽然我是一个JAVA程序员,但我感觉JAVA当真不好用。直到ROR出现,这才是我一直在找的东西。
我可从来没有说过ROR只是在等死,更没有说过谁会取代谁的论调,希望kldwq2002不要断章取义。J2EE的开发确实是很麻烦,我也一直是如此认为,ROR的出现也确实让我眼前一亮,但是目前来说我是仍然不会使用ROR做项目,J2EE仍然是我目前的选择,至于未来如何那就要看哪个更能够满足需求了。
虽然我是一个JAVA程序员,但我感觉JAVA当真不好用。直到ROR出现,这才是我一直在找的东西。
“ROR还未成熟到可以取代JAVA的地步”,很多人都是这样的想法。
一种技术衰落、成为历史遗留,并不一定有另一种技术来取代它。每种技术有自己适用的应用场景,因为商业环境改变了,旧的应用场景就可能不再需要大量的新应用被开发出来。
例子就摆在眼前。作为开发桌面应用的工具,VB和Delphi并没有被任何技术取代。但桌面应用不再是商业的核心了。再往前的例子,C++,COBOL,都是这条路。即便仅仅从历史的角度,也没有任何理由认为Java一定要被某种东西取代——在我看来这是不大可能发生的——之后才会逐渐步入衰落。
而另外一个比较有意思的情况是,新的流行趋势(比如ruby和python,当然如果算上oz就更加明显)是将旧有的概念进行新的发扬(比如文档化代码就来自于ada)。同时新的面向语言的编程和DSL,造成了对于语言风格的新喜好。而实际上基于lisp的格调以及shell的方式是最近的趋势,这和c语言的灵活于随意是大相径庭的。不管你喜欢不喜欢,java的风格已经不是流行的了。我认为这其中的原因在于使用java这样的方式来描述业务需求是罗嗦而臃肿的。当然并不是优美的强大的就会流行,比如oz就很少有人知道。[/quote]
相对于同一语言的遗留系统是会逐渐减少的,而至于JAVA的项目目前还不能算进遗留系统,当JAVA真正成为遗留系统语言后,我相信相对于JAVA的遗留系统也会逐渐减少。JAVA风格不再是流行,这点我有点不认同,至少从目前来看,JAVA仍然是主流,ROR是很火,但是还没到取代JAVA的地步,JAVA也许最终会被替代,但是目前来说要达到这一地步还是需要时间,我也很不喜欢JAVA的臃肿,但是现在对于我来说,JAVA是别无选择,至少我不会选择ROR,不是我觉得ROR不好,否则我也不会去学习ROR,只是ROR还未成熟到可以取代JAVA的地步。
也许当 ruby2.0正式出版后,通过YARV可能对性能有一个很大的提升,但是相信也仅仅是和其他动态语言相比,与JAVA之类的静态语言可能仍然有差距。
编译型Ruby慢过Java这样一个假设是没有任何理由的。如果大家都是编译语言,性能的差异应该只是受具体的实现影响。目前编译型Ruby还很不成熟,自然不能和Java比性能,但是这条路不会太长。
那当JAVA出现了一个比rails更完善的框架的时候,ror又该如何呢?在该文章的回复中,robbin说过“由于编程语言内在差异,Java再简化也简化不到rails的程度。”,但是你不要忘记,正因为动态语言具有JAVA所没有的优势,JAVA在新的版本中也已经整合了动态语言,这个问题在未来也许不再是问题,而且相信会比单独使用动态语言在性能上有更好的表现。
且不说用Java实现Rails的可能性,即使能用Java实现一个类似rails的框架,在这个框架之上写程序还是得用Java。写应用这一步用Java怎么赢过用Ruby?
Java的对动态语言的支持实际上相当于一个解释器的接口。用C去编译或者解释Ruby难道会慢过用Java去解释Ruby?“相信会比单独使用动态语言在性能上有更好的表现”实在是很盲目的“相信”。
“我和ozzzzzz都认为Sun的管理层和技术层意见是有分歧 的。Sun现在的CEO并不是Sun起家的创始人,对Java语言没有那么纯洁的怀旧感情。因此Sun管理层现在一系列动作都在表明Sun在把Java更加平台化,以提供ruby,groovy,javascript等脚本语言支持。未来Java会成为一个基础运行平台,上面可以跑各种脚本语言。”
我想这才是动态语言未来的真正出路,而java的未来也在此一览无余
“这才是动态语言未来的真正出路”,言下之意似乎如果Java不平台化动态语言就没有真正出路?
Ruby一路走来,它是独立的,完整的。虽然现在不够流行,但发展很快是有目共睹的。你怎么就看到Ruby没有Java的支持就没与出路?
我觉得你有的不是疑惑,而是太多太多没有理由的“相信”。
http://blog.melhase.net/articles/2007/02/15/automated-translation-of-java-to-python
看看这个。
至少从目前的状况来看,遗留系统的存在一个逐渐增多的趋势。分析原因首先是硬件的更新,带来了新的平台转移的工作;SOA的兴起,带来了旧有系统的从新认识;新的BRP流行,带来了更多的系统改造而不是系统再造。特别是ada程序最近有了比2000年的时候更多的需求,当然这里不排除战争的因素。
而另外一个比较有意思的情况是,新的流行趋势(比如ruby和python,当然如果算上oz就更加明显)是将旧有的概念进行新的发扬(比如文档化代码就来自于ada)。同时新的面向语言的编程和DSL,造成了对于语言风格的新喜好。而实际上基于lisp的格调以及shell的方式是最近的趋势,这和c语言的灵活于随意是大相径庭的。不管你喜欢不喜欢,java的风格已经不是流行的了。我认为这其中的原因在于使用java这样的方式来描述业务需求是罗嗦而臃肿的。当然并不是优美的强大的就会流行,比如oz就很少有人知道。
也许当 ruby2.0正式出版后,通过YARV可能对性能有一个很大的提升,但是相信也仅仅是和其他动态语言相比,与JAVA之类的静态语言可能仍然有差距。
编译型Ruby慢过Java这样一个假设是没有任何理由的。如果大家都是编译语言,性能的差异应该只是受具体的实现影响。目前编译型Ruby还很不成熟,自然不能和Java比性能,但是这条路不会太长。
那当JAVA出现了一个比rails更完善的框架的时候,ror又该如何呢?在该文章的回复中,robbin说过“由于编程语言内在差异,Java再简化也简化不到rails的程度。”,但是你不要忘记,正因为动态语言具有JAVA所没有的优势,JAVA在新的版本中也已经整合了动态语言,这个问题在未来也许不再是问题,而且相信会比单独使用动态语言在性能上有更好的表现。
且不说用Java实现Rails的可能性,即使能用Java实现一个类似rails的框架,在这个框架之上写程序还是得用Java。写应用这一步用Java怎么赢过用Ruby?
Java的对动态语言的支持实际上相当于一个解释器的接口。用C去编译或者解释Ruby难道会慢过用Java去解释Ruby?“相信会比单独使用动态语言在性能上有更好的表现”实在是很盲目的“相信”。
“我和ozzzzzz都认为Sun的管理层和技术层意见是有分歧 的。Sun现在的CEO并不是Sun起家的创始人,对Java语言没有那么纯洁的怀旧感情。因此Sun管理层现在一系列动作都在表明Sun在把Java更加平台化,以提供ruby,groovy,javascript等脚本语言支持。未来Java会成为一个基础运行平台,上面可以跑各种脚本语言。”
我想这才是动态语言未来的真正出路,而java的未来也在此一览无余
“这才是动态语言未来的真正出路”,言下之意似乎如果Java不平台化动态语言就没有真正出路?
Ruby一路走来,它是独立的,完整的。虽然现在不够流行,但发展很快是有目共睹的。你怎么就看到Ruby没有Java的支持就没与出路?
我觉得你有的不是疑惑,而是太多太多没有理由的“相信”。
我不是悲观,而是阐述一个容易被忽略的事实——什么样的语言能力才能给程序员最大的钱途。
其实一个以前是主流的语言的程序员,才是最容易找到高收入和稳定工作的人。别的不说ada,cobol,Fortran 这个三个曾经的热门语言,现在的就业环境就比java好的多,收入也高的多。而我们每次争论语言的时候,一些人总是害怕他们现在学的东西过时。不用问他们一定以为过时的就没有人用了,工作也不好找了。但是事实恰恰相反啊。如果只是以编程为一种谋生的手段,那么这些过时的语言要比流行的和将要流行的语言更好。什么才是最大的中庸呢?这才是最大的中庸。而最可怜的人其实才是那些以应用为指导的,也就是赶时髦的人,他们只能吃别人的剩饭,进行最激烈的竞争。
因此要是想获得一个好的钱途,要么就要走在潮头前面来引导潮流,要么就跟在潮头后面收拢溃败的残部。当然这两头都是少数人,而往往这两部分人又都是是一群人。
- 浏览: 116766 次
- 性别:

- 来自: 珠海

- 详细资料
搜索本博客
我的相册
共 9 张
最新评论
-
使用java实现http多线程下 ...
...版式有问题, 希望能耐心的看看,谢谢了哈
-- by 落花虽有意 -
使用java实现http多线程下 ...
看了你的思路我也写了个简单的,中间出了点问题想请教您,谢谢了``` 问题是这样 ...
-- by 落花虽有意 -
Python笔记之and or陷阱
Python 2.5中可以用 value1 if expression else ...
-- by victorsos -
使用java实现http多线程下 ...
不错,谢谢,学习一下!
-- by nighty -
记张学友演唱会让我愤怒的 ...
保安的行为有抢劫的嫌疑
-- by JavaInActoin






评论排行榜