Fw: [翻译] 为什么我选Ruby(续)

楼主: dryman (dryman)   2013-03-26 06:55:35
※ [本文转录自 Soft_Job 看板 #1HJOdZl_ ]
作者: raincole (冷雨) 看板: Soft_Job
标题: [翻译] 为什么我选Ruby(续)
时间: Sat Mar 23 18:54:24 2013
因为板友翻到一半,我顺便把后半段翻完好了,原文在此:
http://www.codinghorror.com/blog/2013/03/why-ruby.html
原文里连结参考资料实在太多了,很坚持要看的人就直接看原文吧,这边除了有引文的
以外都不列出。
==============================================
但为什么是 Ruby ?简单但无趣的答案是,我心中早就内定要用 Ruby 或 Python 之一,
而另一个创办人 Robin Ward 从 2006 年起就在写 Rails 网站了,所以 Ruby 胜出。
我总是对 Ruby 有点好奇,主要是因为早在 2006 年 Steve Yegge 就大力推崇它[1],这
篇文章我一直铭记在心。
([1]: https://sites.google.com/site/steveyegge2/tour-de-babel)
(引文)
大致而言,Ruby 有和 Perl 一模一样的字串处理和 Unix 整合,也就是当你开始用 Ruby
,你就获得了 Perl 最大的优势。这是很好的开始,尤其你未必想要 Perl 其他的特
性。
但还不只如此,Matz[2] 还从 Lisp 里借鉴了串行(list)处理,从 SmallTalk 和许多语言
里拿了最好的物件导向,从 CLU 里找了最好的迭代器(iterator),以及其他每个语言最好
的特性。
他巧妙地融合了这些特性,让你甚至不会注意到它们的存在。我学 Ruby 比学其他任何语
言都快,大概只花我三四十个钟头吧;我才写了三天,用 Ruby 就比用 Perl 顺手了,而
我当时已经写了八年的 Perl。它是如此的一致,当你猜测它是如何运作时,你多半会猜
对。Ruby 美丽、有趣、实用。
([2]: Ruby 发明人松本行弘)
Steve Yegge 是一位我非常尊敬的多语言使用者,基本上他说的任何话--除了关于枪枝
管制、女性主义和 T'Pau[3] 的奇怪观点--我都会不假思索地接受。
([3]: 英国乐团,http://en.wikipedia.org/wiki/T'Pau_(band) )
抱歉,Steve,这七年来我都在逃避 Ruby。不过我的等待是有道理的:
- Ruby 的效能还算过得去,但你真的必须买很好的硬件来跑。是的,我知道,直译语言就
是这么回事,还有快取、数据库、网络之类的问题。我们架 Discourse 时,已经用上了市
面上最高级的 CPU (4.0 Ghz Ivy Bridge Xeons),然而效能只能说是...不错(Good),称
不上非常好(Great)。
我承认我是被 .NET JIT 编译出来的效能宠坏了。我已经习惯了那种速度。我常常缅怀当
我还在用 .NET 时,随便就能写出可在 50 毫秒内回应的网站的“悲惨”岁月。直译语言
本质上就是无法达到这种效能。我能想像在 2006 年,那个 CPU 只有现在五分之一快的
黑暗时代,Ruby 的性能到底多糟。因此我很庆幸自己是在今日才接触 Ruby,摩尔定律已
经稳定推进了多年。
- Ruby 已经相当成熟,在 Discourse 宣布之后不到一个月,Ruby 2.0 就释出了。是的,
Ruby 跑得慢,但有很多简单的方法来改善效能。真的很多。Discourse 光是升到 2.0 就
快了 20%,而增加垃圾回收上限以后更是加速将近一倍[4]。考虑到未来的效能进展,Ruby
已经没什么缺点了。
([4]: http://meta.discourse.org/t/tuning-ruby-and-rails-for-discourse/4126)
- Ruby 不再那么“酷”了。是的,你没听错。会写 Ruby 现在已经不是特别酷的事,那
些喜欢酷玩意的人老早都跑去写 Scala 和 Node.js 了。我们的专案并不酷,只是一些无
聊老旧的 Ruby 程式码。我个人很高兴 Ruby 已经足够成熟,社群里的人不用再假装他们
是为了成为最酷的孩子而写 Ruby。这代表我们这些只想把这些鸟事做好(Get Shit Done)
的人,终于可以卷起袖子和同伴们把东西做出来,而不是像神经病一样乱跑,追逐下个新
奇的玩具技术。
当然,Ruby 的社群一直非常棒。我们从不缺少了不起的开源 gem[5] 和了不起的开源贡献
者。我认为无论你来自什么背景,现在都是进入 Ruby 世界的最好时机。
([5]: Ruby 的 package 统称)
(然而值得一提的是,如果要找个比“Ruby专案”更好的描述,Discourse 其实是一个
Javascript 专案。不信你可以看看 http://try.discourse.org 这里的原始码,它与
其说是个论坛,不如说是跑在你浏览器里的 app。)
即使有这么多好理由,一夕之间换掉你已经熟悉二十年的程式技术,仍然有点令人害怕。
但我认为好的程式师应该懂得欣赏不同的语言和环境--而我希望 Discourse 能让我和
其他人都有机会学习成长。现在就 fork 它吧[6]!
([6]: Discourse 现在放在 Github,https://github.com/discourse/discourse)
=========================================================
作者: zetadavid (孤雁)   2013-01-01 13:14:00
Good job!
作者: thanksyou (谢谢你)   2013-03-23 20:01:00
有C++的web framework 吗?
作者: aoeidermo   2013-03-23 20:10:00
有TNT 还有两个吧,三四年前查的有点忘了,不知到活的如
楼主: dryman (dryman)   2013-03-23 21:10:00
大感谢,翻前段我就翻了三个小时,翻译真不是给人做的...
作者: descent (“雄辩是银,沉默是金”)   2013-03-23 21:23:00
感谢两位的翻译
作者: hSATAC (cAt Ash)   2013-03-24 00:28:00
翻完推如果要高效编译 web 可以考虑看看 go
作者: gpmm (银色)   2013-03-24 02:22:00
看完这篇让我决定接下来要开始踩 Ruby 了 XDD
作者: CGary (下雨天也挺浪漫的)   2013-03-24 02:24:00
Dart? 我最近看很多人看好 Dart...
作者: yauhh (小y宝贝)   2013-03-24 02:48:00
get shit done译他妈的什么,是稍微延伸了原意,原文没有这种激烈的语气及语境,突然跳这一句出来只是为了强调shit一字.本来意思应该只是说,把烂的工作任务做好而已
作者: aoeidermo   2013-03-24 12:59:00
http://goo.gl/DMs2 前三名都会了就差不多了
楼主: dryman (dryman)   2013-03-26 06:55:00
已在信件中征得原po同意转录

Links booklink

Contact Us: admin [ a t ] ucptt.com