“以前存的。做家教,写小程序,攒了两千。用了三个月,还剩三百。”
三个月,两千块,在合肥生活。平均一天二十多块,要吃饭,要住宿,要上网。很难。
“你做的题我看了。”林浩换了个话题,“47行,SPH简化版。怎么想到的?”
阿坤的眼睛亮了一下。那是说到他擅长领域时的光芒。
“SPH标准算法在Flash上跑不动,粒子一多就卡。我简化了核函数,只保留密度项和压力项,粘性项用人工粘性代替。交互半径固定,不用KD树搜索邻居,用均匀网格加速。时间积分用显式欧拉,虽然精度低但快。”他说得很快,很流利,不再是刚才那种迟疑的语气,“最后加了简单的边界处理,粒子出界就反弹。”
“性能呢?”
“100个粒子,24帧。200个粒子,15帧。够用了。”
“代码风格很干净。”林浩说。
“恩,我喜欢干净。”阿坤说,“多馀的代码就象噪音,干扰思考。”
林浩点点头。他懂这种感觉。好的代码像诗,简洁,准确,有力。
“你为什么出那道题?”阿坤突然问。
“找能做事的人。”
“找到了吗?”
“找到了三个。你是其中之一。”
阿坤沉默了一会儿,看着树影在地上摇晃。
“Horizon工作室,”他说,“到底是做什么的?”
“现在做什么不重要。”林浩说,“重要的是未来做什么。”
“未来做什么?”
“做别人做不到的事。”
阿坤转过头,看着林浩。他的眼睛在树荫下很亮,像某种夜行动物的眼睛。
“比如?”
林浩没回答。。纸上是他手写的一段代码。
“你看看这个。”他把纸递给阿坤。
阿坤接过,看了几行,眉头皱起来。
“这是……什么语言?”
。”林浩说。
阿坤继续看。他的眉头越皱越紧,嘴唇抿成一条线。他看得很慢,很仔细,有时会停住,手指在纸上虚点,嘴里无声地念着什么。
那是一段关于并行计算的代码。的线程库、原子操作、无锁数据结构。。这段代码里的概念,对现在的程序员来说,是天书。
阿坤看了整整五分钟。然后他抬起头,眼睛里是一种林浩从未见过的神色——震惊,困惑,但更多的是狂热。
“这……这是谁写的?”
“我。”
“不可能。”阿坤说,声音很肯定,“这些语法,这些库,我从来没见过。这个‘std::atoc’,这个‘std::thread’,这个‘lo
阿坤盯着他,象在看一个疯子。
“未来?”
“恩。
沉默。只有风吹过树叶的声音,沙沙响。
“你……”阿坤的声音有点抖,“你怎么知道?”
林浩没回答。他收起那张纸,从书包的夹层里,拿出那台黑色的手机。。红色警告标志在闪铄。
他按亮屏幕。在阳光下,屏幕有点暗,但还能看清。他点开一个文档——那是他用最后一点电量,从小艺的脱机数据库里导出的,一段真正的、2028年的代码。关于分布式系统中一致性算法的实现,用了一种现在还没有的程序语言。
他把手机递给阿坤。
“看看这个。”
阿坤接过手机。他的手在抖。他盯着屏幕,眼睛几乎粘贴去。他滑动,翻页,手指在颤斗。
他看了很久。久到林浩以为他要看完了,他突然抬起头,眼睛血红。
“这……这是什么?”
“未来的代码。”
“从哪来的?”
“我不能说。”林浩说,“但你相信我吗?”
阿坤没说话。他低下头,继续看。他的呼吸变得急促,胸口起伏。他翻到某个地方,停住,手指悬在屏幕上,颤斗。
然后他做了一件林浩没想到的事。
他跪下了。
不是那种电视剧里的夸张下跪,是很自然的,像腿软了一样,噗通一声,单膝跪在地上。手机还握在手里,屏幕朝上,代码在闪铄。
“这……这是……”他的声音哽咽了,“这是怎么做到的?这个算法……这个架构……我……我想了三年,没想明白……这里,这里用了一个我从来没见过的数据结构……还有这个,这个并发模型……”
他语无伦次。眼泪从他的眼框里涌出来,顺着苍白的脸颊流下。但他没擦,只是盯着屏幕,像朝圣者看见了神迹。
林浩静