`
halfmile
  • 浏览: 12002 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

我喜欢Ruby的原因

阅读更多
刚看到“姜太公”说开始不喜欢Ruby,读了一遍帖子,觉得。。。青菜萝卜各有所爱吧。

本想跟贴讨论,但觉得那样的争论很无谓,毕竟代码说明问题

Java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test 
{
    public static void main(String[] args)
    {
        try {
            BufferedReader in = new BufferedReader(new FileReader("test.txt"));
            StringBuffer sb = new StringBuffer();
            String str;
            while ((str = in.readLine()) != null) 
              { sb.append(str + "\n"); }            
            in.close();
            String result = sb.toString();
            Pattern sentencePattern = Pattern.compile("(.*?\\.)\\s+?");
            Pattern javaPattern = Pattern.compile("Ruby");
            Matcher matcher = sentencePattern.matcher(result);
            while (matcher.find()) {
                String match = matcher.group();
                Matcher matcher2 = javaPattern.matcher(match);
                if (matcher2.find())
                    System.err.println(match);
            }
        } catch (IOException e) 
          {
            e.printStackTrace();
          }     
    }
}


Ruby
File.read('test.txt').scan(/.*?\. /).each { |s| puts s if s =~ /Ruby/ }


这个可能不怎么说明问题。在程序里面,经常会用到xml数据容器,那么

要表达:

  <node name="a">
      <node name="b">
          <node name="d"/>
          <node name="e"/>
      </node>
      <node name="c">
          <node name="f"/>
          <node name="g"/>
          <node name="h"/>
      </node>
  </node>


*在 Java 里*

Tree a = new Tree("a");

Tree b = new Tree("b");
Tree c = new Tree("c");
a.addChild(b);
a.addChild(c);

Tree d = new Tree("d");
Tree e = new Tree("e");
b.addChild(d);
b.addchild(e);

Tree f = new Tree("f");
Tree g = new Tree("g");
Tree h = new Tree("h");
c.addChild(f);
c.addChild(g);
c.addChild(h);


* 在 Ruby 里 *
tree = a {
            b { d e }
            c { f g h }
          }


这里例子都是搬来的,更多在http://www.rubyrailways.com/sometimes-less-is-more
分享到:
评论
150 楼 zsbfree 2008-04-25  
偶看了几天,觉得很是无聊。偶现在从事asp.net。但是用过rails后就不想再用asp.net,个中原因我就不说了。其实大家争论的一个焦点是: rails到底有没有前途。无论是攻击还是嘲讽!!!,我个人希望攻击的人有空去学习下,自己去做一个小网站,亲身体验下。没有调查就没有发言权。这句话在计算机学科也适用。至于robbin,我个人感觉他太过于激动了。他根本就没有必要加入这场争论。就算以后不用rails,我个人觉得学习也是大有益处的。
还有几个人,不要攻击rails了,你不学习有你的自由。我学习有我的自由。知之为知之,不知为不知。
149 楼 liusong1111 2008-04-25  
crazy.j 写道
这样吵有何意义呢。。最终能有个啥结果?有这些时间还不如跟MSN,QQ上的姑娘调侃几句。。。。每天工作就够紧张的了,还在网上吵架。累!!

这位仁兄,说到心坎里去了~ 有您这觉误的早都不这儿混了,剩下的人,你也救不过来。我劝你还是抓紧拯救MSN、QQ上那些失足女青年吧。我随后就到。

mcpssx 写道
2,PHP将占据WEB开发的主流。

中国法律保护宗教信仰,咱也得尊重下个人信仰。

mcpssx 写道
我更倾向ruby将成为下一个C++,同样都是特性最多,同样都是麻烦最多。


mcpssx 写道
有一种语言,叫C++,它包含了无数特性,总有人说可以合适裁剪,结果大多以一团浆糊搞终?
还有一钟perl语言,其实你要规范的写也不是很难懂的!

你这两句话算是有理有据了,就不能算信仰了。

是凡对ruby学过一段时间的人都会知道,使用ruby的一个极小的语法集合,就可以完成所有事情。只是写出的东西,如同逐行逐行映射的java代码(有gc,所以不要对比c++了,即便这样,很多时候也会比java更简炼)。比如,想取到数组中大于3的元素,就算不知道Enumerable#select,甚至不知道each,仍然可以for in或while。代码是:
arr = [5,3,2,7,9]
result = []
for item in arr
  if item > 3
    result.push(item)
  end
end

当然,常规做法是:
arr = [5,3,2,7,9]
result = arr.select{|item| item > 3}


要使c++干所有它能干的事,也可以只利用它的最小语法集,但你评估一下它的这个“最小语法集”,跟ruby的比起来,是什么一种规模。
借你的逻辑,我还可以说,java这么多类库,同样是麻烦最多,总有人说可以合适裁剪,结果大多以一团浆糊告终。
(我上面的代码,同样说明了ruby表象上有多种途径,实则通常只有一种最优方案的一方面原因:最小接口和人本接口的对应关系;即,用最小接口,你得到的是接近java的代码质量,用人本接口,你得到的是java不能企及的更进一步的代码质量)

所以,我还是怀疑你对ruby了解多少,这么不靠谱的类比都能打得出来。别人不回复,因为实在没有义务去解释这些东西。就算你只是稍稍了解ruby,也不至于不明白这一点吧!

再说你perl语言的暗示,以这个思路,我可以说,还有一种c++语言,其实你处理好指针就不会有内存泄漏的!
原来只要规范的写就不难懂?
那么,还拿你前面的例子,用java5及以上,是:
Array ar = new Array("1","2","3");   

请你用jdk1.4及以下,规范的写出比上面代码不难懂的出来,参照你以前的代码:
Array array1 = new Array();  
array1.add( "cat" );  
array1.add( "monkey" );  
array1.add( "goat" );  



上面这些不着地的广泛联想/类比,如果以一种疑问的口气提出,互相讨论正常不过。偏偏非要用这种断定的口气,而且还要把它作为依据扩散成全局的致命问题,为什么非要这样呢?
网络安全上,攻击者可以用任意一种他喜欢的手段去攻击,而防范者却需要防范他所能预料到的所有攻击手段。
而这种不着地的广泛联想,如同一个网络攻击者,可以漫无边际,信手拈来,五花八门,奇思异想。有多少干实事的人有这闲情逸致跟你胡掰呢?
但是,以讹传讹的力量是巨大的。后面这个跟贴就是例证:

seemoon 写道
mcpssx 同学落不落伍不是这么说,如果某个人没有用ror就落伍这个帽子可就扣大发了,mcpssx的见解对于讨论还是有那么些帮助,我很认同他说的“不适合大型开发项目”这个观点,因为大型开发项目一个标准就是人多,拿很灵活的东西来让很多有各种不同思想的人来一起搭出一个作品,其难度如何相信这点道理不用去用 ruby你就能估计得到,而且ror目前只是在一些互联网应用上面表现出其高的生产效率,如何逐步的通过社区、业界、客户来一起往成熟的阶段推进仍需要努力,java庞大的体系,如目前的SSH体系,相对于ror来说,不是劣势而是优势,在分层协作上面起码优于ror,这点robbin在讨论充血贫血 model的时候有过体会,因为其中包含很多模式方法论的东西。事在人为,我相信r社区也可以朝着自己的方向走出自己一条道路来。


难道不用去了解ruby,就可以评估这种灵活性带来的正面和负面影响吗?
“这点道理”有什么道理?
如果单凭“灵活性”这个字眼做类比,我可以类比出一堆完全正面的例子,也可以类比出一堆完全负面的。

“SSH在分层协作上面起码优于ror”,终于看到有技术方面的东西了,具体点。就好像ruby/rails就没有模式和方法论了。

而且,seemoon是典型的有意把纯技术问题和非技术问题掺在一起说的人。我认为这两方面区别很大,讨论过程应采取不同的方式和视角。



148 楼 potian 2008-04-25  
ajoo 写道
要是让我说我为什么喜欢ruby,closure可能是马上会从脑子里跳出来的咚咚。不知道为什么,好像别的特性都无法说服自己why ruby。

ruby的everything is a statement对我这种不可救药的形式主义者也很有吸引力,我喜欢语言有一个大一统的抽象模型,而不是象c++那样spec里面充满了if-else。

但是始终不是很喜欢open class和一些meta programming的功能,比如define_method什么的,感觉太hack了,确实有不好维护的感觉和担忧。

——————一个二把刀的自白






有是有一点的,但Objective-c也一样 open class,mata programming也很强,苹果用得好好地

要说meta programming ,LISP有过之无不及,Yahoo当年就是买了Paul Graham的web store(?),大发其财,也算是互联网上电子商务开山之作之一了

什么刀要看什么人拿的,拿不好的刀越锋利就越伤自己,拿的好的刀越锋利越好使

不要没拿就害怕,拿拿这样的刀你还不是手到擒来,呵呵

147 楼 crazy.j 2008-04-25  
这样吵有何意义呢。。最终能有个啥结果?有这些时间还不如跟MSN,QQ上的姑娘调侃几句。。。。每天工作就够紧张的了,还在网上吵架。累!!
146 楼 seemoon 2008-04-25  
robbin 写道
这都哪跟哪阿?都什么逻辑阿?

某人说PHP有很多开源的小型web软件很流行,而Rails没有这么流行的小型web软件;

我说自己架设独立小型web软件时代过去了,现在流行的是基于开放平台开发web应用,在这方面,Rails现在比PHP的成功案例要多;

你老兄就给扯到了单打独斗搞千万流量网站的时代已经过去了,还扯论坛毛头小子的学习困惑问题上了;

就不说你观点是否正确,我就说我不明白你的回贴和我上面的帖子有什么逻辑内在联系性,跑题也不是这么跑的吧? 程序员起码的逻辑思维能力阿,同志哥。


robbin,别急,我说的ror的优势在于网站的快速开发,是不是跟题目有关呢?LZ提的是喜欢ruby,ror难道不是ruby上的框架?ruby不是因为ror这个不错的框架而得到瞩目?你说的跑题我不认同;说到刚毕业的学生,难道“我喜欢ruby的原因”不正是一种选择吗?对于刚进入社会要选择一门语言来加入IT大军的人来说,选择不也很重要?喜欢难道不是选择的理由之一吗?

讨论问题形式应该是开口的,讨论的态度应该是开放的,这样可以得到好的讨论结果,以为然否robbin大侠?
145 楼 seemoon 2008-04-25  
mcpssx 同学落不落伍不是这么说,如果某个人没有用ror就落伍这个帽子可就扣大发了,mcpssx的见解对于讨论还是有那么些帮助,我很认同他说的“不适合大型开发项目”这个观点,因为大型开发项目一个标准就是人多,拿很灵活的东西来让很多有各种不同思想的人来一起搭出一个作品,其难度如何相信这点道理不用去用ruby你就能估计得到,而且ror目前只是在一些互联网应用上面表现出其高的生产效率,如何逐步的通过社区、业界、客户来一起往成熟的阶段推进仍需要努力,java庞大的体系,如目前的SSH体系,相对于ror来说,不是劣势而是优势,在分层协作上面起码优于ror,这点robbin在讨论充血贫血model的时候有过体会,因为其中包含很多模式方法论的东西。事在人为,我相信r社区也可以朝着自己的方向走出自己一条道路来。
144 楼 robbin 2008-04-25  
这都哪跟哪阿?都什么逻辑阿?

某人说PHP有很多开源的小型web软件很流行,而Rails没有这么流行的小型web软件;

我说自己架设独立小型web软件时代过去了,现在流行的是基于开放平台开发web应用,在这方面,Rails现在比PHP的成功案例要多;

你老兄就给扯到了单打独斗搞千万流量网站的时代已经过去了,还扯论坛毛头小子的学习困惑问题上了;

就不说你观点是否正确,我就说我不明白你的回贴和我上面的帖子有什么逻辑内在联系性,跑题也不是这么跑的吧? 程序员起码的逻辑思维能力阿,同志哥。
143 楼 seemoon 2008-04-25  
robbin 写道
mcpssx 写道

你这个呢,在政治论坛上叫“PG决定立场”,在股票论坛叫”仓位决定态度“,

你看股票论坛里面喊多的一定满仓的多,喊空的一定是空仓的多。

现在rails又不是一种强势技术,不像用java,.net并不取决于开发者,所以认为他不好的自然观望了。

你说“我期望的形式是:观望的人提出疑问,学习/使用者分享经验,实际使用的人分享一些实战经验。”

而我的态度就是希望用rails能更快,更好的搞出几个ruby版本的discuz,phpnuke,wordpress之类的,

否则总是天天说闭包,open class就是好,就是好,那能说明什么呢?


你老兄实在有点落伍了,现在的互联网已经是开放平台的时代了,不是自己架一个小论坛,小博客的时代了。你不妨去看看Friends Sale 这种两个人在业余时间用Rails三个月开发出来的应用,是如何在半年时间成为每天1000万PV的大网站的吧。


robbin,在中国,靠几条人拉一小笔钱整起一个千万流量网站的时代已经过去了,你说的是中国十几年前的往事,ror火的一个原因就是能够重新激发这种梦想,但是不要成天还在梦中,所以说选择一门语言的目的是什么这要搞清楚,是兴趣?爱好?为了生活?为了创业?记得论坛里头有刚毕业的毛头学生问,“我学了java,但是我又很喜欢ruby,请问各位前辈xxx”这种类型的,我觉得看了这篇长篇巨贴,又得需要好好面壁一下去做个取舍选择了。
142 楼 leondu 2008-04-25  
robbin 写道
mcpssx 写道

你这个呢,在政治论坛上叫“PG决定立场”,在股票论坛叫”仓位决定态度“,

你看股票论坛里面喊多的一定满仓的多,喊空的一定是空仓的多。

现在rails又不是一种强势技术,不像用java,.net并不取决于开发者,所以认为他不好的自然观望了。

你说“我期望的形式是:观望的人提出疑问,学习/使用者分享经验,实际使用的人分享一些实战经验。”

而我的态度就是希望用rails能更快,更好的搞出几个ruby版本的discuz,phpnuke,wordpress之类的,

否则总是天天说闭包,open class就是好,就是好,那能说明什么呢?


你老兄实在有点落伍了,现在的互联网已经是开放平台的时代了,不是自己架一个小论坛,小博客的时代了。你不妨去看看Friends Sale 这种两个人在业余时间用Rails三个月开发出来的应用,是如何在半年时间成为每天1000万PV的大网站的吧。



赞同这个,同时注意一下随着AWS、google appengine、以及Facebook等“平台”概念的推出,RoR这类快速开发的框架作为粘合剂的地位将会越来越重要。
141 楼 robbin 2008-04-25  
mcpssx 写道

你这个呢,在政治论坛上叫“PG决定立场”,在股票论坛叫”仓位决定态度“,

你看股票论坛里面喊多的一定满仓的多,喊空的一定是空仓的多。

现在rails又不是一种强势技术,不像用java,.net并不取决于开发者,所以认为他不好的自然观望了。

你说“我期望的形式是:观望的人提出疑问,学习/使用者分享经验,实际使用的人分享一些实战经验。”

而我的态度就是希望用rails能更快,更好的搞出几个ruby版本的discuz,phpnuke,wordpress之类的,

否则总是天天说闭包,open class就是好,就是好,那能说明什么呢?


你老兄实在有点落伍了,现在的互联网已经是开放平台的时代了,不是自己架一个小论坛,小博客的时代了。你不妨去看看Friends Sale 这种两个人在业余时间用Rails三个月开发出来的应用,是如何在半年时间成为每天1000万PV的大网站的吧。
140 楼 rubynroll 2008-04-25  
potian 写道
我的偶像DMR有这些看法:
引用

........
问:您对面向对象是怎样理解的?它是不是一种好的可接受的编程思考方式?有没有学习OO必须的有用的
工具?
D M R:我看过OO的东西但我现在还不是OO迷。这种思想是非常好的,也即是通过隐藏任务的执行来定义
界面,但是它可能做得有点过火;它以很难发现工作本质的程序终结;它的所有的东西就是界面。
问:您能对IT的将来做一下预测吗?将来我们最有可能用什么语言?
D M R:我对预测不在行,但是很明显,人们正在从象C语言之类的直接编译型语言,转换到注重解释性的
语言,象某些脚本语言。
.........


其实我很多次对一种语言总都会有听说,尝试,热情,长时间使用,厌倦,放弃的过程,包括那些用了10几年的语言

除了Basic,我从来没有一开始就讨厌过一种语言,不过现在已经忘了为什么讨厌了

不妨多看看,多接受点新东西,有人热爱的语言必然会有他很强的地方,也不妨在热爱一种语言的时候听听别人的讨厌

事实上,越是有人强烈喜欢的东西肯定越有人强烈讨厌,譬如香菜,譬如榴莲,譬如臭豆腐....



同感,譬如ruby,用了才1年多,热情刚刚被挑起,如果我期望的东西没有到来,估计我不会用它超过5年。我现在是强烈的喜欢ruby同时强烈的讨厌ruby的某些东西,呵呵~




139 楼 ajoo 2008-04-25  
要是让我说我为什么喜欢ruby,closure可能是马上会从脑子里跳出来的咚咚。不知道为什么,好像别的特性都无法说服自己why ruby。

ruby的everything is a statement对我这种不可救药的形式主义者也很有吸引力,我喜欢语言有一个大一统的抽象模型,而不是象c++那样spec里面充满了if-else。

但是始终不是很喜欢open class和一些meta programming的功能,比如define_method什么的,感觉太hack了,确实有不好维护的感觉和担忧。

——————一个二把刀的自白




138 楼 potian 2008-04-25  
我的偶像DMR有这些看法:
引用

........
问:您对面向对象是怎样理解的?它是不是一种好的可接受的编程思考方式?有没有学习OO必须的有用的
工具?
D M R:我看过OO的东西但我现在还不是OO迷。这种思想是非常好的,也即是通过隐藏任务的执行来定义
界面,但是它可能做得有点过火;它以很难发现工作本质的程序终结;它的所有的东西就是界面。
问:您能对IT的将来做一下预测吗?将来我们最有可能用什么语言?
D M R:我对预测不在行,但是很明显,人们正在从象C语言之类的直接编译型语言,转换到注重解释性的
语言,象某些脚本语言。
.........


其实我很多次对一种语言总都会有听说,尝试,热情,长时间使用,厌倦,放弃的过程,包括那些用了10几年的语言

除了Basic,我从来没有一开始就讨厌过一种语言,不过现在已经忘了为什么讨厌了

不妨多看看,多接受点新东西,有人热爱的语言必然会有他很强的地方,也不妨在热爱一种语言的时候听听别人的讨厌

事实上,越是有人强烈喜欢的东西肯定越有人强烈讨厌,譬如香菜,譬如榴莲,譬如臭豆腐....
137 楼 liusong1111 2008-04-25  
引用
其实我的看法也很简单,我对这些语言啊,这个少了一点,那个多了一点代码根本就不是太感兴趣,
所以说过去我对java的什么webwork,spring,hibernate没有什么好感,现在也对是不是有闭包啊,open class也没什么兴趣。
因为web开发根本就不需要这些东东啊!

世界现在就有一个对照模型,这就是php啊,比如discuz就是开源的,
那么只要rails界能够展现出一个更快更好的论坛实现,那就是最大的说服力!

否则天天说ruby闭包比php省了多少代吗,open class又比php如何可维护了,
什么TDD啊等等

我最关心的就是这么多先进的东西诞生了什么先进的成果?


哦,真是不打算回应了。已经从“技术领域”的讨论成功脱身到“非技术领域”。
再次脱身的话也很多,“其实哪种语言都有它的特点,以我会xx、yy、zz等800多种语言作为担保,讨论来讨论去没有意义”,“扯那么多干嘛,其实语言只是工具,产品市场才是重要的,一个程序员应该关注它的管理能力,老编码有什么前途”。。。

136 楼 liusong1111 2008-04-25  
liusong1111 写道
引用
我最关心的就是这么多先进的东西诞生了什么先进的成果?

这又是一个现在时态的“非技术问题”。

我都懒得回复了。如果没有先进的成果,说明什么?如果有,又说明什么?


引用
你这个呢,在政治论坛上叫“PG决定立场”,在股票论坛叫”仓位决定态度“,

你看股票论坛里面喊多的一定满仓的多,喊空的一定是空仓的多。


股票俺不大懂,你上面的话我就看不明白了。可我还想拿股票做个类比,可能类比不当。假定ruby目前没有先进成果,类比 还没有人在那支股票上赚到钱,你可以说,看,这支股票不行吧!

反过头来,假如那支股票上已经有很多人赚了大钱,我是不是可以说,看,你们这群后知后觉的人,早就说它行,你不信,呵呵~

“非技术问题”就是这样绕出来的。
我跑回来回贴,就是觉得人为的把这些问题跟纯技术问题绕一块,实在看着不爽~

什么算先进成果? rails框架,好吧,你没有定位成最终成果。那还有什么呢?什么呢?么呢?呢?
请他人接招,困死了,我也没能力回答这个问题。- 我特意避开它。

有与没有,是发展阶段的问题,是提过数次的先发优势和后发优势的区别,终结起来是“非技术问题”。

我之前提过的技术方面的评判原则,以及提出的具体实现问题,你是准备永不回应了吧。
135 楼 liusong1111 2008-04-25  
引用
我最关心的就是这么多先进的东西诞生了什么先进的成果?

这又是一个现在时态的“非技术问题”。

我都懒得回复了。如果没有先进的成果,说明什么?如果有,又说明什么?
134 楼 liusong1111 2008-04-25  
mcpssx 写道
liusong1111 写道
crazy.j 写道
我说句实在话。。。。。。能赚到钱就是好东西

你说的太实在了,你这句话有助于我赚钱不?

对于ruby观望者,首要目标是希望得到全面客观的评估。这里的全面,就不止是技术方面,还有社区商业支持、企业接受情况、适用领域、成熟性稳定性、就业市场、学习成本等非技术方面,从而不仅要对它的现状有所了解,还要对它的未来有个准确的预测,以让自己不至陷入落伍或盲进的境地。
对于ruby学习者或使用者,这些非技术领域或者本来就是见仁见智不太好说清,或者他心里已经有笔账没必要跟其它人说,或者已经处于无法选择而只须面对的境地说了也白说,而且说了还要承担很多责任。对于他们最有意义的是当前的讨论有助于现在的学习或工作。所以,话题就会集中在能着地的点上。

观望者会批评使用者回避那些非技术领域的评估,学习/使用者会批评观望者空对空。

javaeye好几次关于比较ruby语言的贴,普遍现象是观望者充当了批评者,学习/使用者充当了辩护者。
观望者拿质疑作结论是个普遍套路。对真正的使用者来说,一点营养都没有。
我期望的形式是:观望的人提出疑问,学习/使用者分享经验,实际使用的人分享一些实战经验。

非技术领域的评估重不重要?我觉得也相当重要。对于还没接触它的普通人来说,甚至是更重要。
但无论如何,这是两个既有关联又相对独立课题,不能绕一起说,尤其是不能有意绕在一起说。如果非要在一个贴讨论,须先简要声明,以避免误会。



你这个呢,在政治论坛上叫“PG决定立场”,在股票论坛叫”仓位决定态度“,

你看股票论坛里面喊多的一定满仓的多,喊空的一定是空仓的多。

现在rails又不是一种强势技术,不像用java,.net并不取决于开发者,所以认为他不好的自然观望了。

你说“我期望的形式是:观望的人提出疑问,学习/使用者分享经验,实际使用的人分享一些实战经验。”

而我的态度就是希望用rails能更快,更好的搞出几个ruby版本的discuz,phpnuke,wordpress之类的,

否则总是天天说闭包,open class就是好,就是好,那能说明什么呢?










呵呵,这两天因为这个贴都犯了刷屏强迫症了(这个心理学的分析让ranxiang同学给大家转发过来)。
技术方面我就这么多货了。说说我回这个贴的动机:一是不满讨论方式,二是不满误导言论。不反驳它们感觉对自己目前看到的现状交待不过去。我丝毫没有想劝观望者去实践的念头,这不关我事。

从你前面的回贴,我对你回贴的动机更迷糊了。在这个贴子的讨论中,你想得到什么?
要搞出ruby版本的discuz之类,应属于现在时态的“非技术问题”。而想达到这件事,参与本贴讨论显然不可能有帮助。
133 楼 liusong1111 2008-04-25  
引用
3,时间对rails不利,目前国内发展2年任然没有火起来,光看几个ruby论坛就知道人气了

以及后面robbin针对这的回复,都应属于“非技术因素”,应特别标明。

引用
1,类型推导讲削弱动态语言的影响,过去的一个典型就是ocaml,他不需要变量类型声明,却可以取得与C语言同等的效率。现在BOO,C#也开始加入。

AST宏可能会加入,目前D,BOO语言都具有自我扩展语法的能力,虽然还不lisp/scheme那么强大。

这点同意。但这个方向对于一些主流编程语言才刚刚上路,对于另一些还没上路,甚至没有准备上路 - 这是现在时态的非技术因素。

引用
我更倾向ruby将成为下一个C++,同样都是特性最多,同样都是麻烦最多。

又见类比,请列出具体场景。

引用
有一种语言,叫C++,它包含了无数特性,总有人说可以合适裁剪,结果大多以一团浆糊搞终?
还有一钟perl语言,其实你要规范的写也不是很难懂的!

这不是类比,这是暗示。其实ruby广告词好多类似这样写:有一种语言,叫smalltalk,它很OO,ruby也是;有一种语言,叫lisp,它很FP,ruby也是;有一种语言,叫python,它很简炼,ruby也是。。。
暗示嘛,你不是第一个,也必不是最后一个。

。。。。。。
我还是怀疑你会不会用ruby的closure
。。。。。。
(呜。。。我怎么这样啊,人家都用ruby实现分析家公式系统了,而closure在ruby里那么基础。。。)


引用
我觉得最高的就是尽快搞出几个phpnuke,wordpress这样的系统来,否则都是些颠来倒去的分页啊,用哪种应用服务器之类的东西。

这是现在时态的非技术因素。
132 楼 liusong1111 2008-04-25  
引用
吵架的最高境界莫过于贬低对方的为人和水平,他水平那么差,怎么可能做出来好东西?

我和robbin前面的话也有类似意味,我就质疑你的ruby了解程度,就质疑你言论的可信度。难怪mcpssx 终于忍不住报料身世,以正其名。

其实。。。。。。 我还是有怀疑 - 虽然你所列的那两个稀奇古怪的语言我果然没听说过 - 你对ruby到底了解有多少?

为什么针对讨论对象ruby,打死都不肯出一行ruby代码呢?(非要用clipper),也不肯应讨论之需拿出一个能跑通的对应java代码?

讨论过程中,对我提出的“对比语言不应比较是否能实现,而应比较实现的好坏”这一基础,也不作置评。好像是两条线,你说你的,我说我的。整个讨论就没有"辩论达成统一再展开"的过程。

我后面的回复,大概也只能在讨论风格上说说自己的看法。具体问题上,有点着不上力。
131 楼 liusong1111 2008-04-25  
crazy.j 写道
我说句实在话。。。。。。能赚到钱就是好东西

你说的太实在了,你这句话有助于我赚钱不?

对于ruby观望者,首要目标是希望得到全面客观的评估。这里的全面,就不止是技术方面,还有社区商业支持、企业接受情况、适用领域、成熟性稳定性、就业市场、学习成本等非技术方面,从而不仅要对它的现状有所了解,还要对它的未来有个准确的预测,以让自己不至陷入落伍或盲进的境地。
对于ruby学习者或使用者,这些非技术领域或者本来就是见仁见智不太好说清,或者他心里已经有笔账没必要跟其它人说,或者已经处于无法选择而只须面对的境地说了也白说,而且说了还要承担很多责任。对于他们最有意义的是当前的讨论有助于现在的学习或工作。所以,话题就会集中在能着地的点上。

观望者会批评使用者回避那些非技术领域的评估,学习/使用者会批评观望者空对空。

javaeye好几次关于比较ruby语言的贴,普遍现象是观望者充当了批评者,学习/使用者充当了辩护者。
观望者拿质疑作结论是个普遍套路。对真正的使用者来说,一点营养都没有。
我期望的形式是:观望的人提出疑问,学习/使用者分享经验,实际使用的人分享一些实战经验。

非技术领域的评估重不重要?我觉得也相当重要。对于还没接触它的普通人来说,甚至是更重要。
但无论如何,这是两个既有关联又相对独立课题,不能绕一起说,尤其是不能有意绕在一起说。如果非要在一个贴讨论,须先简要声明,以避免误会。

相关推荐

    网友原创系列之Silver_Ruby主题包

    【Ruby语言介绍】 Ruby是一种面向对象的、动态类型的编程语言,由日本人松本行弘(Yukihiro Matsumoto)在1995年设计并创造。...对于那些喜欢Ruby语言的人来说,这样的主题包无疑为他们的编程生活增添了色彩和乐趣。

    Ruby 15天自学教程ppt

    ThoughtWorks的首席科学家、敏捷开发的鼻祖Martin Fowler在博客中曾写到“我的任何一个合格读者都应该知道这几年我已成了一个Ruby爱好者,简洁的语法及优雅的框架使我喜欢上Ruby,它已成为我开发个人项目的首选语言...

    Ruby 自学教程程序源代码

    ThoughtWorks的首席科学家、敏捷开发的鼻祖Martin Fowler在博客中曾写到“我的任何一个合格读者都应该知道这几年我已成了一个Ruby爱好者,简洁的语法及优雅的框架使我喜欢上Ruby,它已成为我开发个人项目的首选语言...

    vim-ruby-refactoring, 在vim中,用于 ruby的重构工具 !.zip

    用于Vim的 ruby-重构工具我喜欢 vim 当我开发软件的时候,它是我的选择编辑器。目前( 至少在过去的4年中) 主要使用 ruby 编程语言。在开发过程中,我一直丢失了一个重构工具,但是我从没有心想过( 就像你在内部找到...

    ruby-rust-interop:展示在 Ruby 运行时中从 Rust 调用基于数字的函数

    ruby-rust-互操作展示在 Ruby 运行时中从 Rust 调用基于数字的函数我希望这些例子能帮助你使用 Rust 设置 Ruby! 所有这些示例都在使用 Ruby 2.1.6 和 Rust 1.0.0-beta.4 的 Windows 上进行了测试如果你克隆 repo,...

    audio-ruby:Ruby 的跨平台音频设备接口

    如果您喜欢处理其中任何一个,我非常乐意接受 Pull Requests! 用法 列出可用的音频设备 音频模块提供了一种方法来检索系统上可用的所有音频设备的列表。 require 'audio' devices = Audio . devices # =&gt; An ...

    vimilicious:用于创建 vim 插件的 Ruby 库

    就像我喜欢和崇拜 rails.vim 一样......你有没有看过源代码? 天啊! 将 ruby​​ 用于一些 vim 脚本或应用程序创建可以使您的生活更轻松。 只有那些使用 ruby​​ 支持编译的 vim 才能利用 vimilicious 或基于 ...

    Combine_pdf:一个纯Ruby库,用于合并PDF文件,数字页甚至更多。

    我喜欢这种宝石,但是我觉得是时候该放弃维护它了,并专注于音乐和其他我想开发的东西。 如果您想加入并最终接手,请打我。 已知局限性 快速淘汰: 阅读PDF表单时,某些表单数据可能会丢失。 我已尽力尝试解决此...

    myGoodiesAutoInstall:我最喜欢的程序的Ruby Auto Installer

    自动安装我的东西一个简单的ruby脚本,它会自动安装一些程序。 该脚本在采用纯格式后非常有用,因为它可以节省一些时间。 试试吧!安装...安装自动构建并运行wget ...

    rubyfmt:Ruby自动格式化程序!

    不,但是距离真的很近我该如何使用建立它: 确保您已安装货物运行make all 将target / release / ruby​​fmt-main复制为rubyfmt到路径上的某个rubyfmt Rubyfmt支持以下CLI调用: &lt;whatever&gt; | rubyfmt &lt;whatever&gt; ...

    小胡子:无逻辑的Ruby模板

    胡子 受和启发,Mustache是​​一种与框架无关的呈现无逻辑视图的方法。 正如ctemplates所说,“它强调... 我喜欢写Ruby。 我喜欢编写HTML。 我喜欢写JavaScript。 我不喜欢编写ERB,Haml,Liquid,Django模板,将Ru

    实例解析Ruby程序中调用REXML来解析XML格式数据的用法

    我有这样的问题:我不喜欢令人困惑的 API。有几种用于 Java 实现的 XML 解析器 API。其中大多数都遵循 DOM 或 SAX,并且在基本原理上与不断出现的众多 Java API 非常相似。也就是说,它们看 上去象是由从未使用过...

    ruby_videos:关于 Ruby 编程语言或与之相关的优质视频的精选列表

    这个项目的原因是我喜欢许多概念,但也想知道我是否可以只用标准的 Rails 和 PORO(带有一些轻量级的 gem)来做类似的事情。 虽然这个项目非常简单,但很多代码对于项目来说看起来有点过分。 这是现阶段的预期。 ...

    ruby-hysh:黄鹰的Ruby外壳

    但是我不喜欢bash的语法,宁愿在Ruby中这样做。 这项工作基于HYSH(黄鹰在Common Lisp中的SHell: )。示例 def dpkg_installed1 ( package_names = nil ) Hysh . out_lines -&gt; { Hysh . pipe [ 'dpkg' , '-l' ], ...

    程序员为什么还要刷题-ruby-101:Ruby-101

    程序员常刷题Ruby 101:学习 Ruby 编程语言 在这里,我描述了我学习 Ruby 的历程,Ruby 是一种非常酷且快速的面向对象的解释型编程语言。 有一些编程概念的基本知识是很好的开始。 本文档会定期更新,我也会提供大量...

    rubysnake:经典蛇游戏的克隆,使用图形库ruby2d

    欢迎来到我的Ruby蛇游戏。 这是使用ruby2d gem /库构建的项目。 要运行此程序,您应该已经安装了这样的库,然后您可以通过在控制台中输入: ruby snake.rb来运行游戏。 安装Ruby2d 首先:安装所需的依赖项 对于Mac...

    ruby101-kitap:土耳其Ruby书

    我一直很喜欢的口袋书。 无论是在大小还是内容上。 您可以始终随身携带的资源,以紧凑的方式包含与其主题相关的所有内容。 我的目的是准备一本味道像这样的床头书,随时随地都可以找到。 编写本书时,最困难的...

    rubylisp:Ruby的Lisp方言

    从设计角度来看, 是我最喜欢的语言,并且可以利用现有JVM库这一事实非常方便。 但是只有一个问题-它的启动时间太慢。 很不错; 它是一个强大的Lisp,而且速度很快。 但是,找到X现有库来执行Y任务并不总是那么...

    生菜:受Ruby启发的Cucumber的python行为驱动开发工具

    我喜欢python,而且从没这么做过。 但是我也曾经错过过一些使编写测试变得容易和有趣的事情。 我喜欢,这是一个单元测试的pythonic框架。 但是,随着我从事的项目的增长,测试也随之增加,并且变得越来越难以理解...

Global site tag (gtag.js) - Google Analytics