设为首页 收藏本站
查看: 1070|回复: 0

[经验分享] 感觉Ruby没有Python好

[复制链接]

尚未签到

发表于 2015-4-26 08:34:12 | 显示全部楼层 |阅读模式
  声明一下,本人无意挑起语言纷争,只是谈谈自己的想法。  
  我也研究过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!













  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-60727-1-1.html 上篇帖子: python学习笔记2 下篇帖子: Sublime-Text-2-pydocstring
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表