程序员2009精华本
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

互联网的前世今生

█ 文/钱宏武

2009年,这是互联网的第几个年头了? 不同的人大概都有自己的一个计算年龄的方式,有人认为应该是从完成这个概念的1969年,就是美国国防部委托开发ARPANET进行联网研究开始,也有人认为应该是从发表第一个包交换的论文开始计算(1960年),这样历史显得更加久远,提起来也更让人肃然起敬。但在互联网历史的长河中回顾,你会发现所有的关键点,都有着让人肃然起敬的程序员在里面,不管是论文,还是基础的协议规划,又或者是每一个基础应用程序的开发、崩溃、改进,都是前辈们那些光辉岁月中的精彩创造。随着互联网进入中国,程序员这个小群体,也开始慢慢从跑龙套成为互联网这个大舞台的主角之一。

对这个群体来说,很少有属于自己的媒体平台和杂志,直到《程序员》的出现。不管当年创始人以一个什么样的目地来创建这个杂志,到了今天100期的境地,和互联网到今天的历史同样有着自己的坎坷和辉煌。从主要关注开发,到也开始部分关注产品;从单机到互联网;从算法到架构;从微软为主,到百家争鸣……这个平台也随着岁月慢慢成长。而现在,让我们回顾一下中国程序员眼中互联网的前世今生。

第一阶段:1999~2002年互联网开发的乱世

1999年的时候,澳门回归,互联网刚火,能做一个网页,知道怎么发邮件,就能被尊为技术人才,甚至能被放到程序员的编制里面去,而互联网程序员的工资比那些写 VB、Dephi 的单机程序员高上好几倍。被称为互联网程序员在那个时候,不知道是一种荣誉,还是一种无奈。不过ASP、PHP、Java 这些今天都不过时的语言,已经开始被真正懂一点互联网的 CTO 们开始使用,部分更为专业的互联网公司,如ChinaRen、万网等,已经开始使用只在传说中使用的linux了。PHP3,这个带着版本号的小众语言,也开始慢慢展露头角,甚至有点头角峥嵘的意思,当年开发这个语言的犹太人,也许不会想到,他们创造的这个语言,和他们创造的宗教一样,到今天会成为一种主要的信仰。

而互联网的开发,还是一个继续摸索的阶段。那个时候,对应Java 微软推出了自己的.NET 平台,2001年的《程序员》杂志中很多都是这种文章,JSP 和ASP的对比、C# 和Java的对比、.NET的未来等。而对于国内来说,国外火得一塌糊涂的 Java 才开始慢慢走红于国内。趁着Java推出1.3版本,程序员也不管什么,就听着所谓未来开发属于 Java,而纷纷转到这个平台,不管是写 ASP还是PHP的,看看Java语法,就开始用此技术搭建。而和Java 共生的面向对象的思想开始成为程序员们必谈的内容。设计模式、设计思想,也开始成为招聘项目经理一个很重要的考核内容。互联网企业在2000年项目乱象后,开始也引入这些模式,而当时MVC,更是看起来应是每一个程序员必须掌握的东西。UML 这种在国外也属于很新的东西,也在这个时候,漫山遍野,设计动辄“你懂UML 吗?”没多久,互联网的泡沫破灭,无数的CTO从云端一下跌到现实。我还记得那个时候招聘,10个人中有四、五个都宣称是某网站的CTO。编辑被大量裁员,技术的工资也开始大幅缩水,没有人再把会做网页的人当成技术人员了。如何降低成本,成了每个活着的公司CTO主要考虑的问题。也就是从那个时候起,lamp 结构开始被很多程序员和CTO们关注,开源开始慢慢成为一个方向。

我想,用一个词——“乱世”来形容那个时代是很贴切的。那个时候,互联网作为一个舶来品,没有人知道它的未来,至于其不为人认识的程序开发,更是让人找不着北。

第二个阶段:2003~2006年注定属于开源的时间

互联网企业慢慢走出困境,现金流为正,短信救了这些在深渊中挣扎的企业。而对于互联网的开发来说,3年的积累,让很多互联网的企业认识到技术的重要性。而技术经过3年的乱象,不再迷信于所谓的国外模式,没人再提设计模式。面试的时候,也很少听到“你是否懂 UML”这样的要求了。Java 也走下了神坛,不再被人以一种神话的眼光看待。.NET 也推出自己的2.0平台,大量关于.NET、C#的文章在《程序员》中出现。这个时候,很少有人再拿.NET和Java、PHP啥的进行什么对比了,语言就是语言,作为一个工具,你不能说扳手就比钳子好。从浮躁到务实,我想是每一个行业都会经历的阶段。被人们质疑了很久的开源软件,在这个时代,从一个方向,越来越受到大家的重视,Linux 这个仅仅是部分大互联网公司采用的开源操作系统,慢慢成为越来越多的互联网企业的首选。而让我为之惋惜的是,我很喜欢的FreeBSD却在这个时候,慢慢没落,同样是开源的操作系统,它没有在最应该大放异彩的时候,体现自己应有的价值,我想这就是互联网的开发吧,最好未必是最合适的,而Linux这个穷小子,终于出头了。

同样这个时候,出现很多优秀的小众语言,如Python、Ruby 等,开始在国内互联网使用。而一些老牌的互联网语言,如Perl,则慢慢使用的人越来越少。偶尔使用一下,你甚至能感觉到它们上面覆盖的尘土。而另外一些更老牌的语言,C、C++,在浮躁过后,开始显示出其强大的开发特点,成为很多高性能公司的选择。

在这个阶段,一切开源的东西在中国互联网界都得到了巨大的发展。PHP 应该是这一段时间发展最快的语言。PHP4、5让这个小众的语言成为一个可以向Java、.NET 叫板的庞大家族。MySQL当年只是一个非常小众的开源数据库,如今已经大到可以让Sun 羡慕不已,从而收之囊中。当以数亿美元成交的那一时刻,我想,开源软件是否赚钱,已经不再成为怀疑。

而离开那些很多不适合互联网的设计模式后,很多项目开始显示出其鲜明的中国特色。用今天的话来说,就是山寨活,未必是最好,却很贴合中国国情,但维护起来却是不可能的。但互联网公司盈利了,活下来了,CTO们不用去找工作了,还有什么比这个更重要?敏捷,这个和传统软件工程格格不入的方式,开始在互联网开发中风靡一时。

同时,国外的Google、国内的百度兴起,让人们更关注到互联网的本质,技术、程序,永远是主角。它可能一时被忘记,但它的回归,就是王者归来。而Web 2.0概念的兴起,把一直在后端服务的程序员一下推到前台。同时大流量的架构成为很多技术人员关注的话题:网站如何架构才能承担巨大的流量?

第三阶段:2006年~?未来属于程序员

Web 2.0兴起后,SNS、Blog、Twitter、FaceBook,等等这些新兴的互动网站,构成新的互联网世界。同时,国内的论坛和博客草根文化盛行,给那些开心一时的程序员带来巨大的压力,巨大的流量、数据、访问人群、黑客、投诉,甚至有人堵着门口骂。

稳定、快速、海量,成为项目开发完毕后每一个技术面临的问题,架构师替代CTO,成了很多程序员心中的最终目标。从盛大到搜狐,从网易到新浪,每一个从门户走出的工程师们,开始在SD 会议上讲述自己的经验。国外那些曾经只能见到名字的牛人们,也从书上、视频上,走到我们面前,告诉我们他们解决曾经遇到的问题。

工程师也开始更注重实际的操作手段。那些在血泪中总结出来的经验。从当年的单一Java天下,为了便于管理,尽量使用统一的语言,到07年宣扬的混合语言编程;从单一的纯技术思维方式,到慢慢开始考虑更多的方面,人员、时间、成本,和谐,成为说得最多的词。但让人更欣喜的是,不断有程序员从一个单一的实施者,完成羽化过程,在巨大的互联网世界中,成为领航者。我看到更多的产品、销售、运营,来自于技术队伍。做程序员养成的超乎常人的逻辑思维,严密的分析能力,和对于数据的极其敏感,使他们在新的环境中游刃有余。

康盛、开心、校内……太多从普通程序员脑海中成长起来的网站涌现出来。曾经有人对于中国程序员的未来充满悲观,现在我想说:一个智商这么高的群体有什么好担心的?如果这个世界还剩下最后一群人,我相信这之中很多人都是程序员!

技术本身慢慢开始从关注细节到宏观到更为剧烈的转变。云计算、网络编程、Google、微软们正在筹划新的世界,Erlang 这种不纯为网络而生的语言也创造出来。在经济危机下,技术开始显示出其旺盛的生命力。回顾互联网程序员的历史,一路坎坷,少有鲜花和掌声,但我想,未来,是属于程序员的。█