虽然说编程是一种思路的程序化体现,但我个人认为初学编成不适合使用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语言现在还不够完善,用它来学习编程不可取