今天翻阅2008全年《程序员》,2008的主要内容是
RIA FLEX WPF sliverlight
浏览器
OPEN API REST WEBSERVICE
SOA SCA SDO WCF ADO.NET LINQ WWF
android iphone 3G SaaS 云计算
2008年,这些技术被业界关注甚高,但什么时候开始做能踏准最佳时机,不做先烈探路者,也不做落伍者,是大家最关注的。
我个人的观点是这样的:
2003年,DELPHI7的发布,标示着桌面应用到达最高峰。从2004年,B/S进入主流越走越高,C/S不断走下坡路,DELPHI/VB/VFP/PB都走了下坡路,而JAVA/.NET/PHP/PYTHON/RUBY不断增长。
我记得1995年,SQLSERVER6.0发布。这是微软和sybase分道扬镳后推出的第一个微软SQLSERVER版本。也就是说,1995年才算是MSSQL的第一版,但是却被命名为6.0。但是直到1996年WINDOWS NT4.0推出后,SQLSERVER6.0才得到长足的发展,因为要知道WIN95是95年发布的,而过去的WIN3.1和WIN95是截然不同的。而WINDOWS NT4.0和WIN95就像是孪生兄弟般紧密的服务器和客户端,因此WIN NT4.0+WIN95+SQLSERVER6.0,C/S时代才算真正大规模应用,那个时间是萌芽于1996年,发展于1997年,大规模应用于1998年。要知道1998年12月,才有了新浪网。要知道QQ是1999年才有的。虽然好似99年98年离我们并不远,但大家从回顾的时间事件来看,我们的萌芽很短,发展如闪电。
也就是说,C/S时代,从1997(1996)年开始,截至于2003(2004)年。7年,走过了一个周期。而一代产品的生命周期也就是从研发(花费1年)到推广(花费1年)到上升发展(花费1年)到大规模发展(花费2年)到走下坡路(花费2年)。可见我们大规模赚钱,也就是2-3年。这是产品成熟、产品营销销售实施服务方法成熟、人员成熟不断作用的结果。
所以,我们什么时候研发下一个现金牛,什么时候应用新技术,是需要踏准时间的。7年全生命周期,3年准备期,这是需要提前预见的。
C/S时代,从1997(1996)年开始,截至于2003(2004)年。7年。单机时代,从1990年到1997年。所以单机时代的FOXBASE/VFP/ACCESS,都从1997年迅速衰落了。我看许多人在1997年才开始学习并准备深入学习FOXRPO和ACCESS,就知道他们已经落后时代了。但1995年WIN95才发布,1996年,DELPHI才发布2.0支持WIN95开发。1995年发布的1.0还只是在WIN3.1下运行。时代变化太快。从2003(2004)年,B/S时代大行其道,现在想招聘一个DELPHI或PB程序员都难了,到处都是JAVA和.NET的程序员,而且大部分都做的是B/S软件,而非C/S软件。那么B/S时代什么时候结束呢?我想,也会是7年。也就是说,2010(2011)年,B/S软件时代结束。
B/S软件时代结束后,会进入什么时代?
那就是C/S和B/S平滑模糊的时代。那个时代,浏览器是运行基台,3G宽带上网速度,人手一部宽带手机,和现在ADSL上网速度一样快。宽带手机就相当于一台小电脑,屏幕大小足够,内存闪存海量,CPU高速,iphone开了先河,android紧随,成为宽带手机的一个流行模式。数据如现在的邮件一样,既可以down到本地离线浏览数据,也可以连到网上浏览数据,在网上的数据是存放在“云”里,每个人都在“云”里有一个帐号(你想把宽带手机当现在的PC用?)。大家现在用Gmail(网易邮箱或新浪邮箱)、Gtalk(QQ/MSN),都是这样的应用,这样的应用越来越多,人们在网上放的数据类型也越来越多,数据量存放的也越来越大。人们已经不再讨论是该建立自己的云还是担心数据安全担心离线什么的。因为大家已经事实上应用了大量的云应用,形成了事实上的应用,这是潜移默化的。这种每个人一个帐号存放云数据的模式,也就是现在大家讨论的SAAS架构模式。我们在潜移默化就应用了这么技术,讨论疑问也渐渐变的不再有意义。浏览器上的应用,表现层都是xml+javascript,现在ajax、sliverlight、flex都是这种技术原理。业务计算层都是webservice公开访问API,当然也可以用javascript函数再包装一层,人们现在俗称这种方式叫OPEN API。业务计算层继承了(EJB/COM+/.NET)组件的风格,采用WCF组件或SCA组件风格,传递的数据,可以说WCF数据格式或者是SDO数据格式,组件用DSL脚本语言黏在一起,用WWF或BPEL引擎驱动执行,组件在组件容器(WCF引擎或ESB)中运行,容器保证他们的生死、并发、安全、消息触发、事务、日志。
这个时代就是这样的。
这个时代的来临也就是2010年(2011)年。2010年,算是早进入者,2011年算是最佳最成熟的进入时机。
那时候,3G基站普及了,大众也都普及了3G手机,大众也都习惯和乐于3G手机上网了,3G应用也非床广泛了,云存储云应用也自然而然被大众接受了,支持云应用和3G浏览器应用的开发工具也成熟了,开发人员学习的开发技术也成熟了,该到做事的时候了。
所以,按照7年的生命周期,按照3年的产品准备期,我们可以在2010年开始研发(不想付出太多研发成本和艰难的推广成本的,可以在2011年开始),2011(2012)年推广,2012(2013)年大力发展,2014(2015)进入大规模应用与销售期。
虽然,从2007年,云计算、RIA、SOA、SaaS就开始被业界媒体传播,2008年,更是进一步传播,但2009年,仍然是一个逐步落地的一年,今年讨论的将不是2007年的概念,2008年的好坏大辩论与盈盈领域,2009年业界讨论的肯定是如何开发编程。今年的开发工具和各个公司发布的框架代码与SDK包也将大战这一块。
但大家也不要太激进,虽然从历史规律看,B/S是从2003(2004)年进入主流,但我们仍然有不少C/S应用,在2003年才开始开发第一版,当年也并不觉得落后,直到2006(2007)年才感觉招聘C/S开发人员越来越难了。也就是说,都有两年到三年的滞后期。
也就是说,B/S软件,看似2010(2011)年结束历史使命,但真正萎缩,是在2013(2014)年。我们仍然可以用asp.net或JSP开发个4-5年没有问题。
你可以在2007、2008年当激进分子,也可以在2009、2010做最早进入者,2011年做最佳进入者,或者2013年做成熟进入者。有的小公司希望借助时代变革而崛起,有的小公司是应用最成熟的策略。不同的思路,决定了应用技术的时机。
作为我个人代表我所服务的中小IT公司而言,我希望2009年还是个跟踪年,2010年开始进入小应用,2011年大规模应用技术开发新一代产品体系。如果老板不看重技术契机,那么2013年应用也是有可能的,从2009-2013这4年中,仍然维护C/S老产品,挤尽它最后一滴利润,大力发展B/S现有产品成为现金牛,2013年做新一代。
做公司产品运营,要看7年。做开发产品,要看4年。毕竟,一个产品要担当公司盈利主力,必须要提前2-3年就要开始做。