我最近一直在思考一个问题,大概9年前,我使用sea.js进行前端编程,那个时候觉得它很神奇,但于此同时,AMD/CMD带来的心智负担也很重,在编程中往往遇到一些不符合预期的结果。而我最近写了一个框架PHC,就开始反思,从技术层面讲,在sea.js的时代,似乎也是可以实现PHC的,为什么时隔那么多年,我才能写出这样的一个框架来呢?经过反思,我想这里面最大的原因,在于编程思维的进步。
我为什能写出PHC呢?因为我这么多年在前端的开发经验和尝试,让我自然而然的写出来。而我的这些尝试,往往又是在整个大的技术背景下被驱动的,如果没有这些年在sea.js, angularjs, vue, react等等框架的影响下,没有nodejs, 前端工程化, SSR, 微前端等等技术风潮的熏陶下,我也没有意识去写一个这样的框架。当随着技术的洪流随波逐行时,我们这一批的程序员的思维也在变迁,以前想不到的东西,在通过几个代际的更迭之后,也逐渐有了新想法,就有了PHC的尝试。
这一经历中,我发现,在sea.js的时代,我们完全可以做到PHC的同等效果,但是我们又做不到,因为那个时候没有UI组件化思想、微前端思想、沙盒思想,这些思想都是近几年才出现的,因此,在那个时代,我们无法做到。同样的道理,我现在能写出PHC,就像当年玉伯写出sea.js一样,他在模块化思潮的影响下写出的优秀框架,却无法超越时代写出更精简的实现。借古推今,再几年后,我自己回头看,也会感叹,自己当初怎么只能写出PHC这样的框架呢?历史时点上的思维限制,是我们技术发展本身无关的,虽然在技术发展中,新技术可以为我们提供可以用更少代码实现更强能力的工具,但是我们还是要看到,技术思维的发展,才是我们突破技术局限的核心根源。
这让我想起《三体》小说中的一句忠告:你要想,多想!