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

我喜欢Ruby的原因

浏览 68478 次
精华帖 (0) :: 良好帖 (12) :: 新手帖 (0) :: 隐藏帖 (2)
作者 正文
   发表时间:2008-04-23  
mcpssx 写道
liusong1111 写道
rubynroll 写道
1. 就算匿名类可以实现类似闭包的效果,就像gigix说的,10行代码和1行代码的区别. 而且这一行是优雅自然的代码. 这就是一个巨大的进步.



为了对前面的讨论有个交待,mcpssx须给出用java5怎么实现那个功能。是不是多一行类定义就能搞定,用JGL、common collection都行。


forEach(arr, IEach);


class DoubleImpl implemention IEach {
   public double handle(double i) {
      return i*2;
   }
};

forEach(arr, new DoubleImpl());


多了一行定义类的doubleImpl


发现gigix前面的代码也不是正宗ruby代码。
除了类定义那行,和一堆大括号,这行 public double handle(double i) { 就不算代码啦?

0 请登录后投票
   发表时间:2008-04-23  
那么你上面那段php程序如何保证一次请求结束后数据库肯定能关闭呢?是每进程一长连接模式吗?需不需每个php页面都调这两个方法?
如果java早点提供closure,ajoo老大也不会有这篇《你擦了吗?确定擦了?真的确定擦了?》:
http://www.iteye.com/topic/13649


引用
php、ruby似乎有个共同点,创始人都是业余的,语言和库都有点“补丁化的味道”,杂乱就是啦。


php我不了解,ruby语言哪点是“补丁化的味道”,哪点杂乱,还得细细说。倒是一些主流语言,一点决策失误,就背上了历史的包袱,要保证兼容,就得补丁着来。

引用
php、ruby/Rails都是鼓励“个人英雄主义”的,巴不得一个项目只要一个人就能搞定,
对于开发速度、部署来说,php还是快一点的,以前写PHP时,写完直接刷新浏览器看看就行啦,从不写什么单元测试的。


ruby/rails的这种鼓励,是哪些方面体现出来的?开发速度是rails快还是php快,我没有经验。你做这个结论是依据什么?写php和rails程序的个人经验吗?
至于写完直接浏览器就看,不止rails可以,连java多数情况也可以 -- 只要你不删除方法。


引用

10行代码和1行代码的区别,这种比较没什么意义的,就像输出个“hello world”一样。

这没有区别,是指因为像"hello world"吗?那么在一个大型工程里,它如果仍有1行代码顶10行的能力,有意义不?

引用
语法的简洁有时是以牺牲性能换来的,特别对于解释性的语言。

你这个“有时”用的好,虽然我有时也用“有时”,还得表示钦佩。暗示了语法简洁性和性能存在某种联系。真的是这样吗?

引用
等等吧,2009年java就会有closure啦,closure不光是用来写出简短的代码,还为多核时代的到来做准备。
c ruby的实现貌似不用本地线程,

另外,也请关注一下Scala及基于Scala的lift(一个号称比Rails还牛B的web框架)

等着看历史的发展吧,其实工业界更偏爱静态类型编译语言。

已经等不起了,就算java提供了closure,看前面的示例代码,就没有用的欲望。何况那么多ruby特性它都没有(连计划都没有)提供。做Web开发也不用关心线程的问题 - Rails甚至不是线程安全的。

Scala是个有趣的语言,不过它的一些语法我在怀疑在工业应用(比如Web开发领域)上的有效性,Rails在Ruby的Web框架中也不能算实现的最优雅的,只是最成熟的。
工业界的偏爱在悄悄改变。
0 请登录后投票
   发表时间:2008-04-23  
引用
ruby真么实现了,无非就是没有类定义那行,直接就可以传递execute这个函数过去了


引用回贴的时候JE居然出了超人页面。。。

那么,请你用ruby实现一下吧。
0 请登录后投票
   发表时间:2008-04-23  
mcpssx 写道
Example Algorithms1.java
// Copyright(c) 1996,1997 ObjectSpace, Inc.
import com.objectspace.jgl.*;
import com.objectspace.jgl.algorithms.*;
import com.objectspace.jgl.functions.*;

JGL
    Array array1 = new Array();
    array1.add( "cat" );
    array1.add( "monkey" );
    array1.add( "goat" );
    Applying.forEach( array1, new PrintFunction() );


class PrintFunction implements UnaryFunction
  {
  public Object execute( Object object )
    {
    System.out.println( "PRINT " + object );
    return null; // Not used.
    }
  }




你贴的这段代码难道真是为了佐证ruby的表现力有多强吗?
好人啊~

我现在在怀疑跟一个连ruby的closure都不会用的人大谈ruby怎么行怎么不行,这种感觉很不好,原谅我作为一个普通的人类的龌龊的想法吧。
0 请登录后投票
   发表时间:2008-04-23  
mcpssx 写道
Web开发中,闭包的影响力可能没那么大。我不懂php,想问问没有闭包的php是怎么处理数据库连接的打开关闭的。
闭包的威力更多表现在逻辑处理和框架级上。我们的逻辑代码就大量(很自然的)用了它。没有它会是灾难。
======================================================
直接就是mysql_close吧,

你这个跟闭包没多大关系,无非是个资源管理,

C++说的RACC(可能单词有误)的问题,

处理这个C++的析构函数是最强,
.net的using语句
python和boo语言的with语句

都可以确保关闭资源



太多类比了,已经确认你知道C++,.net(C#吧?),python,boo。咱先不说这些东西在功能上的不同,单说它们对于其语言有没有意义?
0 请登录后投票
   发表时间:2008-04-23  
引用
你这个跟闭包没多大关系,无非是个资源管理


对,十分以及完全正确,从需要实现的功能来说,就是资源管理。
不一定非要用闭包实现。现在的问题是,对于这个确定的需求,怎么实现呢?实现成本有多高?维护成本有多高?性能成本有多高?扩展成本有多高?
0 请登录后投票
   发表时间:2008-04-23  
引用
语法的简洁有时是以牺牲性能换来的,特别对于解释性的语言。

有一个经验,我在JavaEye分享过几次,现在可以再分享一次:如果一个人想说一个软件有问题但又说不出来到底有什么问题,他就会说这个东西有性能问题。只要你听到别人跟你说某某东西有性能问题,你就不妨先大胆假设他压根就弄不清到底有什么问题,十次有九次都是准的。

开一个HTTP连接要几十毫秒,访问一下数据库又是几十毫秒,这个时候你跟我说Ruby作为一种解释性语言会牺牲性能,huh?这个,基本上,就跟十年前人们说Java的性能问题一样,可笑。
0 请登录后投票
   发表时间:2008-04-23  
自言200801 写道
呵呵,跟liusong1111讨论问题挺有趣的,

好吧,我准备复习一下ruby(一年没看啦),陆陆续续来这探讨一下(最近家事繁忙),
还有<<应用RAILS进行敏捷WEB开发>>第一版这本书过时了没有?(2007年6月30号才买的),
上回在“我开始不喜欢ruby了”里http://www.iteye.com/topic/180517?page=7
想把<<PROGRAMMING RUBY中文版:第2版>>
<<应用RAILS进行敏捷WEB开发>>第一版
转让给别人,过了这么久了,没一个人想要的。


我认识的好多用ruby的人,都埋头做他的事。就我耐不住性子跳来跳去的,看看自己都无聊,今天已经被同事BS好几次了。
要是你有时间进行广泛研究还不错,要是就为了讨论而回头复习ruby,我有点无语。
似乎你有大片时间做研究,欢迎分享你的经验。

<<应用RAILS进行敏捷WEB开发>>第一版从Rails框架的发展上说有点过时,从理解Ruby能力来说不过时。



0 请登录后投票
   发表时间:2008-04-23  
liusong1111 写道
我认识的好多用ruby的人,都埋头做他的事。就我耐不住性子跳来跳去的,看看自己都无聊,今天已经被同事BS好几次了。
要是你有时间进行广泛研究还不错,要是就为了讨论而回头复习ruby,我有点无语。
似乎你有大片时间做研究,欢迎分享你的经验。

<<应用RAILS进行敏捷WEB开发>>第一版从Rails框架的发展上说有点过时,从理解Ruby能力来说不过时。

赞同
Ruby和Rails这东西,没什么好研究的
我用一周业余时间做了一个网站
我们几个同事用周末两天时间又做了一个网站
它就是用来做东西的
就算大道理讲得再有道理
我用J2EE从来没法两天就做出一个崭新网站的
所以这种东西就是自己去体会,好用就用,不好用就拉倒,没啥研究头
0 请登录后投票
   发表时间:2008-04-23  
自言200801 写道
我有<<PROGRAMMING RUBY中文版:第2版>>、<<应用RAILS进行敏捷WEB开发>>各一本,
9成新,谁要? 我愿6折转让。

因为去年想跟dreamhead讨论XRuby的问题,所以就买了上面两本书来看。

我只看了一个星期,
<<PROGRAMMING RUBY中文版:第2版>>我看了大部分(第4部分没怎么看),
<<应用RAILS进行敏捷WEB开发>>看了100多页。

我没用RUBY、RAILS做过商业项目,
不过我写过PHP+JS+CSS+HTML+PL/SQL(Oracle)这样的商业项目,代码(包括HTML)全都是人肉敲入的,
有两个这样的商业项目代码量都超过15万行,而且项目几乎都是我一个人完成,
最多不超过3个半月就完成了,开发效率比写JSP高,部署只要把代码放到服务器的相应目录下就行了,简单得很,
但是,现在我非常讨厌去看以前的PHP代码(当然我的代码注释也很多),别人也不愿意去改。

你知道PHP访问数据库有多少种方法吗?

我看Ruby时看到了PHP的影子,做一件事有很多种方式,每人按自己喜欢的方式去做,谁都不想去看谁写的代码。


我通过链接看到你以前的贴,我记性不好(这也是我为什么用ruby的一个原因,它适合像我这种脑容量不足的人)。你没用ruby、rails做过商业项目。我猜你连一个简单的rails demo都没跑过,不然也不会怀疑Rails会有 “PHP访问数据库有多种方法”的问题。碰巧的是,你这里也提到访问数据库,我前面还提出这个问题呢。关于做一件事有多种方式的观点,我前面说过了。以我们现在的情况,很明显Rails不是"write-only"型的。



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

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