demo 与产品之间的鸿沟
昨天看到有人转发 Andrej Karpathy 的一段访谈,里面谈到了当十几年前他去试乘 Waymo 的自动驾驶时,被其“完美”惊艳到了,但是十年过去真正的自动驾驶依然没有到来,这段被坑的经历使得他对 demo 毫无感觉。
想起前几年我入职前司时,也体验了一把晚高峰从公司到珠江新城这段颇为复杂的路况的 demo,也是那种被惊艳的感觉,明显感觉这自动驾驶开得比我好。有一些艰难地路口,它甚至会加塞,表现跟那种出租车老司机师傅似的。
很快我就知道,现实并非如此。那趟 demo 之所以如此完美,是因为那条路线是每天都在跑的,经过了专门的优化。可以说,在每一个艰难的地方,都有工程师做了专门的处理,就差在代码里写死到了哪个坐标应该怎么开了。彼时特斯拉的端到端还没有大放异彩,PNC 还是国内自动驾驶企业的主流方向。看似完美的那条路线,只是叠加了更多的 if else。后续我引入了多条从没跑过的路线让那些车子去跑,难度都不高,但表现的效果就明显比那条专门的 Demo 路线差远了。
后来公司的联合创始人之一跟我讲了他们创立公司开始融资时的 demo,实现的方法就更为夸张了。具体细节有点儿记不清了,记得的部分也不是很方便讲。
Andrej Karpathy 其实是在拿自动驾驶的例子,说了一下现在软件工程领域大量的 vibe coding 可能蕴藏的风险。自动驾驶出了问题的后果可能是有人会受伤,而软件工程里蕴藏的这些危险,后果甚至无法想象。
近期我也 vibe coding 了一些小东西,再次感受到一个令人惊艳的 demo 和实际能用的产品之间的巨大差距。开始帮媳妇做了一个看上去很不错的网站 demo,从写到部署上线也就用了半小时都不到,但是真要改成能用的网站,花的时间、要扣的细节就太多了,以至于现在真正要用的那个网站至今都没有上线。