最新出版的MIT技术评论5/6月合刊登出了MIT评出的2010年度十大新兴技术,其中IT领域的发明占有重要的位置,大家一定注意到其中有一项是云编程(Cloud Programing)而不是云计算(Cloud computing)。云计算作为一项巨大的平台变革,吸引了包括电信运营商,互联网提供商等多方利益体的角逐,但开发者在云计算时代的作用及前景却不很清晰,难道程序员的工作就只限于转换现有的程序到云平台上吗?
看到Google、Amazon等公司所拥有的超大数据中心,人们都不会怀疑云计算提供了几乎无限的处理和存储能力,但是开发人员目前却不知道如何充分利用这种能力。
今天,许多程序员在做的是转换现有程序使其能在云上运行,而不是创造出一种可以在任何地方运行的新程序类型。于是他们面临着这样的难题——如何记录数据并获取云运行情况的可靠信息。只有这一问题得以解决,程序员才能真正开始利用云计算所展示出的无尽的可能性。例如,云应用可以使在线音乐销售商随时了解流行音乐的情况;如果一个歌手突然成为热门话题,他可以迅速自己网站中的广告和特惠服务来迎合顾客的需求。
在加利福尼亚大学伯克利分校,Joseph Hellerstein认为他可以开发一种软件来接管记录和获取云中数据的工作,这样就降低了程序员开发复杂云计算程序的难度。他的出发点是修改现有的数据库编程语言,使开发者能快速建立各种运行在云中的应用——社交网络、通信工具、游戏等。近年来,这种编程语言在不断改进,以隐藏对大规模数据的复杂操作,但如果这些语言能融入云计算的特性,那么程序员们就可以专心于业务的实现而不是纠结于对数据的琐碎操作。
然而这些语言的问题在于,它们是静态地批量处理数据,不能够对不断变动(例如读取自传感器网络的)数据进行处理。Hellerstein提出的解决之道是新型编程语言中引入动态数据的概念(数据在进行操作时同时可以变化),这样程序就可以处理将要到达(或者永远不会到达)的数据。
这种新型语言叫做“Bloom”。现在,Hellerstein的团队已经在使用这种语言,并不断地对Bloom进行重构,添加一些重要的特性确保对主流云计算工具和框架技术的支持,例如分布式计算平台Hadoop。通过降低实现难度,该语言将吸引更多的程序员投入云编程,更多的新型云应用也将不断涌现。
Hellerstein的团队将在2010年下半年推出Bloom语言,目前他们正在对该技术运行在实时应用(例如在线多人游戏、灾难监控)上的效果进行论证。