ruby为什么没有python火_感觉Ruby没有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 (andnilinstead 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语言,有很多快键键。

实际上造成了源码的难以理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值