纪念 Web 30 年:说说小林和 Web 的那些事

Author: 林兴陆 | Created: 2019-03-14

起初


Google Doodle 向 World Wide Web 说生日快乐


回顾互联网的发展历程,Web 是最伟大的发明之一,而 Web 到底伟大在哪里呢?从互联网的根基开始就可以看出来,基础的 TCP/IP 协议、应用层 HTTP 协议、HTML 语言,完全可以自由、开放、平等的使用,无论前台的 Web 浏览器,还是后台的 Web 服务器,把早期流行的基于 C/S 的架构硬生生转变为后来的 B/S 架构。


首次知道 WWW(World Wide Web)显然是在真正接触互联网之前,或者在报刊上,或者在展会上,初步接触过这些有关网站、电子邮件的信息。甚至在早期某些杂志赠送的光盘上面也有诸如 Netscape 浏览器、HotDog 网页制作工具等软件。对于互联网,只能算是听说过而已,并没有真正接入过互联网。


1997年小林在瀛海威过的第一个生日


严格说小林哪时候只是个 DOS 时代的程序员,用 Turbo C 和 Borland C++ 写些控制台程序或者简易的图形界面程序。Windows 程序开发都接触的很少,还记得有一个朋友告诉小林说 Delphi 是最有前途的编程语言。媒体上则开始宣扬 Java 编程语言的跨平台特性如何厉害。


1997 年,小林终于正式接触到互联网。起初小林先是成为瀛海威时空年纪最小的网友,后来竟成为瀛海威最年轻的员工,严格上说,当时还是一名童工。对于动态 Web 技术,最早在网络上了解到一种 Java Applet 可以在浏览器上实现很酷炫的效果,那时候就是连 Flash 也还没有见过。


HTML 标记语言


学习 Web 开发是从掌握 HTML(HyperText Markup Language)超文本标记语言开始的,很多站长可能有过使用记事本编写网页的经历,小林也是这样开始的,那时候 HotDog 之类的网页制作工具也并非 WYSIWYG(What You See Is What You Get)「所见即所得」的效果,直到后来 Microsoft 收购 Vermeer 推出的 FrontPage 以及 Macromedia Dreamweaver 等工具的出现,Web 开发环境才逐渐成熟。


学习 HTML 倒是简单,例如列表、加粗、斜体、黑体、字体、大小及颜色等标记很容易掌握,表格制作就算得上稍微复杂点的标记了。在学习过程中 CSS(Cascading Style Sheets)样式表引起了小林的注意,主要是因为和小林曾经待过的软件工作室简称一致。而 JavaScript 除了名字像 Java 之外还默默无闻,要知道基于 Web 浏览器的 JavaScript 在20年前只是 Brendan Eich 花了 10 天时间设计出来的轻量级脚本语言而已。


1998年在瀛海威的少年网管


在瀛海威的日子,小林的本职工作从售前技术支持、售后技术支持到网络管理员的身份转换,除了为公司制作的补丁程序之外,并未涉及到太多开发工作。像网页制作、表单程序开发这些都是兴趣爱好或者是辅助信息中心做的事情,如接手过的邮件列表群发程序,还是边城浪子(高大勇)用 VB(Visual Basic)写的用来管理 blat 发送邮件的程序。


小林先是在瀛海威和网易放了一个有关母亲节的个人主页叫「MIDI 音乐小空间」,收集一些很好听的音乐资源和自己开发的「背景音乐播放器」,为什么叫背景音乐播放器?这个得回到 16 色或 256 色的 DOS 时代才能理解为什么,早期在电脑上一边听音乐一边工作还是蛮奢侈的一件事。


CGI 动态网页和表单程序


Perl 语言


1998 年,因为不满于静态网页的制作,所以开始学习 CGI(Common Gateway Interface)的开发。像 IIS(Internet Information Services)、Apache 等 Web 服务器,在 cgi-bin 目录下都有样本程序,有用 C 语言写的,也有用 Shell 写的,更多是用 Perl 脚步语言写的 CGI 程序。在网络上很容易下载到一些现成的免费脚本程序,最流行的当属留言板、计数器等小工具,复杂的则包括论坛、聊天室、调查等程序。


小林的第一个 Web 程序从留言板开始,那时候还是使用文本数据库,也没使用 MySQL 也没有使用 mSQL,甚至连 SQLite 也还没诞生。学 Perl 编程语言基本就是看样本程序,后来买到了那本经典的《Perl 5 程序员参考手册》就爱不惜手。公司也有一些表单程序是用 ASP(Active Server Pages)编写的,主要用 VBScript 语言,小林没有认真学习过 ASP,但胜在足够简单,因此也能做到拿来即用。


ASP 和 PHP 语言在中国


1999 年,可能是小林写 ASP 最多的时候,加盟润迅后参与的百特门个性化网站,1.0 版本就是基于 Microsoft ASP + IIS + SQL Server 架构开发。那时候 ASP 的安全漏洞频发,其中有一个印象最为深刻,在 .asp 文件后加个百分号(%),竟然就能把源代码显露出来,还有通过分号(;)和上级目录(../)等符号导致的安全漏洞。从 2.0 版本起则改用 Perl + Apache + Oracle 架构开发。


用 ASP 做 Web 开发问题很多,但却在中国流行了至少 10 年,直到 ASP 的地位逐步被 PHP(Hypertext Preprocessor)替代。在站长圈,这两种脚本语言的发展和几个 CMS(内容管理系统)、论坛程序的发展不无关系。以 PHP 为代表的 Discuz! 和以 ASP 为代表的动网论坛,走的截然不同的线路,表面上看是一个向左,一个向右,而事实上更像一个向上,一个向下。


如同使用 Microsoft 架构的 MySpace 和采用 LAMP(Linux、Apache、MySQL、PHP)开源架构的 Facebook,他们的命运和编程语言以及体系结构有没有关系呢?小林更相信有重大的联系,MySpace 每次迭代都伤筋动骨,而 Facebook 则很潇洒,最后在 PHP 无法满足性能需求的情况下,竟然推出了一种叫 HipHop 的编译器。


PHP 是世界上最好的编程语言


回顾 PHP 的故事也很有意思,其实早在 2.0 版本之前,只是由 Perl 语言编写的一种叫 Personal Home Page Tools 的类库,用来方便开发 CGI 程序,从 3.0 起才正式成为一种真正意义上的脚本语言,这段历史很多人可能都会忽略,其实现在官方介绍页里还有提及。


依然还是 1999 年,小林在网易的 CGI 论坛上,认识了一个台湾的网友,经常在 ICQ 上聊天。曾经从台湾给小林在北京寄来一本难得的繁体中文的 PHP 3 语言和 MySQL 数据库方面的书,那时候在大陆几乎连一本关于 PHP 的中文书籍都找不到。


那时候 LAMP 的 P 简称 PPP(Perl、PHP 和 Python),最开始都可以用来做 Web 开发,但是慢慢的发展线路略有不同,Perl 由于 Perl 6 的难产,已经退出其江湖地位,成为黑客或者运维的瑞士军刀。PHP 可以说替代了 ASP 后成为当红的辣子鸡,Web 开发谁人不识君。小林最早知道 Python 是看到 Yahoo! 在使用,后来接触到用 Python 写的 BitTorrent 可以说很彪悍,而后来 Google 发布的 TensoFlow 就更加抬高了 Python 的地位。


Web 2.0



2005 年《时代》杂志的封面人物「你」


2000 年,从百特门 2.0 到 DoNews 1.0,对于 Web 的开发已经没有什么可以难得到小林,可以说只要你想得到,没有做不到。DoNews 的专栏和论坛的结合,比后来所谓 Web 2.0 时代以个人为中心的博客系统概念还早了几年出现。


2004 年,有一次 265 网址导航的创始人蔡文胜在使用 Outlook Express 这个收邮件工具时,需要技术人员帮忙进行高级设置,尽管他是一位资深的互联网人士。怎样能够让网友在使用软件时不需要别人的帮忙、不需要额外的学习,而像上网一样简单的操作它?怀着这个问题,小林开始大胆思考 Web 未来的发展方向,最终想到一种办法可以把软件做成像网站一样容易使用。这也是小林后来独立出去创业做了 P.cn 个人门户的原因。


继续说 Web 为什么伟大?因为 Web 简单到只需要掌握鼠标和浏览器的操作,便可以连接整个互联网世界。这把计算机和互联网的用户,从初期只有 IT 从业人员、科研机构里的专业人士变成了普通网民,连去网吧的民工也只需要简单的学习就可以上手。


这也是 265 上网导航和 hao123 网址之家可以成功的根本原因,这种简单的目录服务源于杨致远的 Yahoo!(雅虎),由于海外用户对于文字输入无障碍,所以用户逐步往搜索引擎转化迁移,而国内的初级网民则无法习惯复杂的目录服务,因而像 265 这种简单两层结构的网址站恰好符合了中国网民初期的使用习惯。


Web 3.0


P.cn个人门户软件界面


当 Microsoft 致力于做操作系统、办公组件和浏览器的时候,Google 则是一家致力于 Web-Based 的公司。大家当然可以看到 Microsoft 这个软件时代的巨人在网络时代的没落,因为网络时代的大佬已经易位,在不同领域被 Amazon、Google 和 Facebook 瓜分。至于 Apple 那又是移动互联网时期的后话,也许大家应该记得 App Store 推出之前还有 WebApp 一说。


这里小林再跟大家讲一段 Google 和 Microsoft 博弈的故事,上面提过 Google 是一家 Web-Based 的公司,因此 Google 会尝试将一切应用 Web 化,比如收购澳大利亚的地图软件公司,后来成为 Google Maps,第一件事是让他们在两周内作出一个 Web 版本的地图网站。而 Microsoft 则不同,他们推出了一种叫 Smart Client 的技术,应用服务可以远程耦合甚至异步离线操作,但展现出来的仍然是传统的软件界面。


小林参加全球搜索引擎战略大会和 Google Dance


很显然在互联网时代,基于 B/S 的 Google 胜出,基于 C/S 的 Microsoft 失败。小林的设计则介于 Google 和 Microsoft 之间,「P.cn 个人门户是一款基于 Web 浏览器和客户端技术的新型应用程序,它把浏览器、客户端和服务器这三种技术无缝结合为一体,界面就像网站那么简单,功能却和软件一样强大,后台更是和服务器一样稳定、安全、可靠。」这种想法当时被叫做 Web 3.0,创意虽不错,野心有点大,大家说你跟 Google 和 Microsoft 比拼死路一条啊!


小林还记得那时候由 IDGVC 引荐文胜和小林给还没正式进入中国的 Sequoia Capital(红杉资本),对方问了一句话:你们可以解决跨平台问题吗?问题剑指 Windows,小林笑着说没问题,基于 Web 人机交互方式的设计解决了 FreeBSD、Linux、Mac OS X、Unix、Windows 等不同操作系统的用户体验问题,甚至连 Web 浏览器是用 Chrome、Firefox、Internet Explorer 还是 Safari 都无关紧要。


启示


因为对 Web 技术的追求,从 Comet 技术、Ajax 到后来的 WebSocket,无不在推动着 Web 的发展,而 JavaScript 也越发壮大,就像 Coding Horror 博客、Stack Overflow 问答网站创始人 Jeff Atwood 说的:“任何可以使用 JavaScript 来编写的应用,最终会由 JavaScript 编写。”。以至于后来的 Progressive Web Apps、WebAssembly、Node.js、Electron 和 NW.js 等混合 Web 和 Client 的技术框架,小林看到都倍感亲切,虽然小林和这些产物没有直接联系,但却有一种英雄相惜的感觉。


两年前的复活节,小林成为一名基督徒,带着 20 多年的互联网从业经验,小林开始思考 Web 的发明和古登堡印刷术之间的关系,原来作为 DoNews 两个关键人物的刘韧和洪波,早在他们的文章中就提及这种联系。


洪波、林兴陆、刘韧


刘韧在《网络媒体教程》书中提到:「和其他影响世界的发明不同,这项发明的确应该归功于一人……Berners-Lee 设计了 World Wide Web,然后就把它开放给世界。他比其他任何人都更努力地保持 WWW 的开放性、非营利性和自由性……很难对 WWW 作出适当评价,它几乎可以媲美古登堡印刷术。Berners-Lee 一手把只有精英们掌握的通讯系统变成了大众媒体。」


洪波在《内容想要的是免费》文中也提到:「历史上所有的批量复制技术,都是为了降低复制成本和发行成本。在羊皮卷和竹简上手工誊抄,成本高到几乎不具有传播性;活字印刷的革命性体现在,一名普通的德国修士可以轻易地打破罗马教廷对《圣经》解释权的垄断,把他的《九十五条论纲》向世界传播,进而引发宗教改革。上世纪八十年代,王选主持研制的汉字激光照排系统,让铅字车间、排字工走进了历史。数字时代和网络时代,内容的复制成本和发行成本双双趋近于零,有一天纸可能都会走进历史。」


在《小林和腾讯不得不说的故事》一文中,小林提到微信就是一款电子邮箱应用,在这篇文章中,小林想补充一个说法,那就是微信不只是一款电子邮件应用,还是一款浏览器。还记得 Steve Jobs 发布第一代 iPhone 的时候开玩笑说:「我们今天将推出三款产品,1、宽屏触控式 iPod;2、革命性的手机;3、突破性的互联网设备;」,今天的微信何尝不是这样的存在呢?




‭‭‭‭诗篇‬ ‭27:4‬ “有一件事,我曾求耶和华,我仍要寻求:就是一生一世住在耶和华的殿中,瞻仰他的荣美,在他的殿里求问。”


【延伸阅读】

Publish: 网林