我是从1993年开始学习电脑的。当时5寸盘要退出历史舞台了,但还在用,3寸盘是流行。 黑色的屏幕,黄色或白色的字。DOS的操作系统。当时中文Windows3.2还没有发布。当时是CCED和WPS和CCDOS(向老前辈王缉志、严援朝致敬)的天下,UCDOS(鲍岳桥、雷军等各位英雄不是当时在做什么)当时我还没听说过(当时菜鸟阶段眼界太窄)。当时巨人在造电脑还是在造脑白金还是在盖高楼还是在卖汉卡,我也懒的考证了。
对,就是那个时代。
DOS。我疯狂爱上的电脑。我想用它编写一个《街头霸王》或《三国志》的游戏,这样我就不用花钱去游戏厅就能玩游戏了。但是当时我并不知道游戏是编写的,就是看到别人把软盘插入到电脑中,就能玩游戏了,而且不用花钱,于是我着迷了。后来才听说游戏是开发语言编写的,是C编写的。于是在没有上机环境没有任何开发基础的条件下,借了我同学哥哥的C语言书(他是计算机专业,谭浩强版),于是我疯狂的学习上了C,在纸上做遍了题,逮住机会就去问,瞅机会就假装是学员蹭电脑培训班的电脑调试,被人骂了无数也赶出了无数回,把全市的电脑培训班快蹭了个遍(现在想想当时真是勇气可嘉生猛的很,人的欲望真是强烈)。C有段时间卡住了,怎么都觉得过不去,思前想后才自己想明白是让汇编卡住了。于是自学汇编。到市里唯一一家卖计算机书籍的地方,找到了一本DOS中断。曾经买过一本CCDOS内核剖析,忘记了是哪一年,兴奋的很,以为自己也能制造电脑了。
但DOS说起来技术,其实蛮简单的。我上大学的时候也写了一个引导程序,能把计算机引导起来,而且还有命令行,可以输入命令,但我只有一个命令,那就是haha,返回来也是haha。但是这个创举让我自豪了整个大学。
但是,Windows时代终将要到来。1994年,中文的Windows3.2发布了。
Windows3.2,我认为是技术的一个革命,绝对是一个革命。它的影响力绝对大于Windows95、WIN2000、WINXP。因为Windows3.2开始,游戏规则全部变了。我学习的所有引以自豪的技术全都废了,一个陌生的成体系的全新的技术横降在我的面前。我被彻底打懵。
图形UI,在DOS下没这么操作的呀,在哪里输入命令?
鼠标?多线程多任务?窗口?菜单?OFFICE?DLL?OLE?Windows API?消息驱动?
但Windows3.2我并没有很深入的学习技术。因为当时我遇到了一个更棒的开发工具VFP。因为我的C在Windows下不起作用了,我误打误撞没有去升级到VC,反而遇到了VFP(也缘于当时当地企业应用软件都流行用VFP编写好打工赚钱)。当时大家还在主流使用C、DBASE来制作菜单,制作阴影,制作按钮。但我用VFP很容易就实现了。当时写一套简单的进销存或工资计算,在94-95年,都能取得1000-3000的收入,现在想想,那时候真是程序员的黄金时代啊。当时很多单位的计算机都用布套蒙着,进入计算机房需要换鞋穿白大褂。我记得当时有金蜘蛛(薛什么忘了,用友、turbocrm纠缠不清,不过却是是个少年天才,从技术编程到公司运作、品牌运营、资本运作、咨询IT都有一套)、大连雅奇(前段时间还看到CSDN报道了)。
想想当年Windows3.2的技术,直到WINXP,技术框架都没有大变化,用一句大话来形容就是:天位已定。
窗口UI、鼠标、多线程多任务、DLL、OLE、Windows API、消息驱动、硬件驱动程序。WIN95、WIN2000、WINXP,这些豪华的后来者,都无法逃脱这个框架。
95年的8月,WIN95上市了。其实WIN95赶的命好。因为WIN95正赶上计算机硬件制造工艺取得大跨越,在制造成品率、制造速度、大规模集成、性能上都取得了很大的突破,所以价格降了下来。而且经过多年DOS铺路,计算机得到进一步普及,计算机从计算机房和白大褂来到了企业办公桌和平民书桌。
所以,Windows3.2这么具有突破性的产品,却知名度小,只是因为当年使用计算机的人少。限于业内自爽。
Windows95把硬件更近一步抽象,在寻址空间,硬件兼容,多类型硬件支持,Windows API的丰富上都有很大进步,但革命性技术进步,我认为只有两个:即插即用和DirectX。DirectX开创了Windows游戏基础。即插即用让Windows的硬件封装层更加完美。Windows本身就成为一个整块的虚拟机,来管理其上的所有应用程序的生死。我常常想:VB、PB、Delphi、VC,他们开发的各个应用就象插件一样,在Windows这个容器里运行,有窗口创建、窗口注册、WinWND消息截获和分发处理、MAILBOX、共享内存、DLL调用,就像一盘小珠子,你碰碰我,我碰碰你,组成了一个动态的软件世界。
果不其然,COM出现了。我也懒的去考究Windows95是否采用COM改造Windows API层。如果是的话,那Windows95确实值得里程碑的纪念。(ODBC啥时候出现的?确实没考证过,但只在Windows95我才开始ODBC的编程,WIN3.2上当时一心钻VFP,数据存取自成一套体系,对ODBC印象太浅。如果ODBC是在Windows95中出现的,那么Windows95确实太伟大了。因为它开创了N个技术体系标准)
COM,接口抽象,二进制规范,调用规范,数据类型规范,引用计数,虚方法表,Type library。让所有开发语言开发出来的应用互相调用,就免去了我怎么和PB沟通的头疼事。
96年,认识了Delphi,从此把VFP扔掉。把我丢三落四学习的VC也荒废了,从此就和VC一直无缘了。虽然大学时代翘课打工赚生活费,但却使用的是VFP,Delphi无用武之地。当时,VB很红,VFP也红(可能在一线城市,PB更火,但当时不知外面的世界有多精彩,还是大学一雏儿,虽然在大学校园技术圈号称呼风唤雨)。但是我上大学的城市是内陆二线城市,很奇怪的现象就有了,很多企业单位还在用DOS,别说WIN3.2,就连WIN95我印象中都没见过。应用都是UCDOS+VFP for DOS,高级的用了EXCEL、VB、VFP。
那是一个英雄辈出龙蛇混杂的时代,有DOS,也有DBASE,也有C,也有VB,也有VC,也有Delphi。有Windows,也有Novell。当然,Netscape出现了。但是当时还没上过网,是瀛海威发的光盘中看到的。我还在玩DOS下的大富翁,雷军的盘古失败了,KV300大名鼎鼎。
97年,学校开了新的网络中心,居然能上网(唉,当年学校旧计算机中心还在用NOVELL、WIN95,上课还在用C和DOS)。我记得当时唯一能玩的就是聊天室和邮件。3块钱一小时。网速慢的惊人,但我仍然期待,那怕是一封垃圾邮件(但当年连垃圾邮件都没有)。当时能和一个从来没有见过面的人聊天室对话,简直神了。碧海银沙?263?很多记忆都模糊了。
97年,全世界都被互联网震醒了。JAVA突然很红。我看到了有人用JAVA在网页上可以做动画,其实就是Applet。我也兴冲冲很别人借了JAVA书看,学习JAVA。但是了解JAVA发展史的人就会明白,97年的JAVA能做的还很少。
盗版盘、计算机世界、电脑报、暗黑、红警、SQLServer、COM、Delphi、VFP、JAVA、NOVELL、TCP/IP、上网聊天室和个人主页、周鸿祎的方正飞扬邮件收发,陈大年的烘焙鸡、翘课打工、挂科目补考、上数据库研究生课、自修财务管理和MBA专业课程、软件专业课程轻松拿高分、把计算机键盘拿开头上盖好自己的西服睡2个小时继续敲编码。1997-1998年跨越和交杂了很多时代的产物。少年青春啊。但Windows98毫无新意,略过不表。
毕业,北漂。王志东的新浪正猛劲发展,互联网让所有人疯狂。OK,把你的想法告诉我,这是我的BP号,这是我的手机号,这是我的邮件。
由于自己的管理软件的开发经验,和SQLServer、COM、Delphi技术经验,没有互联网工作经验,所以和互联网无缘而过。听说会写HTML就给8000,听说会ASP就能上万,豪强们都在国贸扎堆,自己很羡慕(93-97年全国国企大下岗也波及了我家,我的父母从19岁进入国企却快退休时全部下岗,家里几年没有任何收入还支撑我读完大学,我一个应届毕业生当时非常需要钱来支撑全家)。继续干老本行吧,企业管理软件,在WIN98上开发,死机,重启,O,我的代码,忘了存盘。
虽然DCOM、虽然MTS,但仍让我说,WIN98,毫无技术新意。
WIN2000在2000年发片了。赶快升级内存换上WIN2000。太酷了,这个NT内核的宝宝,这个不用频繁重启宝宝,这个有着企业气质的宝宝。WIN98和它比起来,就像一个玩具。
WIN2000的IIS、组件服务、用户管理、日志、性能计数,太爽了。要做企业级应用,就得有企业级的样子。
WIN2000+SQLServer7+Delphi5,是我当时最乘手的搭配。用了很多年。呵呵,COM、海量数据设计、Delphi RTTI自省技术、设计模式、软件工程、每日构建、自动化测试、版本管理、CMM认证,开始和IBM、EMC、微软、Borland一起接触做些事。
2002年,中国移动和中国联通的短信终于可以互联,JAVA游戏兴起、中间件打的不可开交,不过BEA和IBM已经分出胜负,Borland、Sun、Oracle可以在一边看了。WINXP发布。这没什么,只不过更易用更好看,在技术层面WINXP没什么革命进展。
但是,.NET发布了。.NET RunTime内嵌到了WINXP中。
.NET时代来了。
从DLL、OLE、COM、ActiveX、DCOM、WIN DNA、COM+一路走来的我,耳渲目染JAVA互联网、XML、中间件大战、ASP+COM互联网技术,我深深知道.NET发布的意义。(可能许多人理解.Net的出现原因和我不一样,有人认为是为了和Java打仗,有人认为是为了不让人直接控制硬件,有人认为是为了Asp.net和C#新的技术,有人认为是微软想开始另一种游戏规则达到垄断目的。)
我需要元数据自省,我需要容器管理生死、内存垃圾回收、线程池化、组件事务、安全、消息,我需要外暴到互联网,让中间业务组件既可以网页调用,也可以EXE调用,我需要ORM。我努力了这么多年COM+的研究,我知道.NET是我需要的更好的COM++。(一直处于应用开发层面而非架构师层面的朋友,可能感觉不到这种需求,不太理解企业应用架构为什么需要这些技术,认为没多大用,只是技术噱头)
但是.NET仍然在一点点发展着,丰富着。技术愿景老达不到自己所期望的那样。我想用它开发企业级应用,但我怎么等也看不到和JAVA应用中间件服务器那样强大的技术框架体系。API Framework的单薄底层和开发工具的丑陋,让我一直没有动用.NET。虽然竞争对手已经.NET+Oracle的新一代产品出来了,但业务应用毫无新意,产品框架设计也无进取,嗯,业界还是一样,泛不起多大水花。
Google的崛起,让大量微软好手跳走,微软多年历史包袱和设计理念,即使有前Borland两员大将: Anders和Chuck(一个当年是Delphi编译器的创始人,一个是当年Delphi VCL Framework的创始人),对.NET的影响也是不显著。
没办法,凑合着用吧。客户听说你用Delphi,销售人员都不好意思推销。真是错乱的计算机业界。好吧。发展.NET技术产品。但是有什么意义呢?好戏并没有到来,业界和客户急什么急?
2007年,VISTA终于发布。时到今日,也被N多人和媒体砍为失败的操作系统。期盼它如WIN95般辉煌,但始终没有大红大紫。
Vista可能是技术和商业结合挺失败的一代操作系统。但是,我认为,这是Vista的历史使命所决定的。Winxp开创了.Net时代,但微软对这个计算世界的目光显然更远,Vista只是一个开始。技术上,VISTA应该和WIN3.2一样具有革命性。虽然两者都是相同的命运。但两者都为下一个辉煌的操作系统奠定坚实的基础。(如果你不了解未来的计算世界趋势,建议阅读多遍以下内容)
.NET进化出了第一流的WebService,与生俱来的,彻头彻尾,从内在到外暴,都是SOA的理念,软件服务化、互联网化的基础从根打定。
让我历数.NET的技术:
WPF,让我终于不再重复win Form和web Form。哪里是本地,哪里是WEB。哪里是EXE,哪里是浏览器,已经全都没有概念了
WCF,一个Webservice统一了过去微软纷杂的技术:DCOM、Remoting、SOAP、socket。让所有的应用以后都是服务,而且是统一接口的服务。
WFS被取消,很遗憾的。这也看出,微软在搜索和云计算方面的研究准备不足。还在用单机的思路看待现今的资料存取。一个模糊了互联网和本地的文件系统夭折了。
我们有了XML、有了XSD、有了URI、有了Unicode、有了WSDL,当然我们还要有XML Query。我们既然要模糊互联网和本地,让软件服务化、互联网化、SAAS化、Open API化,我们就需要将这些服务化的应用组件串在一起。于是,有了WWF,工作流。一个模糊了互联网和本地的工作流,需要统一标识、统一结构描述、统一数据查询、统一规则,统一自动规则推导,统一安全签名,于是语义WEB的商业基础落地开始了。大家可以想像一下LINQ,不仅仅是ORM的一种实现,ORM已经是大家在2000年热门的话题了,Hibernate已经如日中天的实现了,微软的White House也取消了,大家以为LINQ是微软的另一个ORM项目,其实这样认为微软,就太小看微软了。微软的LINQ,不仅仅是更好的ORM,更像是未来的语义WEB中很重要的SPARQL。我过去阅读老宋的文章,他是做业务基础平台的,肯定有工作流这部分。但是他在2004年就反复讲语义WEB,而且在2007年的CSDN SD大会,仍然在讲语义WEB,我过去一直不太理解。最近又看了一遍,才顿然醒悟。
能高瞻远瞩殊路同归的公司,目前看,只有微软、Google、IBM三个公司。他们都是立足自己,深远未来,而不仅仅是眼前。其他公司,都在现有的观点和单点层面上进发,而没有从体系和业界未来进发
微软的下一代操作系统和下一代的.NET,我想已经在多核、多实例虚拟化、云计算中研发了,我相信被取消掉的WFS还会回来,那样,一个真正震撼影响力的操作系统才会真正出世诞生。
记住,VISTA的源研发代号是Longhorn,在微软的规划中,它也仅仅是两座滑雪山之间那个休憩的小酒馆。
真正的雪山,2010年。
后记:
DOS时代 1989-1996
Windows时代 1996-2003
WEB时代 2003-2010
RIA/软件服务时代 2010-2017
你需要踏准时代主流的脉搏,才能随时代起飞。