2007没怎么注意就过去了。
本来觉得2007,在IT界索然无味。但一回顾就吓了我一跳。这种技术的繁荣,不亚于2002年。
2002年的COM+、EJB、设计模式、ORM、MVC、软件工程、UML、自动测试、BUG跟踪、发布配置、项目管理,讨论了好大一堆企业级开发技术和企业级开发过程管理。
2007年,发现技术遍地开。
ROR,首先打了JAVA一枪。谁说企业级非要重型武器。从MVC、ORM、AJAX、自动化测试、日志、REST URL,浑然一体,简单的实现了JAVA一直想实现的完美企业解决方案。虽然ROR现在仅仅在自由的开源和穷人的WEB2.0世界中混,但它已经引起了企业级开发的大讨论大关注。即使ROR无法闯入企业级开发,那么JAVA也必然会出现这样的框架。JRUBY就是一个例子。
IDE工具的大战,borland一声叹息,在WIN32、.NET、JAVA均失利。SUN不是干IDE的料,居然NETBEANS做的有模有样,而且我用了最近的NETBEANS6.0,感叹大超eclipse。江山辈有新人出啊。谁说SUN做不好IDE,谁说做IDE没有空间和利益了。看来这世界规则不能老路径依赖。
年底,google发布了android,USB、蓝牙、红外、GPRS、投影仪接口、GPS,能接的都接上。地图、搜索、邮件、OFFICE应有尽有。工业设计不逊apple,代工也找的很牛。芯片设计也找的很牛,运营商也找的很牛,连中国移动都榜上有名。而且采用linux+JAVA这两大世界最大开源技术,又发动了1000万美金的社区编程大赛,整个产业链都有合作,想不火都难。所以MOTO要卖掉自己的手机部门,诺基亚要转型成为互联网企业,微软一直想在手机行业讨便宜都没有讨着。让我想起一句话:历史的车轮总会带走属于历史的东西。看看微软,在游戏机市场,在手机市场,在互联网市场均没有得到好处。微软辛辛苦苦建立起来的门槛壁垒和技术开发团队和软件开发过程管理模式,具体在新的未来面前毫无用处。真是,一个革命,就使多年营建的壁垒一下成了马其顿防线。
开发管理方法,过去追究工程化。现在讲究的是XP。但是,XP也过时了。从现在的发展趋势来看,虚公司将会产生。没有办公地点,不需要聚集在一起。互联网上的产品,互联网上的开发协作。我们需要音频会议、视频会议来加强沟通。邮件、IM、BBS、圈子、WIKI、BLOG这些沟通协作工具已经成熟。
Facebook的火,从运营上来说是校友录和大学生引起的火。但是从技术上来讲,Facebook代表了真正的web2.0。为什么这么说呢?邮件注册,是Facebook的ID认证和联系工具。邀请加入而非烂注册,是真实身份的基础保证。博客、视频、图片是内容产生工具。推荐好友是SNS的串联。Open API是应用开花的插件平台,是迎合未来WebOS,个人门户、聚合信息、SAAS的重要特征,是FaceBook巨型扩张的重要起飞。而搜索技术和故意拒绝google这样的搜索引擎,使真实信息搜索和私人性得到保证,免除了商业性故意关系营销的骚扰。所以说,FaceBook是google害怕的。google虽然有gmail\gtalk\goffice\gcode\gbbs\gblog\gearth等各种应用和社区,但google这种黑洞式聚合信息的优势,在真实性的呼声中变成了劣势。
FLEX是我2007年关注的技术。AJAX引爆了2006、2007。但AJAX是WEB时代的顶峰表现。我们经常会开发一套B/S版,也会开发一套C/S版,两版其实是两套代码,可能表现和使用上和功能上都不一样,维护也各维护各的,BUG也出现在不同地方,有了新需求就需要分别开发。实在成本无法下降,反应速度无法跟的上现实。所以如何开发一套,即是B/S又是C/S,这是我所关注的。而且不管过去开发C/S和B/S,业务层和表现层不管怎么分离都还有些代码混合在一起。ROR能强制解决这个问题,但ROR还是WEB开发框架。FLEX不一样了,它是B/S和C/S混合技术,而且只有表现技术,没有数据存取技术。这就也强制实现了业务只能实现成纯业务的WebService。而且这样实现出来的WebService,也是很好的SOA架构,在整合和聚合上面,表现了很好的Open API特性。
微软的D语言。听说微软又出了一个D语言,反复搜索信息很少。但它是面向业务专家的。这就让我很有兴趣。如何协同业务、页面表现、数据库设计、代码、测试、项目经理、文案。这是软件工程极其重要的问题。我们研究了大量的流程和工具来解决之间的理解鸿沟。前一段时间,炎黄盈动发布了一款流程描述软件,但可惜是面向eclipse的,不知道是谁用的?如果是给业务专家用的,建议简单再简单的安装和启动。
lua语言。游戏的火热,热了这门语言。但我并没有把它定位成一个游戏语言。我在N年前就在做业务平台,研究了大量元数据,反射的技术核心,希望能简单开发和编程。当时也尝试了PascalScript。我前一段时间还用了用安装软件InnoSetup,也是脚本驱动。这都是很好的引擎。未来在业务专家和架构师和开发人员之间存在的一种脚本,必定是这个趋势。
JAVASCRIPT语言。刚才说完了Lua。Lua是连接EXE软件的脚本。而JAVASCRIPT是连接WEB软件的脚本。现在的WEB开发技术,asp\asp.net\python\php\ror\jsp,层出不群。如何粘合这些不同的WEB语言,并且控制WEB元素,唯javascript莫属。
PHP语言。PHP语言在web2.0时代,LAMP组合大火。使oracle应用在大型应用,MSSQL应用在中小应用,MYSQL应用在小企业应用中,三者割据。
很多初入道的程序员都问我,现在技术这么多,该学什么才有前途?我说,你能应聘的企业是面向什么规模的客户,你就会用到相应的技术。我一般都是这么点拨的。
虽然看起来PHP因为没有框架和Mix代码,让人感觉它是ASP时代的产物。但是PHP的跨平台性、PHP的积极演化,现在的模板技术,已经能实现MVC和多语言和多风格。现在也模仿ROR进行了ORM、REST URL技术、WebService技术,跟得上时代的脚步。笔者用过ASP、asp.net、jsp,上手使用php,感觉非常顺手,很符合常规思路
webServcie与REST。记得当年使用COM+的时候,要整合个PB系统,要整合个CORBA,要整合个WebLogic,要包装成WEB应用,真是难死人,技术不稳定的N死。.NET技术的WebService,让我眼前一亮。ASP.net并没有让我感到开发web的爽(反而是asp和PHP),但是.Net的WebService是我用起来最顺心的。最近几年,微软是思想快,但步子慢。WPF、WCF都是非常好的技术,但都出师不利。代表未来的未来,但不代表未来。未来还在ROR和FLEX和WebService的手中。
3D互联网,google发布了google earth,也发布了3D建模工具。第二人生也发布了SDK,但都没有引起风暴。FaceBook走入了SAAS、Open API的时代,这算是web2.5技术了。
看来,我们不要走的太快,只需要比现在前进一点,就有一个机会窗口。