“不同意。”阿坤扯了扯嘴角,一个很浅的、几乎看不出的笑,“我爸说要打断我的腿。我妈哭了三天。我弟说我疯了。”
“那你还出来?”
“在家也做不了事。他们整天念叨,邻居指指点点。”阿坤看著手里的水瓶,“我需要电脑,需要网,需要安静。家里没有。”
林浩没说话。他能想像那个画面:一个十九岁的少年,执意退学,家人反对,邻居非议,他把自己关在房间里,对著电脑,写那些没人理解的代码。饿了吃泡麵,困了趴在桌上睡,一天说不了三句话。
“你住哪?”林浩问。
“车站旁边的招待所,一天十五块。”阿坤说,“钱快用完了。”
“你哪来的钱?”
“以前存的。做家教,写小程序,攒了两千。用了三个月,还剩三百。”
三个月,两千块,在合肥生活。平均一天二十多块,要吃饭,要住宿,要上网。很难。
“你做的题我看了。”林浩换了个话题,“47行,sph简化版。怎么想到的?”
阿坤的眼睛亮了一下。那是说到他擅长领域时的光芒。
“sph標准算法在flash上跑不动,粒子一多就卡。我简化了核函数,只保留密度项和压力项,粘性项用人工粘性代替。交互半径固定,不用kd树搜索邻居,用均匀网格加速。时间积分用显式欧拉,虽然精度低但快。”他说得很快,很流利,不再是刚才那种迟疑的语气,“最后加了简单的边界处理,粒子出界就反弹。”
“性能呢?”
“100个粒子,24帧。200个粒子,15帧。够用了。”
“代码风格很乾净。”林浩说。
“嗯,我喜欢乾净。”阿坤说,“多余的代码就像噪音,干扰思考。”
林浩点点头。他懂这种感觉。好的代码像诗,简洁,准確,有力。
“你为什么出那道题?”阿坤突然问。
“找能做事的人。”
“找到了吗?”
“找到了三个。你是其中之一。”
阿坤沉默了一会儿,看著树影在地上摇晃。
“horizon工作室,”他说,“到底是做什么的?”
“现在做什么不重要。”林浩说,“重要的是未来做什么。”
“未来做什么?”
“做別人做不到的事。”
阿坤转过头,看著林浩。他的眼睛在树荫下很亮,像某种夜行动物的眼睛。
“比如?”
林浩没回答。他从书包里拿出那本《c++primer》,翻开,里面夹著一张纸。纸上是他手写的一段代码。
“你看看这个。”他把纸递给阿坤。
阿坤接过,看了几行,眉头皱起来。
“这是……什么语言?”
“c++,但又不太像。”林浩说。
阿坤继续看。他的眉头越皱越紧,嘴唇抿成一条线。他看得很慢,很仔细,有时会停住,手指在纸上虚点,嘴里无声地念著什么。
那是一段关於並行计算的代码。用到了c++11的线程库、原子操作、无锁数据结构。在2002年,c++98都还没普及,c++11要等九年后才出现。这段代码里的概念,对现在的程式设计师来说,是天书。
阿坤看了整整五分钟。然后他抬起头,眼睛里是一种林浩从未见过的神色——震惊,困惑,但更多的是狂热。