2009年3月10日星期二

[译稿]如果由程序语言经营航空公司

个人认为作者所提的几个共通设定为:出发机场是整个开发平台,而到达机场是执行目标平台,飞机本身是Runtime environment、official library、IDE这类开发工具与元件,机上同行乘客是使用相同平台的开发者,机长是PM、PL,飞抵目的地就意谓着顺利开发完成。

一、PL/1 Mainframe航空 当你到达机场後发现根本不像是什麽机场,只是在河旁的老旧木建筑。当你想问这为什麽不像是机场时,一个非常老的老人答说他们从开始建造起就是这个样子了,所以他一定很棒。当你询问可以在哪里check in以及飞机何时起飞时,得到的答案却是这边根本没有什麽飞机,因为他们觉得飞机太新潮了。相反的你必须把自己跟行李丢进在河上划行的小船里,只因为人们已经使用这种船有数个世纪之久,所以这种船已证明他们也是非常好的。你抱怨这种船根本不可能带你到2000哩外的目的地,但老人坚持你应该试试看,因这艘船从没让他失望,虽然事实上他的自信根本不知从何而来,因为它只航行过两哩....。最後你别无选择,只好给他一次机会,起初一切都相当顺利,老人能够驾驭这艘船快速的往下游划去,但当你终於到达海上时,老人就心脏病发死了。你现在正处於汪洋的正中,除了一对桨外什麽也没有....祝你好摺? (译注:不知道该怎麽说,没有体验过老古董巨兽啊XD....当时的确应该没什麽完善的开发环境,所以只好直接找老人沟通,应该是指OS吧?但为什麽是船、为何留下一对桨,这我总觉得是有什麽梗....但我实在想不出解释,有人知道吗?) 二、C++ 航空 当你到达机场,眼前有五个入口。你走向其中一个时随即被什麽人叫住了,他警告你只要选了其中一个就不能再回头,包含目的地在内的一切都要在这时候决定。你考虑了一会,选择了一个对你来说最好的入口。 (译注:用C开发的缺点或许就是容易被平台绑定住,只要使用到非标准的API就几乎注定无法无痛转换平台,为了开发方便而偷懒使用平台限定语法的案例应该占了大多数。) 当你走到柜台check in後你拿到一张机票,上头记载着从名字、地址到你家里的狗的名字,还有你家衣柜的所有内容。你询问为什麽上头有如此多对这趟飞行无用的资讯时,你得到了这样非常好的回答,因为你完全掌握你所要做的一切。当你在餐厅的桌前坐下时,服务生不会给你任何东西,因为你拿的机票是错的,如果你问如何才能得到食物,你会被告知该在选择机票之前就想好这些事情。 (译 注:能搞定址跟值的关联才能搞定C....大量无用的资讯於C爱好者来说反而是很兴奋且理所当然的事,餐厅这事我的解读是试用、试写练习的阶段,而此处不 上餐应该是说用错compiler所以build不出东西,因为有些人把build出binary的过程称为"cook") 带着困惑上了飞机後,你会得到一份有两片面包的餐点,但你得要用一把武士刀去切他们。你看到四周的人都试着在切面包,偶而也会发生切到自己的手臂或手指这类意外,你问旁边的人为什麽他们不给一把普通的餐刀去切面包,因为这把武士刀实在太危险了!但这人却回达只有武士刀才够利足以切断面包,如果你办不到的话就是个愚笨的新手! (译 注:这段真的是超感同身受的....当你写惯Java、C#这类语言-特别是物件导向及3rd party lib特别丰富的,回头写C却有很多简单的事情都得透过and、or、shift这类逻辑处理去自行实作,当然效率很高是没错,但只要一不小心多 shift一个bit可能就是crash收场,所以才说是拿武士刀在切面包。至於最後一句话感觉是在讽刺无视用途皆主张C语言至上者的心态吧?XD) 至少....这架飞机速度非常快,你即将在很短的时间内就抵达终点,但就在你快到达目的地机场时,驾驶员被告知降落跑道被更换了。因为这架飞机在离地後就不能更改降落跑道,所以驾驶员将返回出发的机场并且重新开始整趟飞行....。 (译注:虽然C++执行效率非常好,但因为平台绑定的後果非常麻烦,因此只要需求有了改变就常常意味着部份或全部得要砍掉重练) 三、PHP 航空 当你到达机场,你发现许多人四处拖着飞机零件。当你询问为何是这种状况时,一个人回答「因为你要飞行,所以这就是他们正在制造它的原因」,你正要试着问这里是否有任何预先组好且通过安全测试的飞机时,那个人已经带着夹在手臂下的大机翼消失了....。当你登机後(这时左机翼还没有完工,但空姐保证会在起飞前完成),你遇到了一个小孩子,你问他是否是第一次飞行,但看起来他却是这架飞机的驾驶员。这个孩子说他从婴儿时就开始玩玩具飞机,且他有套真正的驾驶服,所以他是非常有资格架驶这架飞机的。 (译 注:PHP利用基本组件加上插件的方式拼凑出环境後,是可以在执行中再去加挂新元件的,如果没有找到完全符合需求的预组套件,需要再加挂也是很常有的事, 加挂後的稳定性或许就不是原套件能保证的了。而那个驾驶员小孩....不知道他玩的玩具飞机是不是在指Perl?XD) 飞机刚起飞後有遇到一些乱流,但随即就好转且正常上路了。当飞机正在飞越海洋时遇到了一场暴风雨,这孩子看起来显得有些害怕,但依然尽力想要挽救局势,随着愈来愈多乘客感到恐慌,小孩开始哭泣并且放弃挣扎。你试着自行操控这架飞机,但这里没有任何使用手册....。当飞机直向海面正要坠毁时,你看了看窗外并看到一个人正在小船上惨叫。至少,你走的并不孤单....... (译 注:PHP的平台维护有相当程度要依赖系统管理者或PM的认知,由於专案多少在开发完成前平台都还可以能改参数、加元件....或许就没有逐步建立文件纪 录,一旦管理者或PM人间蒸发时,下头的开发者可能谁也没法了解到全貌,毕竟会写的人未必能够维护平台,一旦关键人物消失平台失控时,有时 Programmer再强也还是救不了system crash的命摺V领蹲钺崴嵴f走得并不孤单....嗯,这真是太机车了XD) 四、.NET航空 你抵达一个非常新颖的机场,只有一个柜台可以供你check in,但你不需要做任何等待且有位非常友善的女性会帮助你。Check in之後你决定要吃些东西,这里只有一间餐厅但相当的贵,不过食物还不错,所以你也就不在意了。你被另一位非常亲切的空姐导引到你的班机,这里只有一条长廊可以让你通行,所以其实你不需要任何协助,但换个角度想其实他也倒蛮舒服的。你的班机是机场上唯一的一架,但他很棒,有很好的椅子以及美妙的机上晚餐。大约20分钟後,你降落在一个跟出发地完全相同的机场,因为那也是.NET班机惟一能降落的地方。 (译 注:新颖的机场意味着一个华丽的操作平台,单一柜台代表入门处只有一个,只有一间餐厅且很贵代表只有Visual Studio可以选XD(不过早已有免费的精简版可下载),不断强调非常亲切是整个平台毕竟大家都蛮容易上手,食物还不错代表上手不难,而只有一条长廊代 表没有什麽3rd party方案吗?只有一架班机这点如果从Compile的角度来解释,反正最後都是被转换到CLR才执行,这倒也就有符合作者的描述,至於降落点唯一当 然可以是指执行的平台上要有相同的CLR。但後头这边的描述如果是以Framework版本来解读就不为真了,毕竟.NET FW的特色是彼此不相容(向上向下都不行),机场是否一模一样及惟一就不一定成立了。不过作者写的真的太美好了,如果是不在乎环境被绑架、想要好上手方案 单纯的人看到这种描述,搞不好只会觉得这样很棒咧(远目)) 五、Java航空 你带着所有的行李抵达机场,相当的重,所以你感叹道"真希望能有谁来帮我提他们...."。很快的,航站内所有角落的人都向你这跑来并提供他们的服务。有些人向你要求一些小钱,但大多数都是免费的,因为他们就爱拖行李。起初你对这群人期待过高,但是过了不久,你逐渐了解其中部分的人且发现他们真的不错。当你快要抵达班机时,你发现这边不只有一架,而是完全不同的五架,但他们都是飞机且都能带你去任何想去的地方,其中有些甚至是免费的。你看到一些人-特别是穿西装打领带的,他们不相信一切免费的班机且对多样化的选择感到焦虑。所以他们走进一栋巨大的蓝色建筑物,你听说只要付出足够的钱就可以让蓝色建筑里的人替你做任何事并帮你做决定,但你因为有点缺现金且发现从没看到任何人再走出这栋建筑物....所以你决定选择其中一架免费班机。在一段愉快舒适的旅程之後你顺利到达目的地,你试着说服你的朋友选择搭乘Java航空去旅行,但他们全都对你说"他是免费的吗??那他不可能是好的....".... (译注:很重的行李应是指各式3rd party library,四处出现的帮手应是指各式3rd party development tools,就爱拖行李或许是指热心的开放源码社群?过於期待是因为真正顺手且像Eclipse好用的工具并不多吧。这边的班机应该是指不同的VM与平台 提供者,而做选择对於某些人来说的确是很难,所以他们就去找了....呃....蓝色巨人来花钱消灾XD....做任何事跟做决定就是客制化跟顾问啊~但 只要一但用了就很难再转换系统,因此也就没人走出来了XD,最後则是讽刺某些不相信免费解决方案能顺利解决问题者的心态。) 译者的话 : 结论:感谢所有跟我很认真讨论各个梗来源的好同学们,我还真是吃饱太闲翻完了....这作者感觉很讨厌PHP,另外要嘛是不懂.NET,要嘛就是M$的支持者XD!!是说二三四五我都搭过耶,怎麽会有如此不忠实的顾客!(大误)


--
snigoal,Wuhan,China

没有评论:

发表评论

VISIT COUNT