`

丑陋的ruby

 
阅读更多
首先我不否认rails十分优秀,但是我对rails之下的ruby的不满已经到了极点了,我觉得它根本不配作为一个主流脚本语言存在,ruby还是应该和php一样,老老实实呆在web开发语言里。


1. 不成熟的lib:ruby每一个版本之间,最搞的是lib的升级,每一个版本升级还常常缺乏文档支持,比如ruby/dl 从1.8到1.9之后,我几乎找不到change之后的suggestion,甚至没有一点半点的信息提到这样的suggestion,这点让我十分愤怒,相比perl,larry把许多精力放在了向下兼容方面,这让我对升级ruby一点信心没有。

   不成熟的lib导致的直接后果是ruby根本不是高效的开发语言,程序员的许多时间就放在查找文档,找例子上,甚至许多例子还是半拉子,和ruby版本一点都不匹配。。。


2. 不成熟的module:rubyforge上的许多module都是junk,成熟度几乎为零,我实在想象不出,一个module没有doc没有example,这样的module有什么用处。甚至许多module就是dead...和perl,python的module相比,ruby的module就是噩梦.....


3. 所谓简单,其实复杂:比如yaml号称有多么多么简单,当我一读它的实例,和C#里的xml serialize也没什么进步,而yaml还在不断演化,最后把自己搞成很复杂的东东, 怪不得yaml.net小组的成员觉得yaml一点意义也没有了,所以放弃了yaml.net..

4. 缺乏部署的信心: ruby的语法和lib变更之频繁,简直让人发指,而向下兼容性之差,简直是首屈一指,而ruby又缺乏相关的版本控制手段(详见条件编译),真难以想象部署到每个节点之后,某个人为的版本控制上的失误就会酿成灾难。。。
分享到:
评论
14 楼 damoqiongqiu 2009-10-21  
不看好Ruby,你分析得有理有据,不比有些人简单地骂街,顶你!完毕!
13 楼 下一站,火星 2009-10-21  

一堆拉风的rails应用怎么解释?敢情人家都比你笨?
12 楼 下一站,火星 2009-10-21  
1 python3000也不向下兼容
2 .net MVC一样有很多bug
3 yaml和 ruby无关
4 rails成熟的部署方案真是太多了……
5 你不懂ruby
11 楼 kimmking 2009-10-21  
没用过ruby,
不过,对于讨论的帖子,
我一般是支持的,可以辩论,希望越讨论越清楚,
越尖锐越深入,

不是吵架,毕竟大家也没有杀父之仇。
技术只是工具,语言只是表象。

偏执一种语言的好与坏都是不对的。
10 楼 iaimstar 2009-10-21  
ray_linn 写道
iaimstar 写道
大姨妈再次向零分冲击了


俺是不平则鸣,写这帖子早知道那些感性多过理性的人必然围歼,只是奇怪他们这么感性,怎么不去写伤痕文学。

大姨妈有时候风格像韩寒,有时候风格像宋祖德.像韩寒的时候帖子会被隐藏,像宋祖德的时候会赚些分
9 楼 liusong1111 2009-10-21  
我承认我是特意登录上来投隐藏的。说下原因吧:
1. 查查ruby1.8和1.9各是什么时候出的,被广泛应用到产品多长时间了。“ruby每一个版本之间”,搞的跟ruby隔俩月就升一次级似的。
2. 去sf.net看,同样一批批死翘翘的项目。不止是ruby的。够用就行了。有问题请拿具体的领域说事。
3. 好,终于说到具体问题,yaml,但它只是一种配置文件格式,不止ruby支持。ruby从来不强制要求你用。rails只是默认用它配置数据库连接和测试用的fixture。ruby的其它web框架和库都很少用到yaml。总之跟ruby没啥关系。
4. 根据1、2、3得出的结论,并没有任何依据。信心就是这样丧失的。

8 楼 Saito 2009-10-21  
请参考这篇linux七宗罪的下场..

俺也是不平则鸣,写这帖子早知道那些感性多过理性的人必然围歼,只是奇怪他们这么感性,怎么不去写伤痕文学。
7 楼 ray_linn 2009-10-21  
iaimstar 写道
大姨妈再次向零分冲击了


俺是不平则鸣,写这帖子早知道那些感性多过理性的人必然围歼,只是奇怪他们这么感性,怎么不去写伤痕文学。
6 楼 bonny 2009-10-21  
大姨妈提的意见的确很现实。

但是,ruby能这么cool,本来就是因为语法演进的很频繁。版本升级的很快。
同时也不太注重兼容性。

这些特性,注定了他用起来很爽,某些方面很搓,要没这些特性,还有ruby的今天?取舍而已。
5 楼 iaimstar 2009-10-21  
大姨妈再次向零分冲击了
4 楼 ray_linn 2009-10-21  
logo 写道
这么难用的东西大姨妈还要用,岂非有自虐倾向?


汝乃睚眦必报,小人嘴脸。


以为你分多,想点我隐藏,是吧? 那23分不就是你所为么?
3 楼 logo 2009-10-21  
这么难用的东西大姨妈还要用,岂非有自虐倾向?
2 楼 ray_linn 2009-10-21  
刑天战士 写道

2.早就到github上了……

github上的情况也没好多少,文档例子要缺照缺,死掉的module还是成堆成堆的, 而且这些module跟新的ruby是否兼容,我也是一点信心没有。 这是这个社区的特点,年轻不成熟,在rubyforge还是github差别不大把

刑天战士 写道

3.yaml比XML简单很多阿,不过啥叫XML serialize

这个只是个例子吧,xml至少在一秒钟内我就明白了这个是干什么了. xml serilizor是C#的一个东西。

刑天战士 写道

4.语法1.8系列貌似变更不大,1.9有变更,但是人家python3.0也变的很大。而且现在rails的gem有版本控制了,可以指定版本的。


变化大不要紧,至少要保证我以前的版本可以跑,如果无法保证可以跑,那么至少可以让我

#if version 1.8
.....

#if version 1.9
.....
1 楼 刑天战士 2009-10-21  
1.这是很严重的问题,确实。
2.早就到github上了……
3.yaml比XML简单很多阿,不过啥叫XML serialize
4.语法1.8系列貌似变更不大,1.9有变更,但是人家python3.0也变的很大。而且现在rails的gem有版本控制了,可以指定版本的。

相关推荐

    beautiful-ruby-code:《 Dreamer Ruby样式指南》-因为代码可以很漂亮,或者像FUCK一样丑陋!

    几乎每个人都坚信,除了自己的样式之外,每种样式都是丑陋且难以理解的。 省略“但他们自己的”,他们可能是正确的... -杰里·科芬(缩进) 使用UTF-8作为源文件编码。 每个缩进级别使用两个空格。 # good def ...

    Ruby-Project:Ruby项目 101

    Ruby-项目Ruby项目 101 读我这是我在 Rails 上的第一次冒险。 这是一个史诗般的旅程,可以熟悉最新的开发趋势并提高我作为现代 ruby​​ Web 开发人员的技能。 这个任务注定是危险的、充满危险和丑陋的。

    面向对象的分布式脚本编程语言Reia.zip

    如果你既想要erlang的并发分布式编程的理念又不喜欢erlang丑陋的停留在80年代的那种语法,又想要现代的性感的漂亮的时尚的Ruby/Python式的面向对象观而不满意其并发模型,那么,可以尝试Reia. 标签:Reia

    bindata:BinData-在Ruby中解析二进制数据

    unpack ( "VV" )puts "Rectangle #{ name } is #{ width } x #{ height } " 这很丑陋,违反了DRY,感觉就像是在编写Perl,而不是Ruby。 有个更好的方法。 这就是您使用BinData编写以上代码的方式。 class Rectangle...

    archaeopteryx:Ruby MIDI DJinglive-coding 东西

    始祖鸟是一群骇客,有些生活在自己的树枝上,其中许多是丑陋的。 最著名的是概率步进音序器。 其他始祖鸟 hacks 游览五度圈和四度圈,做极其简单的随机伪琶音,处理 I-IV-V 和 VI 品种的和弦进行,将

    enki:面向时尚开发人员的Ruby on Rails博客应用程序。 比Mephisto或SimpleLog更好

    恩基 面向时尚开发人员的Ruby on Rails博客应用程序。 偏好是针对大众的。 任何真正的程序员都知道定制东西的最简单,最好的方式是破解代码。 因为您希望自己成为博客,所以不要以每页20条而不是15条标准安装#4958...

    pseudo-python:受限的python JavaScript C#Ruby编译器

    受限制的Python可以使用惯用JavaScript / Ruby / Go / C#转换器 是用于高级代码生成的框架:此编译器使用它来将Python的子集转换为所有Pseudo支持的语言 如果您使用的是Python3.5,并且已安装的伪Python版本遇到...

    伪:将编译算法库转换为惯用的JS,Go,C#,Ruby

    伪的 Pseudo使用一个算法/一个简单的程序,并使用Python,JavaScript,C#,Go和Ruby为其生成惯用代码。 Pseudo通过两层翻译实现了这一目标:它使用目标语言语法,并且可以使用语言Y的本机标准库来表达语言X的标准库...

    SLRtool:从学术数字图书馆下载论文参考的玩具工具

    因此,它是丑陋的、蹩脚的并且可能充满了错误。 使用它并自行承担风险;-) 以常识使用它,不要滥用数字图书馆服务! 享受!需要什么? 需要安装 Ruby。 需要一些额外的库。 通常这些更容易通过 RubyGems 安装。 ...

    best-practices-checklist:很棒的惯用代码资源列表。 Rust,Go,Ruby,Pony,Ocaml,Erlang等

    这可以通过编写快速的hack来实现,这些hack大多是丑陋的代码,但是如果我们希望我们的项目可以公开使用或被他人使用,我们必须确保编写的代码是惯用的并且易于理解。 此存储库的目的是作为一种资源集合,在构建此类...

    初级java笔试题-ugly.automata:生成元胞自动机的算法集合

    丑陋的自动机 用于生成元胞自动机的算法集合。 目前仅包含“基本元胞自动机”或 Wolfram 书中的酷图片。 特征 提供一个 Automata::Elementary 类,该类采用规则编号、初始状态以及 #run(steps) 方法。 结果产生一个...

    idealista-cartodb

    由于脚本的描述提到“这和冰箱的背面一样丑陋”,这可能意味着代码可能不是特别优雅或者没有经过优化,可能存在一些效率问题或者不易维护的代码结构。对于实际应用,可能需要进一步改进代码,使其更加模块化,易于...

    wrong:错误提供了采用断言块的常规assert方法。 断言失败消息的详细信息

    “感觉很好,没错” ... 我们希望得到您的反馈,特别是要给我们提供一些案例,其中要么爆炸要么输出丑陋或无用。 受启发,但从头开始重写。 与Ruby(MRI)1.8、1.9和JRuby 1.5兼容。 安装 gem install wron

    mp3file:纯RubyMP3 ID3解析器

    这是一个纯Ruby MP3元数据提取器。 我们用它来识别人们上传到的歌曲的比特率和持续时间。 它处理了很多事情: ID3v1标签 ID3v2标签(尽管实际上并没有解析框架) VBR文件(带有Xing标头) 多个ID3v2标签(因为...

    teradata-extractor:从Teradata获取您的东西并在那里获得地狱!

    jdbc-teradata驱动程序周围的一个漂亮的薄包装器,封装了丑陋的Java位,并为您提供了Ruby可枚举的漂亮东西。 因为您想尽快离开Java Territory。 JDBC :: Teradata适配器有助于使连接和查询Teradata变得非常容易,...

    freeform:将表单与域模型脱钩!

    主要好处是: 将表单对象与域模型解耦允许模型特定的验证,同时尊重模型验证只需组成多模型表格消除accepts_nested_attributes_for的丑陋FreeForm在设计时主要考虑了Rails,但它应可在任何Ruby框架上使用。...

    JBlog:JBlog是一个简单的jekyll主题

    如果某些东西看起来非常丑陋,并且您无法拒绝修复它,请给我发送PR。 我会很感激。 如果您喜欢或使用此主题,请给星星加个动力。 预习 查看GitHub上托管的。 入门 要了解如何安装和使用此主题,请查阅《以获取更...

    tools:只是一些有用的脚本

    [FILENAME] 例如,让我们将一些丑陋的python文档转换为使用漂亮的纯色! java Beautifier ffc8d8=af7ac5 7799ee=3498db ee77aa=8e44ad 55aa55=2ecc71 module.html ### Benchmarker目前,这是硬编码的,尽管它可以...

    hotshottt:Facemash for Dribbble,在 Sinatra

    这里的 Ruby 代码很丑陋。 这是我的第一个 Sinatra 应用程序之一。 所有前端 HTML/CSS 都是由 @nbashaw 编写的。 应用程序 版权 版权所有 (C) 2011 Dan Poggi 和 Nathan Bashaw。 MIT 许可证,有关详细信息,请参阅...

    pat-the-campfire-bot:node.js 中的 Campfire 聊天机器人,旨在在 Heroku 上运行。 图 53 供内部使用,但您可能会喜欢它

    随意忽略任何丑陋的东西。 这是我的“嘿,我应该学习 node.js”项目,其中大部分内容是在 2011-07-23 周末的突发活动中编写的。 依赖 Pat bot 是针对以下对象开发的: Javascript 节点 - 0.4.7 npm - 1.0.18 ...

Global site tag (gtag.js) - Google Analytics