软件开发与生物学

无意中发现和尝试了 Chrome DevTools 的 Layers 面板,Get 到了庖丁解牛的新视角。不禁感叹 Web 浏览器的巧夺天工,也从此打开了浏览器从 Layout->Paint->Composite 中的 Composite 过程的研究的大门。

Layers Panel

恰好前一天同组的妹纸问我为什么微信的 Web 开发者工具的预览页底部有白边,下意识想到微信的开发工具实际上是 NW.js 做的,自然也会有开发者工具吧,一看,果然有。

微信开发者工具

由此也想到了《禅与摩托车维修艺术》中将“分析”比作“刀子”的表述。有时候的确是觉得,搞软件就像是学生物与医学,分析的手术刀用得多了,脑海里也像是有了这么一把小刀,面对一个网页,不知不觉就在脑海里拿起了这把小刀对它大卸八块和重新组装,甚至对于小刀本身也是如此。

这两者的区别大概是:生物来源于自然,计算机则来自于人类现有认知的创造。

无论自然还是人工,相同的是,当一个东西复杂到超越了人脑一下子所能承受的认知水平的时候,想驾驭它,就得靠着各种各样的工具把这把思想中的小刀变得更锋利一些。程序员只能工作在某一种抽象层级,负责更底层架构的工作者提供的抽象并不总是那么完备(特别是像 Windows、微信小程序、Safari、微信 X5 webview 内核等闭源平台),在解一些疑难的 BUG 的时候,往往也会采用提出猜想、设计实验,设置“实验组”、“对照组”,收集数据分析、验证猜想的过程,找到 BUG 发生的源头。

相通的不仅仅是分析的工具,想到 UNNATURAL 里面的法医中堂系的一句著名台词:

人なんてどいつもこいつも切り開いて皮を剥げばただの肉の塊だ。
人啊,不管是谁,划开皮,都不过是一块肉罢了。

机器由灵魂而创造,研究与探索肉块,也是为了灵魂的延续。有了更锋利的小刀,更需要小心翼翼地去把握,让它更好地为守护每一个独特的灵魂而服务。法医如此、程序员也是如此。技术无罪,但使用技术是需要谨慎对待的。

添加新评论