`
CharlesCui
  • 浏览: 416517 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

评论:CSDN一个帖子--<<感觉Ruby没有Python好>>

 
阅读更多

原文:

 

http://blog.csdn.net/shendl/archive/2010/08/04/5789208.aspx

 

 

这种帖子居然被推荐到CSDN首页了,而且还是个排名192的CSDN专家写的,CSDN的质量在下降.

 

 

我蛮久没玩Ruby了,看到这样的代码完全看不懂了。


class Customer < ActiveRecord::Base  
    has_many :orders, :dependent => :destroy  
end

也不想看懂了.
 

 

 

这个都看不懂就评论Ruby,完全是门外汉.

Ruby的语法糖的确很多,但不需要你都记住,看不懂的时候查查手册,只要你的项目里面不要用NS整天回帖中写的那些黑魔法一样的代码就行了.

 

Ruby不是只能写出复杂的代码,它写起来简洁的代码是非常清爽的,它写的代码简直就是readme手册一样,不需要你再去man一下资料.

 

 

Ruby标榜自己的函数式编程能力很强。什么lambda什么的。

 

 

函数式编程绝对没有任何值得吹嘘的,但我不知道有没有Rubyer在吹嘘,不过Ruby做这个完全没问题啊,有什么好评价的?

这个作者完全不知道什么是函数式编程的意义.

 

只有Erlang的那种能起多个轻量级进程,并且做高并发的语言,以函数式编程用来实现应用的语言才是最有价值的.

函数式编程为什么这么火?

 

  1. 因为多核,
  2. 因为分布式计算,
  3. 因为容易调度.
  4. 就是因为它没有定义保存状态的变量(或者说很少定义,虽然Erlang可以通过hack方法做到),这样使得它容易并发.

 

如果还要说函数式编程有什么好的,那就是它小小改变了一下人们的编程思维而已,不过那种编程设计刚出来的时候不改变人们的思维呢?追新而已,有不一定多有用.

C语言照样写函数式编程,效率更高呢.

 

Ruby要做到函数式编程思维完全没问题,有个lambd就行了?为什么不可以呢?还有其它那篇文章提到的几个特性,我不知道python怎么实现元组的,我觉得像haskell那样的元组才有提到的价值.

不过Python的函数式编程再牛12+1,别忘了他是脚本语言,别忘了他的全局解释器锁,这样的硬伤让它没办法想Erlang一样并行的启动多个进程或线程去处理任务.

拿函数式编程来大家Ruby,也不看看自身有多少实力.

 

下面这些不需要评论,擦,那个作者根本没必要写出来:

 

· Python不能修改内建类的方法和属性,只能继承它们。

· Ruby可以修改。--------这有个鸟用?把基本类型弄坏了咋整?

 怕弄坏你别用啊.

 

 

 · 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呢?

 

 

实际上,在Linux平台,数量最多的开源和商业程序是C程序,第二就是Python了。Linux中有大量程序是用Python编写的。如虚拟化中的Libvirt和相关的套件等。

 

 我不想说第二是Python还是Perl还是Shell了,我觉得Python写的是libvirt的扩展-xen-吧,libvirt是C写的吧,幸好哥哥当年玩虚拟化的时候没少上:http://libvirt.org/去看它的源代码,要不然就被丫的忽悠了!

 

最后,反省和总结:

 

Python的开源资源浩如烟海,Ruby怎么比?

 

 兄弟们多努力啊,奉献点NB的应用出来.

 

说句实话,Ruby也是设计精巧,不错的语言。相当灵活,威力很强。但是Rubyer到处诋毁其他语言,摆出老子天下第一的架势,这我就看不惯了

 装12+1者要自省,Ruby就是一个好用点的工具而已,不是天下第一,只是我们都爱它.

 

 

PS:

谁能推荐我一个高质量的Ruby论坛?

再推荐我一个高质量的开发者论坛,以Linux C为主的.

 

我想换博客了.

分享到:
评论
40 楼 lamborghini_lp 2010-08-20  
很少上CSDN了。
39 楼 Desting 2010-08-17  
今天的csdn不是昨天的csdn了。

38 楼 wenshao 2010-08-16  
只有Erlang的那种能起多个轻量级进程,并且做高并发的语言,以函数式编程用来实现应用的语言才是最有价值的.
---------
如此一句,楼主的水平鉴定完毕!
37 楼 caiceclb 2010-08-13  
楼主反驳的很好,同样适用于各种语言,每种语言自然有存在的理由,缺点不是理由。所以,请傻X们不要再去拿一种语言的优点去数落另外一种语言的缺点,你可以说一种语言的好,但不要说另一种语言的坏。

两种语言的对比是可以,但是不要带上感情色彩。应该去引导人们如何技术选型。
36 楼 wghdsql66 2010-08-13  
这个贴不也在javaeye上了首页了吗?这和csdn有什么不同。
35 楼 yza0088 2010-08-12  
争论任何一种语言谁好谁坏本身就是无意义的 别浪费唾沫了
34 楼 moonlitsky 2010-08-12  
感觉lz也有点狡辩的意思。
现实是,ruby也就在rails上有点作为。其他方面慢慢追赶吧。
另外,ruby确实有很多语法糖,想深入ruby确实有困难,而简单的python可以让人把焦点集中在业务、逻辑上。
33 楼 JavaEye4Cwy 2010-08-11  
关键是习惯问题……
32 楼 mathgl 2010-08-11  
下一站,火星 写道
我毕业后使用的第一门语言就是python,我使用django的时候,目前国内的django专家门大都还不知道这玩意,本来想写点2者对比的文章,但我现在还不写,我要等到几个月后把这个结合到我的软文里面一起发布出来,这里不谈2者的优劣,先给一个链接

http://storecrowd.com/blog/top-50-ruby-on-rails-websites/

那么有人又要蹦出来说ruby只适合做web开发,那么我认为这是一个优点,符合Unix一个东西只做一件事的理念,后台的东西给c去做,比如搜索引擎这玩意,理论上ruby可以做,python也可以做,但实际上在生产环境下,还是c实现的居多

最喜欢拿来扯淡还有什么python的包多如牛毛拉,这些人压根就不知道地球上有个网站叫做github,你们看看举的都是什么例子

GAE,GAE支持python和你有啥关系?国内有几个人是基于GAE做生产型的应用的?GAE的支付都不支持CHINA,戏剧性的是ruby有一个Heroku,比GAE就好用的多,不信自己去试试

还有人举什么PIL,这种老掉牙的包哪个语言没有, ruby里面就有Rmagick Minimagick

还有人提django这么个丢python脸的东西,你提webpy我心里还好过一点

还有zope/plone,国内最牛B的zope团队经常在豆瓣上直播,据说无比复杂,导致他们自己重新搞了一套

最后python也确实适合做后台,如果效率至上的话,可以和c混用,但也没有人规定ruby不能用,之所以有人说python比
ruby更适合是因为python是native的线程,而ruby是伪线程,也就是说python可以实现真正意义的多线程,但实际上由于在python当中,存在一个叫Global Interpreter Lock(GIL)的东西,本质上几乎是没有线程是并行的,而ruby也有一套自己的方案,详情请参考 EventMachine

我在用python做后台,不过都是起多个进程的。。gil是个诡异的东西。。一直都不去掉...


31 楼 ego008 2010-08-11  
python枪手,哈哈
30 楼 vb2005xu 2010-08-11  
还是 rebol 和 php 好 .... 简单 看起来舒服
29 楼 deepfuture 2010-08-09  
还是perl的线程好呀,强大呀,比python强,语言简单,比C好,能快速实现功能,实在不行,可以用C改写。
28 楼 下一站,火星 2010-08-09  
我毕业后使用的第一门语言就是python,我使用django的时候,目前国内的django专家门大都还不知道这玩意,本来想写点2者对比的文章,但我现在还不写,我要等到几个月后把这个结合到我的软文里面一起发布出来,这里不谈2者的优劣,先给一个链接

http://storecrowd.com/blog/top-50-ruby-on-rails-websites/

那么有人又要蹦出来说ruby只适合做web开发,那么我认为这是一个优点,符合Unix一个东西只做一件事的理念,后台的东西给c去做,比如搜索引擎这玩意,理论上ruby可以做,python也可以做,但实际上在生产环境下,还是c实现的居多

最喜欢拿来扯淡还有什么python的包多如牛毛拉,这些人压根就不知道地球上有个网站叫做github,你们看看举的都是什么例子

GAE,GAE支持python和你有啥关系?国内有几个人是基于GAE做生产型的应用的?GAE的支付都不支持CHINA,戏剧性的是ruby有一个Heroku,比GAE就好用的多,不信自己去试试

还有人举什么PIL,这种老掉牙的包哪个语言没有, ruby里面就有Rmagick Minimagick

还有人提django这么个丢python脸的东西,你提webpy我心里还好过一点

还有zope/plone,国内最牛B的zope团队经常在豆瓣上直播,据说无比复杂,导致他们自己重新搞了一套

最后python也确实适合做后台,如果效率至上的话,可以和c混用,但也没有人规定ruby不能用,之所以有人说python比
ruby更适合是因为python是native的线程,而ruby是伪线程,也就是说python可以实现真正意义的多线程,但实际上由于在python当中,存在一个叫Global Interpreter Lock(GIL)的东西,本质上几乎是没有线程是并行的,而ruby也有一套自己的方案,详情请参考 EventMachine

27 楼 jkfzero 2010-08-09  
backrain 写道
老实说,一大帮既不精通python,也不精通ruby的牛人在互喷。

为啥要精通?熟悉就行了。
语言就像妹子,等你结婚了在想转,成本就太高了。还是相处的时候该分就分吧。
26 楼 backrain 2010-08-09  
老实说,一大帮既不精通python,也不精通ruby的牛人在互喷。
25 楼 deepfuture 2010-08-09  
perl多成熟呀,多好呀,用Perl
24 楼 aoliwen521 2010-08-09  
多年不上CSDN,但是python和ruby我都不会。打算都学习一下,但是迟迟没有行动。
23 楼 teclogid 2010-08-09  
天一 写道
兄弟,这就是你不懂了。
csdn需要的就是这种颇具争议性的文章,这样才能带来流量。

兄弟,这就是你不懂了。
楼主是csdn该文章的推手。
22 楼 天一 2010-08-09  
兄弟,这就是你不懂了。
csdn需要的就是这种颇具争议性的文章,这样才能带来流量。
21 楼 CharlesCui 2010-08-09  
大家怎么听出相互诋毁的意思了?

较真的不是我,是各位啊.

我只是还Ruby个清白,Ruby不是他说的那么没用.
这不算较真吧?

如果没有明白我的好意,请不要回帖,很容易让人误解.

谢谢.

相关推荐

    OpenCV-Python-Toturial-中文版.pdf

    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言...

    Vim/Gvim配置文件+配色方案_By Marslo

    F5一键运行Python,Ruby,Perl脚本 结果直接显示在gvim的Quickfix窗口中,不会单独弹出窗口。 F3: 打开tagbar F4: 添加个人信息 -------------------------------------------------------------- 炫酷配色方案,...

    PYTHON参考手册 第4版_修订版

    内容简介 本书是Python编程语言的杰出参考手册,书中详尽讲解了Python核心和...他创办的Dabeaz 公司提供软件开发、培训和咨询服务,专注于Python、Ruby、Perl 等动态编程语言的实际应用。他是Python 软件基金会的会员。

    windows安装jekyll所需软件 ruby DevKit python pip

    Windows上安装Jekyll所需软件包含ruby 、DevKit、python、pip 目录 Jekyll介绍 安装Ruby 安装DevKit 安装Jekyll 安装Python 安装pip 运行Jekyll 博文参考...

    opencv_python-4.2.0-cp38-cp38-win_amd64.whl

    OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言...

    Python库 | python-vagrant-0.5.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:python-vagrant-0.5.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python & Ruby 学习

    NULL 博文链接:https://joyocaowei.iteye.com/blog/1440179

    ython读取由ruby/jruby生成的yml数据

    用python读取由ruby/jruby生成的yml数据

    典型相关分析matlab实现代码-Python100:Python学习

    简单的说,Python是一个“优雅”、“明确”、“简单”的编程语言。 学习曲线低,非专业人士也能上手 开源系统,拥有强大的生态圈 解释型语言,完美的平台可移植性 支持面向对象和函数式编程,动态语言 能够通过调用C...

    python动态代码审计

    kcon议题《python 动态代码审计》,我已经将上面的所提到的技术广泛的用在我自己的工作之中,为我自己节省了大量的时间和精力。并且通过比较多实践,我把一些繁琐的过程和步骤做了简化,也填了大大小小的坑。...

    rule-engine:一种轻量级,可选类型的表达语言,具有用于匹配任意Python对象的自定义语法

    以下示例演示了定义规则对象并将其应用于两个字典的基本用法,显示了一个匹配而另一个不匹配。 有关更多信息,请参见。 import rule_engine # match a literal first name and applying a regex to the email rule ...

    Learning.Apache.Thrift.178588274

    Leverage Apache Thrift to enable applications written in different programming languages (Java, C++, Python, PHP, Ruby, and so on) to cross-communicate. Learn to make your services ready for real-...

    QuickEdit Pro 1.4.3.apk

    QuickEdit是一款适用于Android设备的快速,稳定且功能齐全的文本编辑器。它已针对手机和平板电脑进行了优化! 特征: ✓增强的记事本应用程序,有许多改进。 ✓代码编辑器和语法突出显示50多种语言(C ++,C#,...

    Python虚拟环境virtualenv的安装与使用详解

    动态语言Ruby、Python都有自己的虚拟环境,虚拟环境是程序执行时的独立执行环境,在同一台服务器中可以创建不同的虚拟环境供不同的系统使用,项目之间的运行环境保持独立性而相互不受影响。例如项目可以在基于Python...

    Ruby开发包 for Script.NET V2.1.1

    9、Script.NET作为一个通用平台对外提供了很多接口,可以通过脚本等方式调用平台的各种功能,其中的tcl语言支持很多平台扩展命令,可以通过tcl操纵平台的各种功能,对平台进行扩展; 10、封装的TclFace页面扩展包,...

    qt-opensource-linux-x64-5.12.12.zip

    Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。...

    opencv英文版教程

    OpenCV是一个开源的计算机视觉库,OpenCV采用C/C++语言编写,可以运行在Linux/Windows/Mac等操作系统上。OpenCV还提供了Python、Ruby、MATLAB以及其他语言的接口。 OpenCV的设计目标是执行速度尽量快,主要关注实时...

    PilotEdit.15.8.0.rar

    它是一个方便和高效的实用程序,通过提供几个有用的功能,将帮助您更好更快地工作,消除了传统记事本的许多限制。这个伟大的程序甚至可以使用作为一个完整的HEX编辑器无限级别的撤消和重做。这是一个高级文本编辑器...

    jfinal-4.9.01-all.zip

    从官网下载,放CSDN加速下载不等待,jfinal最新版本功能扩展依赖包。 JFinal 是基于 Java 语言的极速 WEB + ORM + AOP + Template Engine 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、...

    Amazon.S3.Cookbook.1785280708

    The book starts by showing you how to install several AWS SDKs such as iOS, Java, Node.js, PHP, Python, and Ruby and shows you how to manage objects. Then, you'll be taught how to use the installed ...

Global site tag (gtag.js) - Google Analytics