作者dryman (dryman)
看板Translate-CS
标题[翻译] 为什麽我选Ruby
时间Sat Mar 23 12:23:41 2013
http://www.codinghorror.com/blog/2013/03/why-ruby.html
为什麽我选择Ruby
================
我已经使用微软产品来开发程式数十年了。我从小开始就在家使用微软Basic程式语言,
而且我第一个工作就是在微软开发 Microsft FoxPro, Microsoft Access, 以及 Micro-
soft Visual Basic。各位看官,我现在可以看得到微软产品的未来,它将会是一堆在
Wintel小生态圈中发展得很糟糕的 CRUD 应用程式。
对我们熟悉的人知道,我们过去用 Microsoft .NET 来开发 Stack Overflow 。使用
.NET也是它现在可以运行得这麽快的原因。所以当我们发表
[Discourse][discourse]
的时候,很多人都问我们
> 为什麽你们不用 .NET 来建 Discourse?
让我说清楚:我
*爱* .NET 。离题一下,我这辈子最棒的事是把 Coding Horror 的贴纸
递给
[Anders Hejlsberg][anders] 。容我表达一下我的兴奋之情,一想到他我还是会
兴奋得发抖。这世界上或许有五十位顶尖的程式语言开发者,而 Anders 是在他们之中
唯一开发出 Turbo Pascal 和 Delphi 语言的一人。由於 Anders 的顶尖建议, .NET
从开发初期就是一个富含顶尖设计的程式语言 -- 除了拥有 Java 的一切优点外,还
持续在这十年间有各种出色的进化,并且对其他各种动态型别程式语言有巨大的影响。
但就如同我一开始讲的,我故意不选择 .NET 作为下个专案的开发语言。你可能会期待
看到一个愤怒而义愤填膺的人在这里长篇大论说离开微软生态圈有多爽:
*我自由了!
我自由了!感谢主我终於自由啦!*
不好意思,这我五年以前已经
[写过了][old post] 。
我跟其他实务导向的工程师一样,我只是选择最有效的工具而已。虽然我喜欢 .NET ,
但这对一个 100% 开放原始码的 Discourse 专案来说真的是一个很糟糕的选择。为什
麽?有三个理由如下:
1. **授权** 我的天,授权。虽然这没有花很多钱,但这邪恶且恼人的协定将会确保
你所有的程式码还有开发出来的软体都被授权笼罩着,而且视不同的开发程度及
版本、授权给谁,授权来做什麽用、哪些伺服器被授权等作用都不同。等等?什麽?
对不起我刚刚不小心陷入了
[疯狂的授权地狱][rabid]。
2. **开发的摩擦力** 如果你想要开发出一个真正的开放原始码软体,你必须要有人
参与你的专案才行,如此它才是一个有生机的、会呼吸、会成长的好专案。而且如
果你不能将一个开放原始码专案下载下来修改,你将不会跟社群有任何连结,这...
对开发来说的阻力真的是太大了。
我在 Stack Overflow 学到最重要的一件事情是,程式开发的世界是扁平的,世界
上任何角落都可能冒出开发鬼才。我想说的是,即使那个鬼才来自
[这个笨美国工程师][ugly programmer] 从来没听过的地方,说着我们听不懂的
语言,但听好了,他们还是用跟我们一样的程式语言在工作着!很疯狂吧!
使用微软的工具练来开发很难吸引到其他地区的鬼才,例如阿根廷、尼泊尔、或
保加利亚的人。开放原始码的作业系统、开源的程式语言还有工具练对这些国家
的人更公平,这是让下一世代全世界的工程师一起来改变世界的基石。
3. **软体生态圈** 当我在 Stack Extrange 时我们尽可能的开放我们的软体平台。
我们致力回馈给这个社会,因为我们认为公司的价值在於我们能回馈多少给社会,
我们试着把许多有用的的作品开放出来。许多我们的作品并非源自 Stack Extrange
而是从 Creative Commons 授权中和许多开发者一起贡献开发出来的,这不是所
有人的贡献吗?
你可以用 .NET 开发开源码软体,而且也有很多人这麽做,但这永远就是不太自然
,永远都有点怪怪的。无论你多麽努力,核心团队永远不会会接受你的补钉(patch)
在 .NET 社群中想要贡献开源好似逆势而行,大大小小的公司都不愿意贡献他们的
原始码。或许是因为他们知道展示出来的程式码很烂,随便啦。开源文化就是不在
微软的 .NET 生态圈中,而且那些写一手烂程式的公司特别畏惧开源。如果你害怕
你开源的程式会丢脸,那份恐惧会深深地阻止你回馈给社群。开源码社群最..迷人
的一点就是他们不会害怕展示他们自己的程式,也不畏惧谈论自己的想法。
结果就是,对於任何你想用 .NET 来完成的任务,如果你幸运的话,你可能可以找
到一两个可用的函式库。而在任何热门的开源社群中,你很容易就可以找到上百个
好用的函式库来完成任务。是的,或许其中六个烂掉了、没人维护、没什麽用、或
写得糟透了,但是由於开源码社群活跃的特性,你还是可以找到超好的三个函式库!
你绝对是赢家!
如同我
[五年前写过文章][old post]:
> 我是个实务主义者。现在我选择微软的世界,但这不代表我不知道另外半个世界在
> 在干什麽的。完成任务的方法永远都有不只有一个。我选择其中一种方法不代表这
> 这就是唯一对的方法或比较好的方法。把自己孤立起来绝对会变得无知,因此需要
> 了解另外半个世界是怎麽运作的,了解那些跟你活在不同世界的工程师是怎麽过活
> 的。他们使用什麽样的工具,为什麽如此选择。如果你两边都尝试过了,你可以跟
> 据自己的观察决定哪一边比较好,如果另一边比较好就可以加入另一边的世界。
> 我打赌你说再见会说得很轻松。
我已经离开了微软的世界。对的、错的、好得、坏的都不重要了。我们只是根据我们
的需求决定了要开发专案使用的程式语言。
待续
[discourse]:
http://www.discourse.org
[anders]:
http://en.wikipedia.org/wiki/Anders_Hejlsberg
[old post]:
http://www.codinghorror.com/blog/2007/05/giving-up-on-microsoft.html
[rabid]:
http://www.codinghorror.com/blog/2009/07/oh-you-wanted-awesome-edition.html
[ugly programmer]:
http://www.codinghorror.com/blog/2009/03/the-ugly-american-programmer.html
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 207.151.231.159
※ 编辑: dryman 来自: 207.151.231.159 (03/23 12:28)
1F:→ dryman:其实只有前半段是我想翻的,後面还真没动力翻下去...orz 03/23 12:35
※ 编辑: dryman 来自: 207.151.231.159 (03/23 12:35)
2F:推 PsMonkey:我懂我懂... [泪握] 03/23 17:42
3F:→ dryman:後半段在Soft_Job版上有人翻完了 03/23 21:25