日期:2010-08-26 浏览次数:20631 次
有一团体,这团体我曾经不记得他的容颜和姓名,但是他曾经影响了我。
99年的春天,联想开始做公共网站,我虽然次要任务是做设计,但其实我的兴味在技术上,喜欢本人找些Perl(当年的CGI程序多数是Perl的,本人在学校学到的那不足千行的C还不知道怎样用在Web上)的留言版或聊天室程序改改代码和界面,用在一个叫“幸福之家”的土得掉渣儿的网站上。
大约在秋天或年底的时候,这个听说是北大(也可能是清华)的先生来帮忙做兼职开发旧事系统。我经常闲事儿不干,看着他写代码。他的次要开发方式就是连接到服务器上打开Vi开始写。那时我虽然也在Solaris用过VI,但还只会挪动光标和保存之类的简单操作,而且并不习惯。这样完全用VI开发还觉得比较新奇。那是我第一次接触PHP,那时的版本是3.0,所以他写的文件扩展名全是.php3。我担任前台的界面和款式,偶尔打打下手写点儿代码。这样边写边测试(完全正式线上服务器环境,如今想想那时真无畏),大概用了一周时间,一个基本的旧事管理系统就上线了。就这样,我也就开始了我的PHP生涯。
这个旧事管理系统运转了不到半年后,就被联想研讨院的同事完全用Java重写。我也在合作期间偷偷学了点儿Java言语和EJB的皮毛。而这位年长于我一两岁的同学,就此得到了联系,不知道他如今在做什么。问题是,我真不记得他叫什么,也没有联系方式,好像我俩都很内向,不问彼此,真是一对奇怪的年轻人。
在离开联想之前,我用PHP写过几个小项目,我如今还记得有一个广告维护和更新系统,次要功用是广告管理、图片上传、和html文本块编辑等。由于之前有研讨过Perl的代码,加上一些C的基础,让我对PHP这个脚本言语真真的喜爱有加。你想想看,那个年月,有哪个Web脚本有如此丰富的扩展又有这么简单易学的代码。什么数据库操作啊、图像生成啊——我甚至用它的GD库实现了饼图显示投票的结果(当然饼图的生成算法是抄来的)——、文本操作什么的,好多的扩展,包括数不清的和风格不一的命名,它实在太容易学了,也太好用了,语法自在,又没有像Java那样的强类型约束,我对它实在是爱不释手,这可如何是好哇。后来的几年也确实是PHP高速普及的时期。
联想当年做的那个网站,用的数据库几乎全是Oracle,而且跑在Sun的服务器上,听说还有光纤阵列啥的。多年后有人通知我,由于无人打理,域名被人抢注了,我记得当时我的心境平静的。听说抢注 FM365.com 的人后来做了个叫 265 的网站。
02年和同样是联想出来的两个朋友去了北大附中网校。当时在线的是ASP环境。那之前还没用过ASP,写了一些模块,发现和PHP差距较大,如果不用Com,很多想法较难实现。这里再啰嗦两句,ASP支持两种言语:VBScript和JScript,我实在是不喜欢VB的语法,后期写的模块我都尽量用JScript实现。而且,JScript支持一品种似Hashtable的Dictionary对象,操作字典类数据很方便。不过,总得说来,ASP还是太弱了,如果PHP是把多功用军刀,ASP只能算是生锈的水果刀。
人的思想是会变的,人又总不满足于现状。约一年后就将整个系统逐渐升级到.Net。第一次用C#发现和Java很像,也是第一次开始试着用分层的概念设计系统架构。在这期间的同事有霍炬和戴飞。经常在去饭馆的路上还在和火炬讨论是分三层好还是四层好。
霍炬对我的协助和影响又更多些,他还送了我两本书《设计模式》和《C++Primer》(前者到是时常翻阅,后者较厚,没怎样看,几次搬家都想扔了)。
坦率的讲,C#真是门集众家之所长的好的言语,相较于PHP这类脚本言语,又足够OO和足够完善。PHP和它相比,实在是太土妞了。加上刚接触到设计模式——这个东西就像火炬说的手里有把锤子就会发现四处都是钉子——这么个超级大锤子。所以我那段时间像同时沉浸两样东西,一个是WoW(还在公测貌似),一个就是C#。我能从写大段脚本和无数子过程学习并过渡到对象开发和多层架构的设计,这得感激C#和.Net。
在网校做的最后一个项目是个多用户Blog系统,基于b2的开源改造,又重回到了PHP的怀抱。虽然从团体角度我非常喜欢C#言语,但我仍对Windows平台没有决心(那时Mono还是个实验项目)。
大约04年的时候,或许是受Java的影响,PHP社区也出现了一些开发框架,如CakePHP、Zend Framework、CodeIgniter、Symfony……。但是,在看了这些框架并做了些测试之后,我限入了纠结之中。Cake和其他几位还稍好,最变态的就是Zend,几乎完全模仿强类型言语(如Java),完全的用OO方法设计模块和类。方向和庞杂度直奔Java的屁股而去。
PHP真的要这么写吗?这和Java和.Net有什么区别?这还有PHP的优势么?看烦了各个论坛各种框架之间的口水战。为了防止可能继续误入歧途,我逃离了这些奢华巨轮。但是我限入了迷惘,我要再怎样写的PHP呢,我似乎得到了方向。我各类在各类开源项目和书里寻觅答案。随着几次失败的项目和任务单位的变动,思想也有较大的变化。后来的两年多时间,较少关注社区的动向,按照本人对Web开发和结构分层的理解,写一些适合本人用的基础库,谈不上框架,用着倒也趁手。
我也有接触和学习其他的新的言语和框架,例如Python、Django、Ruby。其中Python的言语特性让我很着迷,这是我见过的第一个把清晰(或者说整洁)度作为语法规则一部分的编程言语。也许是我本人爱干净,也许是我的想法变了,我甚至觉得Python的言语哲学:“There should be one– and preferably only one –obvious way to do it.”(有且仅有一种明确的实现方法),是非常完满且正确的理念。我回过头再审视PHP满身的伤疤和圈套,不由要问:PHP是不是进步的太慢和太不思进取了。为什么会这样呢?
这里又要感激一位同学,几年前某天在西南三环某处租房里,郝培强送了我一本Python入门(也可能是我拿在手里不断不放下的缘由),那时他还单身,还很纯情,大家在聊着对未来的憧憬和各种的梦想。
就一种言语来说,PHP易学易用,几乎不需求什么基础和背景,适合各类人群(比如被大家臭骂的北大青岛的毕业生),只是代码的质量差距较大而已。然而,人不可能永远在初级形状,人是会成长的,用得越久,越是能感遭到它的局限。
前段时间看到有人说PHP很烂,虽然这话难听且观点很武断,但他文中所说的PHP特性包括援用几位老外的观点又都是理想。比如这个,还有这个。
我的朋友老王说,“言语不重要,重要的是思想”,这话不错。但思想的获得何其难,它需求一段时间积累加上一些天分甚至还需求有一点点机缘才能灌输到人的脑子里面。为了实现高质量和可控的代码,我需求写几十页纸的商定和规范,并且还要定期Review,要不然就等着数不清的地雷哪天突然被踩中吧。影响生产力要素有多种,有人的要素,也有言语和工具(包括平台)的要素。如果一种言语可以很容易的实现清晰、明确和严谨的高质量代码,而另一种言语则需求数年经验且小心小心再小心才能达到同样的质量要求,孰优孰劣,似乎不难判断。
其实俺又是个重感情的人(:D),这么多年一路陪俺走过一个沟又一个坎儿,今儿用力说厌弃的话,心里怪不是味道的(:S)。
理想会给人一些安慰。无数量众多的人用PHP,也有大量的网站运转其上,PHP在实事上占有一席之地。一切在变化中,结局还未可知。