CSS则是另一番景象。早年间的网页设计是表格布局的天下,后来Float横空出世,再后来Flexbox和Grid彻底改变了排版逻辑。但别误会,CSS最迷人的地方不在于它有多强大,而在于它的“层叠”特性——你写的每一条规则都可能被另一条覆盖,这就像现实世界里的法律条文,总在冲突与妥协中寻找平衡。有时候你花三个小时调一个像素对齐问题,最后发现只是某个父元素忘了设position: relative。
至于JavaScript,它已经从当年那个只能做表单校验的小角色,变成了如今能跑服务器、能驱动桌面应用、甚至能训练神经网络的庞然大物。但这份强大也带来了代价。你打开一个新闻网站,可能加载了超过2MB的JavaScript代码,其中一半是在追踪你的浏览行为,四分之一在渲染广告,真正用来展示内容的可能不到十分之一。这不是技术问题,这是人性问题。
Web技术真正独特的地方在于它的“可查看性”。你按下F12,任何网站的源代码都赤裸裸地摊在你面前。这种开放性在其他任何软件领域都几乎不存在——你没法轻易看到Word的底层实现,但你可以随时扒开任何一个网页的底裤。这种透明既是Web的礼物,也是它的诅咒。正因为人人都能看,所以人人都能抄,于是前端框架层出不穷,每两年就换一轮时髦。
我有个朋友在2016年押注Angular,花了大半年时间深入研究,结果2017年Vue就火了。他后来跟我说,在Web这个行当里,你永远不能指望某个技术栈能安稳吃五年老本。这不是因为技术本身迭代快,而是因为浏览器的更新策略、网络环境的变化、用户设备的碎片化,每个环节都在给开发者制造新的不确定性。
有时候我在深夜写代码,会突然想起1991年Tim Berners-Lee发布第一个网页时的场景。那时候没有CSS,没有JavaScript,甚至没有图片,只有纯文本和超链接。他大概想象不到,三十年后,这个系统里跑着视频会议、3D游戏、实时协作编辑,甚至还有人用它来交易虚拟猫。但底层逻辑始终没变:通过URL定位资源,通过HTTP传输资源,通过HTML展示资源。
这就好比一座城市。早期的Web像一条乡间小路,你沿着它走,总能到想去的地方。现在的Web像一座巨型立交桥,四通八达,但转错一个弯就可能绕半天。技术本身没有变复杂,复杂的是我们赋予它的期望。你想在网页里嵌入一个视频,三十年前需要专门写个播放器插件,现在一行
说到底,Web技术是一面镜子,映照出人类对信息共享的所有野心和焦虑。它从来不是完美的,也永远不会完美。但它一直在那里,像空气一样理所当然地存在着,直到某天断网,你才意识到自己已经离不开它了。
