感觉Ruby没有Python好
2010-08-04 23:06
190 查看
声明一下,本人无意挑起语言纷争,只是谈谈自己的想法。
我也研究过Ruby,感觉它太繁复了,语法太多,语法糖太多,有太多简写。
我蛮久没玩Ruby了,看到这样的代码完全看不懂了。
class Customer < ActiveRecord::Base
has_many :orders, :dependent => :destroy
end
刚才又看了一下ruby官网上的一篇文章:To Ruby From Python。这篇文章也太能吹了,颠倒黑白,极尽倭寇无耻之能事!地址:
http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-python/
Ruby没有元组,这不能算优点吧。元组是函数式编程的核心。Ruby一天到晚吹嘘函数式编程,没这个也没啥好吹的。
· There are no “new style” and “old style” classes. Just one kind.
· Ruby是单根的。Python新风格的类是单根的。但是Python旧风格的类没有根类。
· Python的类从元类生成。Python旧风格的类也是从元类生成的,可以自定义元类。
Ruby好像也有类似的东西。抱歉,很久没玩Ruby了。
· You never directly access attributes. With Ruby, it’s all method calls.
· Ruby中不能访问属性,它提供了自动生成的get/set方法。Python可以直接访问属性,需要自己写get/set方法,或者直接操作变量。__attr__方法中也可以拦截对属性的访问。
Ruby的函数调用中()可以省略,对代码可读性有很大伤害。
· There’s public, private, and protected to enforce access, instead of Python’s _voluntary_ underscore __convention__.
· Ruby强制定义了类的public,private,protected.
· Python都是public,但是可以__开始的变量会混淆名字。
我觉得这个有没有都无所谓。
· “mixin’s” are used instead of multiple inheritance.
· Ruby是单继承的,有特定的mixin机制。Python使用多继承实现混入。
· 混入指的是多继承没有数据只有方法的类。
· You can add or modify the methods of built-in classes. Both languages let you open up and modify classes at any point, but Python prevents modification of built-ins — Ruby does not.
· Python不能修改内建类的方法和属性,只能继承它们。
· Ruby可以修改。--------这有个鸟用?把基本类型弄坏了咋整?
· You’ve got true and false instead of True and False (and nil in stead of None).
· Python的关键字True,False和None真的诡异。 关键字混用大小写确实不太习惯。
· There are a number of shortcuts that, although give you more to remember, you quickly learn.
They tend to make Ruby fun and very productive.
· 这个是Ruby的一大缺点。Ruby有很多快捷键,默认值。很诡异。如上面那个Rails生成的类,太难看懂了。
代码的可读性肯定是第一位的。Ruby的代码量虽少但非常晦涩。
Ruby的书中经常引以为豪的几点是:
1,ruby是完全基于类的语言,类似于Java。
ruby中任何东西都是对象,包括基本类型,整数等。
其实在面向对象方面,Python更胜一筹。
Python中一切都是对象。并且Python允许直接执行模块中的源码。Python也允许不使用类,直接定义变量,函数。
Ruby就此攻击说Python面向对象没有它那样纯粹。其实完全是诽谤!
Python的函数也是对象!是Function类的实例。
2,Ruby标榜自己的函数式编程能力很强。什么lambda什么的。
其实在面向函数编程方面,Python也更强。
Python支持元组,lambda,内嵌函数,闭包,偏函数。Ruby只有一个Lambda而已!
3,Ruby还标榜自己的Mixin机制。它为了Mixin特地定义了Module这样一种机制。
Python支持更加简洁强大的Mixin机制。Python支持多继承!
4,Ruby标榜自己是DSL语言,有很多快键键。
实际上造成了源码的难以理解。
5,Ruby还常常自称自己的库多,应用程序多。
Ruby除了Rails在Web上有些应用之外,还有什么呢?
中国程序员学习Python的很少,让人感觉Python是一种非主流语言。
实际上,在Linux平台,数量最多的开源和商业程序是C程序,第二就是Python了。Linux中有大量程序是用Python编写的。如虚拟化中的Libvirt和相关的套件等。
在Web开发领域,Python也有很多框架。
Python的开源资源浩如烟海,Ruby怎么比?
说句实话,Ruby也是设计精巧,不错的语言。相当灵活,威力很强。但是Rubyer到处诋毁其他语言,摆出老子天下第一的架势,这我就看不惯了。
既生瑜何生亮!Ruby和Python相比,还是要略逊一筹。我更看好Python!
我也研究过Ruby,感觉它太繁复了,语法太多,语法糖太多,有太多简写。
我蛮久没玩Ruby了,看到这样的代码完全看不懂了。
class Customer < ActiveRecord::Base
has_many :orders, :dependent => :destroy
end
也不想看懂了。
刚才又看了一下ruby官网上的一篇文章:To Ruby From Python。这篇文章也太能吹了,颠倒黑白,极尽倭寇无耻之能事!地址:
http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-python/
Ruby没有元组,这不能算优点吧。元组是函数式编程的核心。Ruby一天到晚吹嘘函数式编程,没这个也没啥好吹的。
· There are no “new style” and “old style” classes. Just one kind.
· Ruby是单根的。Python新风格的类是单根的。但是Python旧风格的类没有根类。
· Python的类从元类生成。Python旧风格的类也是从元类生成的,可以自定义元类。
Ruby好像也有类似的东西。抱歉,很久没玩Ruby了。
· You never directly access attributes. With Ruby, it’s all method calls.
· Ruby中不能访问属性,它提供了自动生成的get/set方法。Python可以直接访问属性,需要自己写get/set方法,或者直接操作变量。__attr__方法中也可以拦截对属性的访问。
Ruby的函数调用中()可以省略,对代码可读性有很大伤害。
· There’s public, private, and protected to enforce access, instead of Python’s _voluntary_ underscore __convention__.
· Ruby强制定义了类的public,private,protected.
· Python都是public,但是可以__开始的变量会混淆名字。
我觉得这个有没有都无所谓。
· “mixin’s” are used instead of multiple inheritance.
· Ruby是单继承的,有特定的mixin机制。Python使用多继承实现混入。
· 混入指的是多继承没有数据只有方法的类。
· You can add or modify the methods of built-in classes. Both languages let you open up and modify classes at any point, but Python prevents modification of built-ins — Ruby does not.
· Python不能修改内建类的方法和属性,只能继承它们。
· Ruby可以修改。--------这有个鸟用?把基本类型弄坏了咋整?
· You’ve got true and false instead of True and False (and nil in stead of None).
· Python的关键字True,False和None真的诡异。 关键字混用大小写确实不太习惯。
· There are a number of shortcuts that, although give you more to remember, you quickly learn.
They tend to make Ruby fun and very productive.
· 这个是Ruby的一大缺点。Ruby有很多快捷键,默认值。很诡异。如上面那个Rails生成的类,太难看懂了。
代码的可读性肯定是第一位的。Ruby的代码量虽少但非常晦涩。
Ruby的书中经常引以为豪的几点是:
1,ruby是完全基于类的语言,类似于Java。
ruby中任何东西都是对象,包括基本类型,整数等。
其实在面向对象方面,Python更胜一筹。
Python中一切都是对象。并且Python允许直接执行模块中的源码。Python也允许不使用类,直接定义变量,函数。
Ruby就此攻击说Python面向对象没有它那样纯粹。其实完全是诽谤!
Python的函数也是对象!是Function类的实例。
2,Ruby标榜自己的函数式编程能力很强。什么lambda什么的。
其实在面向函数编程方面,Python也更强。
Python支持元组,lambda,内嵌函数,闭包,偏函数。Ruby只有一个Lambda而已!
3,Ruby还标榜自己的Mixin机制。它为了Mixin特地定义了Module这样一种机制。
Python支持更加简洁强大的Mixin机制。Python支持多继承!
4,Ruby标榜自己是DSL语言,有很多快键键。
实际上造成了源码的难以理解。
5,Ruby还常常自称自己的库多,应用程序多。
Ruby除了Rails在Web上有些应用之外,还有什么呢?
中国程序员学习Python的很少,让人感觉Python是一种非主流语言。
实际上,在Linux平台,数量最多的开源和商业程序是C程序,第二就是Python了。Linux中有大量程序是用Python编写的。如虚拟化中的Libvirt和相关的套件等。
在Web开发领域,Python也有很多框架。
Python的开源资源浩如烟海,Ruby怎么比?
说句实话,Ruby也是设计精巧,不错的语言。相当灵活,威力很强。但是Rubyer到处诋毁其他语言,摆出老子天下第一的架势,这我就看不惯了。
既生瑜何生亮!Ruby和Python相比,还是要略逊一筹。我更看好Python!
相关文章推荐
- 感觉Ruby没有Python好
- python与ruby
- 刚进入新的公司,感觉没有实现自己的价值,怎么办?
- Python中为什么没有++和–(自增/减)(转)
- 一个python程序员的ruby三日游(三)——构建工具
- 解决Windows安装Python之后右键没有Edit with IDLE的问题
- 新建的Python项目没有JRE只有一个src目录的解决方法:
- [转载] Python没有switch语句的解决方法
- Python 之 super & MRO (没有遇到过适用场景)
- 【转】语言简评:比较Perl、PHP、Python、Java和Ruby
- Python、Lua和Ruby之优劣
- 使用selenium+python;在页面A点击一个按钮跳转到页面B,页面A没有关闭,浏览器打开了一个B,切换窗口定位页面B的元素
- Ruby和Python的比较
- Python和Ruby的真实选择
- 一个python程序员的ruby三日游(五) ——重构(一)
- Python和Ruby的对比,纠正一些误解
- 实现PHP,.NET, C#, JAVA, Python, Ruby,C(++) 与websocket 实时通信
- 强弱类型,动态静态语言比较(JAVA,C,C++,Python,Ruby,PHP,Perl)
- 最简洁最没有废话的python入门教程
- 脚本语言性能比较:Ruby,Io,PHP,Python,Lua,Java,Perl...