每一行代码,都自具威力,每一个程序员,都是侠客。
编程为武,是这个江湖的终极法则。
我离开故乡的时候,村头的樱花刚开,在樱花下阿黄望了我很久。我又回望,远方的青山隐藏在云雾里,从中走出的一条细水缠绕着小村,水边散落着樱瓣,美的心醉。
我先转了身,再听到阿黄呜呜的离去。
必须要离开了。在这个村子里,竟然没有一个人会写C++,即使最牛叉的村长,也只会写两句C语言。当土匪们用不知哪里抄来的JAVA代码洗劫村子时,我们只能任人宰割。
即使我们偏安一隅,依然身处江湖,你想离开,江湖也会找上你。
所以,必须要学会在这个江湖上立足。
连我这样的村汉也知道,江湖上最火的门牌当属C++,JAVA,C#三派,他们风头极盛,组成面向对象大联盟。
虽然据传这几个门派的弟子很少有找到对象的。
像C门派这样享誉百年的名门正派,即使一时不温不火,依然是江湖上最强大的存在。只是听说此门易学难精,我还是先去JAVA派探探究竟。
途经一个小酒馆,进去垫垫肚子吧。小二看我进来,立刻招呼起来:
这位客官,hello world!
我回以江湖之礼:hello world!
二两淡酒下肚,我已有些晕乎乎,斜眼看到前桌坐着一位黑衣妙龄女郎,身材婀娜,淡纱遮面,看不清楚样貌。
我心想,江湖就是江湖,这可比村里的小花好看多了。
没想到那妙龄女郎起身向我走来,坐在我对面:
公子,可否喝你一杯酒?
女郎解开面纱,一张瓜子脸,柳叶眉,胭脂淡抹,眼睛妩媚而锋利,看的我低下头去。
女郎倒不客气,拿起酒喝了一杯。凑到我耳边说道:喂,我师父看上你了。
我本来不胜酒力,被她身上的香气弄得更是晕晕乎乎,看到她努嘴的方向坐着一白胡子老头:姑娘,不,不好意思,我对老头儿不感兴......
话没说完,我忽然感觉耳后一击,就晕厥过去了。
等我醒来,发现自己躺在一张破旧木床,妙龄女郎背对我站着,那白胡老头正笑吟吟看着我:
小哥,欢迎来到编译门。
我还处于头蒙的状态:啥?啥门?
老头忽然提升了音量:编尽天下难编之题,译出世间难译之处。
编啥玩意儿?译啥东西?
你能听到编译二字,说明你果然有慧根,不枉老朽慧眼识英雄。从此,你就在此山中做老朽的弟子吧。
我大声喊到:老头,你别瞎扯,你这破门派我可不愿意呆,我要去投JAVA门的。
老头又道:你可知何为编译?任你武功再高,算法再精,若无本门心法相辅,都一无是处。
我不屑:你别打虚假小广告,大丈夫一言九鼎,说不入门,就不入门!
老头手一摆:来来来,见过你师姐。
妙龄女郎向我走来,亮若朗星的眸子盯着我。
我抱住老头大腿:师父!徒儿终于找到你了。
就这样,我开始了在编译门的修行。门中统共只有三人,师父,师姐和我。
我事后问师父:芸芸众生,为何师父当初一眼相中了我。
师父摸摸长髯,叹了口气:那日我看你行囊饱满,还以为你是多金之人,没想到......
我打开行囊,对师父说:师父,这么多炊饼,半年来也快吃光,就剩最后一张了。
师父老泪纵横:憋说了,喂我。
第一堂课,师父问我知不知道啥是编译。
我自然不能示弱:编译,就是编造,通过胡编乱造来唬弄别人。
师父一脸萌逼:是谁教你这么一本正经的胡说八道的?
师父轻推一掌,一串代码从掌心射出,远方的竹子晃动起来。
我大惊失色,这串代码只是简单的数组元素叠加,不足为奇,可是师父如此轻描淡写就使了出来,而且换行缩进如此美妙。要知道我们村长打出这一招要运功半个时辰才行。
师父问我:你看到了什么?
我朗声答到:数组元素叠加的C代码。
师父冷笑:那是你看到的,你知道我们编译人看到了什么?
师父掌心一翻,代码长度变长了好几倍,而且稀奇古怪看不懂。
天书?
师父一巴掌打在我后脑勺:这叫汇编,这是程序的真面目,江湖上没几个看得懂的,这是我们编译人的必修课。
我佩服得五体投地:师父你好牛逼啊。
师父又道:我们门派两门主要武学,一是查错,一是优化,你想学哪个?
我说:我都学。
师父又敲了一下我的头:你天赋平平,炊饼也吃完了,你师姐主修查错,我就教你优化。你抓紧学,学完就走,山上都不够你吃的。
自此我就在编译门中住下,潜心学习优化宝典。但又不能忘记撩妹,我总缠着师姐,让她教我查错。
师姐一向冷冰冰,见了我就更冷了。她说教我可以,但我学不好就要受惩罚。我自然答应。
自此以后,我一边跟师父学优化,一边缠着师姐学查错。她教我倒教的认真,只是我一旦错了,她就要用细细的皮鞭抽打在我身上。
那时候师姐的脸上会露出难得的笑容,就像故乡村口的樱花一样美。
我问师姐:你干嘛老抽我。
师姐嗑着瓜子:你长的不抽你感觉对不起我自己。
我一片迷茫:你是不是学编译学郁闷了。
师姐仿佛被戳了要害,拿起皮鞭又狠狠抽了我一顿:你憋说话了,赶紧把那个段错误的问题找出来!
说实话,编译确实难学,也不知道有啥用。我知道高手大段大段的高级代码打出来,可是有惊天震地、日月变色之功效。我们编译门整天不知道在干些啥。
我问师父:我们编译门的武功到底有啥用?能不能克敌制胜?能不能一统武林?
师父指着一口深井,点了两下。
我大悟:师父,你是说我们的武学如这口井一样深不可测。
师父走到井边,褪下裤子,对着井口撒尿。
我迷惑不解:师父此举,是要以现代无厘头来解构经典教科主义吗?
师父眉头紧锁:我TM撒泡尿你老逼逼啥,滚出去编程!
师父故意不讲,我自己也略知一二。此门武学,重内在而轻表面,讲求理解而非苦练,越弱则强,越强更强,必定是江湖上一大利器。
三年后,师父说我学业已成,让我下山闯荡。我自觉学业不精,又舍不得师姐,还想再学两年。
师傅说道:你基业已成,如不去江湖历练,万难精进。何况,你胃口太好,山上粮食已不足。
临行时师姐反常的抱住我,我倚在她软软暖暖的胸脯上,听她说到:以后再没法抽你了。
我离开时,山上的桃花开的正美,就像师姐的微笑。
我不知道该上哪儿去?闯荡江湖?荡我会,闯就不知该去何处了。
行至一座小城,一家酒楼,上书三个大字:
结构体酒楼。
还配以对联一副:对象不知何处去,指针依旧笑春风。
酒楼里煞是热闹,一堆江湖汉子围成一个圈,不知在看些什么。
我挤了进去,人群当中竟是两个人在对决:一个高大威猛,肌肉虬结,对面站在一个矮他两个头的小姑娘。
我细细看去,那小姑娘长的好像师姐,只是脸蛋稍圆,眼眸温润,没有师姐那般盛气临人。
那肌肉汉子双掌前推,JAVA代码源源不绝,显然内力深厚,至少有十几万行代码量的修为。那少女辗转腾挪,使的是fortran功夫,比那汉子功夫要弱。
我哪看的过去?这么好的妹子这个屌丝一点不懂怜香惜玉。于是我定睛看去,那java代码在我眼中都成为一行行汇编,其内在结构了然于胸。这厮功夫虽高,这套代码中隐藏的BUG却也不少,在汇编中一目了然。
姑娘,他1001行,16734行有两处访存越界,造他出错!
少女悟性甚高,一招偷梁换柱,轻松变换几个输入,那汉子的程序已然崩溃,内力爆裂,反伤自身。
少女跑过来牵着我手:哥哥,咱们快跑,他们人多!
我们就这样玩命奔跑起来,不知几时,夜色朦胧着翻上来,我们坐在一片绿草之中。
少女握着我的手还没撒开,眼睛忽闪忽闪看着我:哥哥,你好厉害!
我微微一笑:哈哈,小事情。我留心看去,这姑娘就像年轻五岁的师姐,秀美有余,艳丽不足。
少女自顾自说起来:我出来十几天了,不知道师父可曾想我?我是fortran门的。小门派,就在科学计算城外的小村子里。你武功这么高,可我看不出你是哪门哪派?
我拍拍胸膛:我来自编译门!
小姑娘哦了一声,她显然没听过。我问她:这位姑娘,你准备哪儿去?
她黯然低下头:你别叫我姑娘,显老。我叫阿程。我原本想去参加IT论剑,看我这功夫,那也是不必去了。
我看她莹莹弱弱,眼波流转,似要低下泪来,忍不住说道:你别这样,我陪你去参加,可好?
她又叹一口气,你功夫虽好,即使陪着我,也并无用,我还是赢不了。赢不了,便见不到。。。唉,也无卵用。
这一瞬间,阿城的我见犹怜让我忽然发觉所学之用。我说道:有用的有用的。你且打一套功夫来。
阿程将信将疑,还是打出一套矩阵乘运算。夜空中浮现一道剑波,滑向水面,激起阵阵涟漪。我会心一笑:你再打来。
阿程又发功,我悄悄运起优化大法,一注无形之气直注入阿程打出的程序流中。本来一道淡淡剑波,瞬间变成一丛锋利刀影,向前疾驰而去,一小片竹林瞬间七零八落。
阿程眼睛都瞪大了,下巴都快掉了:这,这是什么功夫?
我迎风而立,无比自信:这就是,优化大法之循环迭代优化第九层!
我和阿程结伴而行。我想问她为何一定要去参加IT论剑,却问不出口。
我看她眼眸中时时流露痴痴之情,心想那答案我不知道也罢。
论剑在都城举行,由因特尔元帅,艾比阿木将军和苹果员外联名赞助,声势相当壮大,各地前来参赛的高手不计其数。
我从未见过如此壮观场面,就连叫卖的小贩都器宇轩昂,谈吐不凡:这本《程序员的自我修养》乃是绝版真品。识货的来,不懂的滚。
阿程也没见过这大场面:人好多,看起来都好强,吓死宝宝了。
怕啥?有我呢。
论剑采用了二叉树算法:两两决战,胜者继续向前,败者直接淘汰。
阿程的第一个对手弱的令人吃惊,他反反复复打出乘法口诀拳,威力只够挠挠痒。
而且打到三五一十五的时候他总是使不对,终于崩溃大哭:三五,三五,三五太难了!一点也不简单!
阿程好生心疼,只好用了一招循环迭乘把他送回家。
这就是江湖,你预料不到,你无法可想。
后面的对手渐渐厉害起来,或是算法精妙,或是程序庞大,都不好对付。以阿程的功力,可能早该淘汰了。
但我一直与阿程相距不足五米,或是偷偷点拨她对手的bug所在,或是运功帮她优化。如此,她一路披荆斩棘,对阵图上只剩下最后四个人。
阿程的对手是一个一身邋遢的男青年,他带着黑框眼镜,头发散乱,衣服沾满污迹,前襟还挂着两根面条。
我深深的畏惧了。
师父曾跟我说过,江湖上有一个极其牛叉而神秘的流派,他们很少在江湖行走,生活邋遢,但武功极高,天才辈出。这个流派就叫:
宅男族!
没错,我眼前的这一位,应该就是传说中的宅男族。
我悄悄告诉阿程:此人不可小觑,你要小心。
阿程哦了一声。她使出毕生绝学,打出一套完整算法,这套算法计算密集,颇具威力。我又暗注优化内力,力求第一招就克制敌人。
宅男冷笑了一声:这什么破代码?
他随手一挥,阿程的代码灰飞烟灭,或许只有我看清了,他挥出一段病毒代码,把阿程的程序破坏殆尽。
该我了。宅男手又是一挥,一长串C代码破空而出。这串C写的艰深晦涩,就连高手都难以看懂,幸好有我。
我双手左右翻转,那串C在我眼中化成一行行汇编,程序架构一目了然。
可是,这程序中没有bug。
真的没有bug。
那串代码形成的剑锋已快达她胸前,阿程看着我,大眼睛忽闪忽闪。她期待着我救她。
我曾经问师父:世间的武学,都会有bug吗?
师父当时正在看武侠小说:有人的地方就有江湖,有江湖的地方就有bug。
我继续追问:假如真的没有bug呢?
师父看着我,一声长叹:为师不能告诉你,那将有违师门古训。
编译门只有一条门规:永远,保证,程序的正确性。
反向思维,在阿程命悬一线的时候,我想到了:
没有bug,制造bug。
我在宅男的程序流中插入了栈溢出访存指令,程序流轰然爆炸,宅男被反伤倒地,口吐献血。卧槽,这什么情况?宅男百思不得其解。
我眼里只闪现出师父的言语:一旦违背门规,逐出编译门,终身不得复归。
还有师姐的背影,回眸时眼睛里的冰山冷峰。
决战开始了。
阿程的对面,一名黑衣女子黑纱遮面,长身玉立。
师姐!
阿程竟然也认识她:你终于出现了。
师姐鼻子里哼出一个嗯字。
阿程又道:我若真打赢了你,你能实现你的诺言吗?
师姐冷笑:你以为我不知道你是怎么赢到现在的?那个臭小子!
师姐转眼就盯住了我!眼神之凌厉,就好像那皮鞭又抽打在我身上一样。
你违背门规,从此不再是编译门中人,你知道吗?
我黯然低下头。我的那点小伎俩自然瞒不过师姐。
阿程迫不及待:那我们快开始决斗吧!她说完转身给了我一个甜笑,眨了两下眼睛。师姐双手挥舞,口中念念有词,脚步在地上画圈。霎时间飞沙走石,风云变色,我们仿佛深处另一个世界。
这,这是?
异界!
深处异界,所有程序都成为废弃代码,没有任何效应。
师父曾经给我讲过异界的传说。他说,江湖上能破解异界的只有编译门,再无其他!
当时我还以为他在吹牛逼。
阿程所有的代码打出来都无声无息,师姐静静的看着她累的满头大汗。
师姐随手一挥,阿程一个踉跄坐倒在地。
师姐打出的是简单的运算程序,为何能在异界生效?
只有我看的清楚:
那些代码转化而成的汇编指令,是属于异界的专属指令。
难道,难道师姐已经炼成了跨平台编译神功?
这样阿程只能坐以待毙。她几番向我看来,额头渗出了细细的汗珠。
结界!只能设立结界了!
所谓结界,就是修改二进制码,让所有指令都变成非法指令流,那样就能限制师姐。
建造结界,需要耗费极大的精力,何况,我真的要帮助阿程到这种程度吗?
我们萍水相逢,我之所以帮助她,不过是因为她有那么点像师姐罢了。
阿程忽然跪倒在地:姐姐,我打不过你。当年你说,我如果在论剑上夺魁,你就愿意娶我,没想到你亲自来阻拦我了。
师姐冷冷的说:你我同是女子,怎可成婚?
阿程哭了:我喜欢你,只是你恰巧是个女子,我又有什么法子?
师姐又道:我言而有信。你胜,我娶你,你败,就是死。
这是师姐的风格,她是天蝎座。
我忽然叫到:那如果平局呢?
平局?怎么可能?
我不依不挠:如果真的平局呢?
那就听你的!别废话了,我要下杀招了!
一缕强光在师姐手中汇聚,那是师姐的最强算法,没有一个bug的完美编程,接近最优的算法设计,融汇编译优化大法之精华,再加上异界的专属指令加成!
这一招普天下无人可挡。
强光不断汇聚,变强,成为一个光球,直向阿程而去!
我满头大汗,几乎虚脱,终于在最后一秒成功:
结界!!!
终
樱花树不知开开落落了多少年,故乡依然如故。
师姐和我坐在庭院,阿黄老的走不动了,躺在樱花树下啃骨头。
阿程从厨房走来:饭做好了,快吃吧。
我左手牵着师姐,右手携着阿程,仰头看那满树的樱花。
就如我当年离开家时,一样的绚烂。
本文转载于网络,具体出处已无法查证。