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

我喜欢Ruby的原因

浏览 68475 次
精华帖 (0) :: 良好帖 (12) :: 新手帖 (0) :: 隐藏帖 (2)
作者 正文
   发表时间:2008-04-17  
引用
解释器(不是解析器)这个解析器跟解释器我不认为有啥多大区别,

intepreter和parser可能就有比较明显的区别了
引用
JRuby只是Sun的一个市场策略,稳定JVM平台,Sun还不至于傻到让Ruby取代自家的Java

那你如果知道Sun用Ruby给他们的客户做解决方案呢?
你很了解Sun的市场策略是吧?别到时候Sun都不玩Java了你还抱着就好。
0 请登录后投票
   发表时间:2008-04-17  
自言200801 写道


你说Rails是杀手级应用吗,也说得过去,但是明年、后年、再后年你敢保证其他语言没有超越Rails的杀手级应用。

工业界都不是傻子,总得考虑风险吧。

Ruby继续熬吧,没功劳,也有苦劳。



自言200801 写道


ruby我学过一会啦,要是ruby真变成了下一个java,那我再学啊,我现在的部分工作就是学语言、研究语言优缺点,
我现在很爱看别人讨论某一门语言所有有关的正反两面的东西,这样我省去了好多时间自己去搞。


既然你已经学过ruby了,应该明白想让其他语言做出超越Rails的杀手级应用,语言本身就得足够强。你让java干?累死它。
0 请登录后投票
   发表时间:2008-04-17  
解释一下,说我们系统复杂,不止是167个model类能够表现的,咋说呢?
假如javaeye去掉圈子、知识库或任何一个模块,系统仍然能跑。而我们系统虽也分几个模块,但去掉任何一个就不完整了,所有模块围着一个业务目标服务。许多复杂的调度、通信、规则计算、分布存储、统计、集成的工作,以及涉及的多个数据库都不包括在Rails系统中。系统规模还处于核心形态,复杂度就已经很高了。假设用java做WEB这块,我估计不仅不会完成目前的功能,而且也肯定达不到现在的代码质量和易维护性。
很多人认为动态语言(明说了就是ruby)的代码质量要想达到相同水平的人开发的java系统,就必须借助一些TDD手段。我的感觉是,在没有做TDD时,有把握的程度就比用java大 - 从bug发现及修复的量和平均时间上能看得出来。做了TDD之后,就更靠谱了。再说java要想跟ruby一样用rspec的难度,又比ruby难一个层次。
0 请登录后投票
   发表时间:2008-04-18  
自言200801 写道
liusong1111 写道

既然你已经学过ruby了,应该明白想让其他语言做出超越Rails的杀手级应用,语言本身就得足够强。你让java干?累死它。


呵呵,注意,这里的“杀手级应用”也是顺着gigix的话说的,
这个Rails“杀手级应用”是相对于Ruby来说的,
你要放到其他语言相关的平台上与各类应用一比较,就不是“杀手级应用”啦,
因为应用不单单只是web层次(除非你限定只讨论web层次),

其他语言(比如java)都在变,而且背后一般都有个大公司支持,
时间这个因素很重要,就看谁跑得快。
(你觉得一个公司是想把原有积累全新迁移到一个新的平台,还是期望原先使用的语言/平台有所改进呢?)

基于java的框架没在变吗?
请看
主题:Warp framework - 一个相当有前途的Java轻量级Web开发框架

http://www.iteye.com/topic/168780


这个贴恰好是robbin发的,他在第5页的回贴中也表明了他对warp和rails对比中的态度。
我指的杀手级应用,就是在WEB开发领域,warp和rails都是这个领域。
你说其他语言(java)都在发展,我等了她好几年,失望了,分手了。对这个老情人,目前也看不到未来,所以也没啥好留恋滴。warp据评论(我没了解)也只是恰好充份发挥了java语言的优势,但java语言本身的底牌就不多。如果考虑公司原有积累,或开发者的知识构成,或是特定的需求,或其它原因,自然并不是非要用ruby/rails。这些需要单个情况展开讨论,同样需要有实践经验的人来说,而不是想当然的把怀疑当作结论。
0 请登录后投票
   发表时间:2008-04-18  
另外楼上有人说学习ruby要相比c和java难,我不太同意。完全精通ruby大概要难于java,但上手绝对比java快,很快就能写出与java同等质量的代码。ruby提供了一种可能,让开发者在技能更熟练时开发效率、代码质量和可读性更高,但并不是说新手的代码就比java差了。而且开发rails应用并不需要开发者精通ruby语言的角角落落,例如,我们就从来没用到ruby的throw/catch语法。
0 请登录后投票
   发表时间:2008-04-18  
关于系统设计,用哪种语言和框架都需要。
不同的是,由于像java这样的语言很是限制人们的思路,所以很多时候设计者很难说他的方案是充分将需求映射到语言实现上,还是为了妥协编译器 - 即所谓的“非关键复杂性”。很多设计/实现模式的应用,对于java都要正襟危坐大模大样的规划一番,而ruby由于有强大的能力,可以提供许多类似“微模式”的东西,使你在应用模式时相当自然。甚至你不会想到它是什么设计模式,以前学习java在实现GOF设计模式时,经常想,这不是语言本身应该解决的吗?是不是因为语言层面解决不了,框架也帮不上什么忙,还总是需要某些套路,才提的设计模式这个词?现在ruby做的更好,允许人们能在更高层面上思考问题,而rails框架也省却了对于java web选型的很多问题。
我不是说用了ruby就不需要设计,它仍然很重要。但实现方式解放设计思路,这是种自底向上的解放。
举个例子,你在应对某个需求时,考虑了使用某个设计模式,但同时要考量它的代码量(成本),是不是过度设计了(维护性),等等。。。 假如代码量几乎为零,设计方案的升级或降级足够容易的话,决策起来就方便多了。ruby这方面不是完美的,但相比java强的太多了。

我看过的java代码,无论是经典的开源项目,还是普通的公司产品,不管设计得多么完美,代码多么考究,只要你用ruby的角度思考,就会沮丧的发现,想让它在代码质量、可维护性、可读性上再上升一个层次已经不可能了,而ruby给你这种可能性。这就是语言的能力。同样类比java程序员在摆脱C语言野指针时的心情,或对于一个通信协议处理程序,C程序员看到其它人的erlang实现代码时。

--
halfmile在二楼已经表明了相同的观点。
0 请登录后投票
   发表时间:2008-04-18  
liusong1111 写道
我看过的java代码,无论是经典的开源项目,还是普通的公司产品,不管设计得多么完美,代码多么考究,只要你用ruby的角度思考,就会沮丧的发现,想让它在代码质量、可维护性、可读性上再上升一个层次已经不可能了,而ruby给你这种可能性。这就是语言的能力。同样类比java程序员在摆脱C语言野指针时的心情,或对于一个通信协议处理程序,C程序员看到其它人的erlang实现代码时。

你说这话勾起了我的一些回忆
“JRuby和XRuby都是用Java实现的” => 10年前人们说“Java编译器不还是用C实现的吗”
“Ruby的性能和可靠性问题” => 10年前人们说“Java的性能根本不能用在工业级环境”
幸亏我这个人记性不是特别差
0 请登录后投票
   发表时间:2008-04-18  
gigix 写道
liusong1111 写道
我看过的java代码,无论是经典的开源项目,还是普通的公司产品,不管设计得多么完美,代码多么考究,只要你用ruby的角度思考,就会沮丧的发现,想让它在代码质量、可维护性、可读性上再上升一个层次已经不可能了,而ruby给你这种可能性。这就是语言的能力。同样类比java程序员在摆脱C语言野指针时的心情,或对于一个通信协议处理程序,C程序员看到其它人的erlang实现代码时。

你说这话勾起了我的一些回忆
“JRuby和XRuby都是用Java实现的” => 10年前人们说“Java编译器不还是用C实现的吗”
“Ruby的性能和可靠性问题” => 10年前人们说“Java的性能根本不能用在工业级环境”
幸亏我这个人记性不是特别差

嘿嘿。俺的记性也不比某些人差的。记得当年某人可是很粉C++的。这世界变化快呀。
0 请登录后投票
   发表时间:2008-04-18  
ajoo 写道
gigix 写道
liusong1111 写道
我看过的java代码,无论是经典的开源项目,还是普通的公司产品,不管设计得多么完美,代码多么考究,只要你用ruby的角度思考,就会沮丧的发现,想让它在代码质量、可维护性、可读性上再上升一个层次已经不可能了,而ruby给你这种可能性。这就是语言的能力。同样类比java程序员在摆脱C语言野指针时的心情,或对于一个通信协议处理程序,C程序员看到其它人的erlang实现代码时。

你说这话勾起了我的一些回忆
“JRuby和XRuby都是用Java实现的” => 10年前人们说“Java编译器不还是用C实现的吗”
“Ruby的性能和可靠性问题” => 10年前人们说“Java的性能根本不能用在工业级环境”
幸亏我这个人记性不是特别差

嘿嘿。俺的记性也不比某些人差的。记得当年某人可是很粉C++的。这世界变化快呀。

没错。当你粉了C然后不得不用C++,再粉了C++又不得不用Java之后,你就会明白这种事情过去是现在是将来也是会不断发生的。抱着一个东西喜欢得死去活来的,到头来人家自己都不玩了你还舍不下呢。
0 请登录后投票
   发表时间:2008-04-18  
gigix 写道
引用
然后你再在Ruby语言解析器的性能、稳定性上大作文章,
这样就从底层实现上波及所有ruby有关的应用开发,只要Rails还在Ruby语言解析器上跑,自然也被拖进泥潭啦。

这个话说得就很外行。解释器(不是解析器)做得不好是可以改进的,C-Ruby(就算真的)做得不好可以在CLR或者JVM上面做,性能不好可以做JIT编译。只要语言确实好,有杀手应用,这些底层的问题都有办法解决。而且我说的这些东西,都是已经或者正在发生的。至于说什么Mats的解释器里写了多少多少行的C程序,第一他做的是语言不是应用,第二那正好说明人们需要高级的语言,比如XRuby和JRuby的情况就比他好得多。


我觉得吧,你那么聪明的人这就给他绕进去了.

引用
parse.c有1万多行
eval.c也有1万多行

process.c parse.y string.c io.c regex.c等等也是N千行,


用C写,一个冒泡多少行?一个快排多少行?


然后你再在Ruby语言解析器的性能、稳定性上大作文章, 


给你100个人名排序,写个冒泡核算呢?还是写个快排核算?



0 请登录后投票
论坛首页 编程语言技术版

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