名词王国里的死刑

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

名词王国里的死刑Hello,world!今天我给大家讲一个关于Java魔鬼国王和他在全国范围内驱逐动词的故事。注意:这个故事并没有什么圆满结局。如果你心灵脆弱或者吹毛求疵的话,这个故事不适合你。如果你易于动怒或喜欢在别人的博客上妄加评论,那么请立即停止阅读。在我们开始这个故事之前,先让我们熟悉一下背景:溢出的垃圾所有使用Java的人都喜欢“用例”,所以让我们以一个用例开始吧:倒垃圾。就像这样:“Johnny,快去倒垃圾,他都快溢出来了!”如何表达倒垃圾这一活动呢?如果你是一个正常说英语的人,你可以粗略地用以下几句话来描述它在水池下取出垃圾袋带着垃圾袋去车库把它扔到垃圾桶里走回来洗手坐回沙发上继续玩你的电视游戏(或者干其他的事)即使你不用英语思考,你也会想象出一系列类似的动作。不考虑你选择的语言,或者采取的具体步骤,取决于你采取的行动,倒垃圾是一系列终止于垃圾在外面,你回到屋子里的动作。我们的思想充斥着各种或勇敢的,或暴躁的,或激昂的动作。我们生活,我们呼吸,我们走路,我们谈话,我们笑,我们哭,我们希望,我们害怕,我们吃,我们喝,我们走,我们听,我们倒垃圾。我们能自由地“做”和“行动”。假如我们只是石头,生活没准还算好,但是我们不会自由。因为我们可以“做”事,所以才会自由。我们的生活也同时充斥着各种“名词”。我们吃“名词”(食物),我们从商店买“名词”(商品),我们坐在“名词”(凳子)上。“名词”(石头)可能会忽然砸到你头上,在你的“名词”(头)上弄一个“名词”(大包)。名词即事物,想想没有了事物我们会怎样?但他们仅仅只是事物,比如:意味着结束或者结束本身,或者一些贵重物品,或者我们周围经常看到的事物的名字。这是一座建筑,那是一个石头。任何一个小孩子都能指出名词,仅此而已。发生在名词身上的“变化”才是最有趣的事情。变化需要动作。动作是生活的调料。动作甚至给了调料以调料!毕竟除非你“吃”它,你是不会感到香这种味道的。名词也许无处不在,但是生活一直在变并一直有趣的功劳还是在于动词、当然,除了名词和动词,我们还有形容词,介词,代词,冠词,连词,语气词,和许许多多其他让我们构造有趣语言的词汇。它们都在语言中扮演着自己的角色,而且每一个都很重要。如果它们哪一个不存在了的话,那是挺遗憾的事情。那么,如果有一天我们不再用动词了,你是不是感到很奇怪呢?在下面我要给大家讲的故事里,这件事情真的发生了……名词王国在Java王国中,国王Java以铁腕统治着他的国家,而他子民的思考方式也并不和你我一样。在这里,你可以看到,名词是十分重要的并直接服从国王的命令。名词是最重要的居民,它们身穿艳丽的服装显得高贵而优雅,而这些衣服是由形容词提供的。而形容词哪,也很满意它们的生活,当然,他们不可能像名词那么高贵,不过相比于动词来讲却幸运得很多。因为,动词在Java王国里的日子,相当,相当的糟糕。奉国王Java的法令,动词是隶属于名词的,但他们不仅仅是宠物而已。或者说连宠物都不是,在整个国家,动词负担起所有的劳力工作。实际上,他们是王国的奴隶,至少是农奴或者契约奴之类的。Java王国的居民对自己的生活还是比较满意的,他们从来没有想到会发生什么变化。动词负责王国里的所有工作,但是仍然获取不到任何尊重,甚至都不允许单独出来。如果一个名词被发现在公共场合出现,它会立即被名词逮捕。当然“逮捕”也是一个动词,他也从不被允许单独行动;你必须创造一个“动词逮捕着”来协助逮捕。但是“创造”和“协助”哪?这样的话,“创造者”和“协助者”也各自在这个工作上伴随“创造”和“协助”起到了重要的作用。国王Java,在他的上帝Sun(现在是Oracle了吧...[译者注])的指引下,时不时地威胁要将所有动词驱逐出王国。如果那一天到来了,他们当然需要至少一个动词来做各种工作,而从国王残忍的幽默感上猜测,这个动词很可能就是“执行”。动词“执行”(execute),和它的亲戚“运行”,“开始”,“走你”,“做”,“就这样做”或者相似的什么词可以通过找到合适的“执行者”来替代任何其他的动词。想等(wait)一下?Waiter.execute().刷(brush)牙(teeth)?ToothBrusher(myTeeth).go().扔(takeout)垃圾(garbage)?TrashDisposalPlanExecutor.doIt()。没有任何一个动词是安全的,一切动词都会被执行的名词而取代。在这种精神更加泛滥的角落,名词已经把动词驱逐干净。不仔细看的话,你会觉得仍然有动词存在,比如耕种或倒茶壶,但是一旦仔细观察,真相便浮出了水面:名词可以随意命名紧跟在它们后面的动词“执行”,而不改变自身的角色。所以,当你看到“耕地者”在“耕地”,“倒茶壶者”在“倒”或者说“注册管理者”在“注册”,你真正看到的是魔鬼国王Java的“执行者”大军,只不过他们披着所有者的外衣而已。在其他王国里的动词在其他编程语言的王国中,倒垃圾是一件很直白的事情,和我们用英语表述的十分相似。在Java王国中,数据实体是名词而函数是动词,而在其他王国中却不然:王国的居民是混在一起的,而且在能顺利完成工作的前提下,只要他们愿意,既可以是名词也可以是动词。比如在附近的C的领域,JavaScript的地盘,Perl的地盘和Ruby的地盘,他们可能会把倒垃圾这件事分解成一系列的动作(或者叫做动词或者函数)。如果他们将这些动作以适当的顺序应用于适当的事物(拿垃圾,把它带出去,扔到垃圾桶里等等),倒垃圾的任务就圆满成功了。在这个过程中根本不需要执行者或其他的伴随者这出现。在这些王国里,真的没有必要创造这么多的包裹器来包裹动词。他们没有“垃圾倾倒策略”之类的名词,或者“垃圾倾倒地点定位者”来只是你倒垃圾的路径,也没有“倒完垃圾后的回调”来保证你倒垃圾后回到自己的沙发上。他们只是写一些动词来操作名词,并创建一个主要的名词,例如,提出垃圾(take_out_garbage())并把一些需要做的子动作放在里面。在这些王国中,当需求提升的时候,也通常有一种机制来生成比较重要的名词。如果这些精明的创造者创造出了一个全新的名词,比如房子,马车,或者耕起地来比人还快的机器,他们会被给予一个统一的概念:类。而人们会给类一个名称,一个描述,一些状态和一些操作建议。这些王国与Java的不同之处在于,动词是允许单独出现的,你没必要创造新的名词去束缚他们。Java王国的人一种轻视的态度看待他们的邻居;而这也是程序诸王国的现状。如果你挖个足够深的洞...在世界的另一边,有一篇贫瘠的居住地。在那里,动词居民的地位十分之高。这就是函数式王国,包括Haskellia,Ocamlica,Schemeria和一些其它的国家。因为附近的国家很少,他们几乎不与Java王国何其附近的国家有接触。也正因为这样,函数式诸国们相互轻视,并有事没事的时候打一仗以排遣寂寞。在函数式王国里,名词和动词一般被看做同样等级的居民。但是,名词,对是名词,基本上整天无所事事。他们的出现在做事或者执行任务的时候并没有多大意义,因为活跃的动词们基本把能做的事情都做了。这里也没有什么奇怪的法律说要创造各种“帮助者”来帮助动词做事,因此在这些王国中,名词的数量和实际上存在事物的数量是相同的。这样做的结果是,动词在这片土地上为所欲为(请原谅我的用词)。如果你是一个外来人,你很容易产生名词(函数)是这里最重要的居民的印象。顺便提一句,这也是为什么这里被叫做函数式诸国还不是事物诸国的原因。在最为遥远的地方,远离函数式诸国,存在着一块传说中的土地,“LamdatheUltimate”(终极lamda?霸气~[译者注])。传说中在那里,没有名词,只有动词。那里有事物,但事物由动词组成。如果传说不虚,甚至数字,那里最为流行的货币,也是动词!数字0被表示为lamda(),数字1是lamda(lamda()),2是lamda(lamda(lamda())),以此类推。在这片神奇的土地上,一切事物,别管你是名词,动词,还是其他什么,都是由最基本的动词lamda组成的。老实说,Java王国中幸福生活着的居民并没有意识到另外一个世界的存在。你能想象得知此事之后的文化震动么?他们可能会发明一个新的名词(比如“憎恶”)来表达自己新的感受。Java王国中的居民真的快乐么?你可能觉得Java王国中的生活有点奇怪,如果糟糕的话还效率还会变得十分低下。不过,你能从一个地方的童谣中看出他们的幸福程度,而Java王国的童谣,是一群古怪的诗。比如,这里的儿童经常朗诵的寓言:(这就不翻了[译者注])Forthelackofanail,thrownewHorseshoeNailNotFoundException(nonails!);Forthelackofahorseshoe,EquestrianDoctor.getLocalInstance().getHorseDispatcher().shoot();Forthelackofahorse,RidersGuild.getRiderNotificationSubscriberList().getBroadcaster().run(newBroadcastMessage(StableFactory.getNullHorseInstance()));Forthelackofarider,MessageDeliverySubsystem.getLogger().logDeliveryFailure(MessageFactory.getAbstractMessageInstance(newMessageMedium(MessageType.VERBAL),newMessageTransport(MessageTransportType.MOUNTED_RIDER),newMessageSessionDestination(BattleManager.getRoutingInfo(BattleLocation.NEAREST))),MessageFailureReasonCode.UNKNOWN_RIDER_FAILURE);Forthelackofamessage,((BattleNotificationSender)BattleResourceMediator.getMediatorInstance().getResource(BattleParticipant.PROXY_PARTICIPANT,BattleResource.BATTLE_NOTIFICATION_SENDER)).sendNotification(((BattleNotificationBuilder)(BattleResourceMediator.getMediatorInstance().getResource(BattleOrganizer.getBattleParticipant(Battle.Participant.GOOD_GUYS),BattleResource.BATTLE_NOTIFICATION_BUILDER))).buildNotification(BattleOrganizer.getBattleState(BattleResult.BATTLE_LOST),BattleManager.getChainOfCommand().getCommandChainNotifier()));Forthelackofabattle,try{synchronized(BattleInformationRouterLock.getLockInstance()){BattleInformationRouterLock.getLockInstance().wait();}}catch(InterruptedExceptionix){if(BattleSessionManager.getBattleStatus(BattleResource.getLocalizedBattleResource(Locale.getDefa

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功