Ruby和C#孰优孰劣?

Ruby和C#孰优孰劣?

最近一直在学php?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby,朋友是编程高手,但有些偏执,他说让我学C#,列举了C#的种种好处,因此我也很犹豫不知道学哪种好,所以请各位高手说说php?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby和c#的特点,我好选择一下。
先在这里谢谢各位高手了!
编程语言之间比较历来都是很有争议的话题,每种语言都有自己擅长和不擅长的,
看你自己对自己今后的定位了,
如果为了找个好工作,建议学Java,结构严谨和低耦合的特点让Java目前牢牢占据编程语言使用率第一的宝座。
如果想要成为孤独的编程高手,那就学C/C++,体会贴近计算机底层和无所不能的感觉。但也请做好经常接受挫折的准备。(C#的語法混合了C/C++、Visual Basic和Java,4种语言的风格,所以个人感觉C#不适合初学者。)
而Ruby,它是程序员最好的朋友,象瑞士军刀,毫不拖泥带水,迅速解决实际问题。你要考虑的仅仅是如何解决问题,当你考虑清楚了,程序也就写完了。
不管怎么说,自己喜欢的语言才是最好的。你只能学好你感兴趣的东西,不是吗?
完全同意bbschat版主的建议。

如果你还拿不定主意,就先把这几种语言的特点先了解一下,再看看你自己要想掌握什么,就好决定了。主要看你选择学习开发语言的目标是什么了。
你到了这里了,说明你自己心里面已经有所想法了,不是吗?
谢谢各位高手指教,决定了学ruby了,昨天看了我朋友C#的书觉得就是有点晦涩,看ruby的入门教程像我这不懂程序的人都能大体看出来程序是做什么用的.
虽然说编程是一种思路的程序化体现,但我个人认为初学编成不适合使用ruby,语法宽泛而且过于简单。一些内部实现很难理解(当然也不能为了学习严谨的编程思维去学习Pascal...)
其实C#和java是一个不错的选择,而且毕竟是主流的编程语言.
但,如果你学习了C#或者java,那么再来学习ruby与洗脑无异。
我说一下看法
学习C#的优势,ms自己主打语言,说五十年不变有些夸张,但是很长一段时间不会被淘汰。
ms资金人才雄厚,但是不能跨平台,非商业用户可以使用一个开源项目,可以跨平台。帮助文件强大,上手快
java与C#类似,有Sun撑腰,全世界目前为止使用最广泛的编程语言,可跨平台。个人认为除了事件这块比较邋遢加之帮助文件规范性不好外,其他都还可以。
但是ruby的兴起不夸张地说是由于rails给大家带来的鼓舞,但是rails的成功有多少是ruby语言的优势,这个我觉得并不多。
说道优势,ruby的确不少,但是优势往往也是劣势
比如,变量无类型
这个我个人认为归功于“真正的”面向对象,万物对象,变量同样属于类的概念,但是这种无类型变量并不能使程序执行的速度提升,反而减慢了。
我比较愚钝,猜测ruby使用堆栈而不使用堆,这样得到的结果是万物皆对象,在C#和java中,数值型变量,常量和枚举类型使用堆内存,而对象在堆栈中保存指向方法的指针。这样做减少托管内存的大小(这是Dotnet的说法)减轻和垃圾收集的压力,但是ruby这样万物对象化,虽然带来的好处显而易见,但是同时给垃圾收集带来麻烦,本来这种解释型语言的速度就比较慢,在垃圾收集所执行的时间要更慢一些。
而且让一个新手去冒每天都有可能ruby level up带来函数变化的风险,我觉得不可取,甚至我觉得ruby语言现在还不够完善,用它来学习编程不可取
楼上的 数值型变量 常量 和 枚举类型使用堆内存 是不是打错字了 应该是使用栈内存吧 
使用new操作符初始化的对象 使用堆内存
c#和java在字符串上 是使用了一个字符串池的东西

内存布局这块我也不是很懂 我却认为 这些东西不要太在意。。
毕竟选择脚本语言做项目的时候 都不是非常在意效率的
非常在意效率的模块 也不会使用c#或java而直接使用c或汇编语言
ruby中的数值 是这样的
1.object_id
a = 1
a.object_id