记者/付江

徐昊
架构 在过去的十年里,互联网逐渐成为人类历史上所构建的最大规模,最复杂的应用。数以亿计的应用通过互联网交互和整合以支持同样数以亿计的用户使用。然而十年来广大开发者和架构师往往会忽略这样一个事实,整个互联网架构在一组极简单的概念之上:  a. Web是一组资源的集合,每个资源有独立且唯一的标识  b. 资源可以有不同的表现形式和状态  c. 资源通过HTTP和开放的文本格式进行整合 只要合理的应用这些概念,绝大多数商业应用都可以获得类似容量和扩展性。基于这一想法的技术和实现随着Web本身的发展日趋成熟,而这一切都明确的指向一个方向:Web除了可以是一个应用的发布渠道。它本身也可看着一种架构模式或者开发平台得到应用。这就是Web as a Platform。 在过去的几年里,越来越多的企业(Google,Amazon)开始应用这一概念,替代一些曾经流行一时的基于HTTP的整合技术(比如SOAP,Web Service),ThoughtWorks也曾经在很多企业级应用里用到(这种技术),使用这样的模型来代替传统需要Web Service甚至BizTalk这样的重量级产品的方案,都取得了非常不错的效果(无论是架构上,还是商业上的投资回报率)。我相信,在未来十年里,这种架构模型将会成为主流模式得到推广和应用。 数据 如果讨论过去30年在商用程序领域最重要的发明,非数据库莫属。然而在过去的十年里数据技术并不那么风光,从架构和业务的角度上讲,随着SOA、BPM等概念的流行,人们一度把视线的重点从数据转移到了业务流程。从开发领域来看,从以数据库为核心的开发,逐渐过渡到以应用程序服务器、中间件为核心的开发方式。但是有种种迹象表明,数据技术又回来了(注意我没有说数据库)。 从业务上讲,越来越多的企业意识到,流程是不稳定的易变的,而数据是稳定的。对于流程的治理,最终还是对于数据的治理。从技术上讲,经过这许多年的发展,我们有了更好的工具和技巧,可以帮助我们更好的处理与数据相关的逻辑和流程。同时我们对于数据也有了更好的认识,当人们应用Web as a Platform的概念之后,会猛然发现。我们已经把应用从过程和服务转为数据,把应用系统转化为数据系统。 但是,在数据整合和交换领域一直存在的问题──语义壁垒,会再一次成为人们关注的焦点。而以RDFa带代表的,更亲近Web的,也更轻量的语义技术,将会被应用于解决这类问题。ThoughtWorks将会在最近公开我们自己对于这个问题的理解和方案──Responsible Open Data(ROD)。我无法预测ROD是否会在未来十年内成为主流,但是ROD试图解决的问题,在未来十年内会成为行业内的焦点。 语言 最近几年,Java的发展逐渐放慢了脚步,甚至从主流编程语言来看,Java是最保守和落后的。个人意见,Java语言本身比C#语言要落后至少5年。但是衡量一个语言是否成功,并不仅仅是语言本身可以决定。除了语言外,还有类库,和运行平台。从后两者而言,JVM(尽管Oracle最近种种举动实在非常令人失望)以及围绕着JVM的开源社区所贡献的类库,依旧具有无可估量的价值。因此,JVM越来越被当作一个具有丰富类库支撑的通用平台,而不仅仅是Java语言的运行平台。在下个十年里,我们会越来越多的看到,应用JVM而不使用Java的情 况。一开始可能是JRubyRDFa、Groovy等等。逐渐会过渡到Scala、Clojure等更好的语言。而对于.Ne而言,F#一定会得到极大的推广。毕竟,在主流平台上,F#是最好的函数式语言实现之一(如果限定在.Net平台上,则没有之一)。 开发方法 在未来,敏捷方法还会持续得到关注,并被更广泛的采用。但是,需要提醒一点的是,敏捷方法族实际上倡导的是一种文化而非特定的过程或者实践。任何把敏捷简单粗暴地过程化的倾向,都是应该避免的。此外,认证/考核是毁掉任何文化最好的工具。前车之鉴就是CMM从一种理论上的改进模型(CMM理论模型本身是相当精益的,目的在于持续改进)沦为一种过程模型和认证工具。如果当今已然产生的敏捷认证(比如Scrum认证)之风不止,我甚至可以说,敏捷可能在10年彻底消亡。 《程序员》12期精彩内容:十年 《程序员》杂志订阅

Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐