编程语言
由于 Apple 的魅力,Objective-C 获得了飞速发展。其他主流语言变化基本不大。从 5 月的 Google I/O 大会来看,Go 语言在 Google 内部得到不少应用,但是社区关注点成功案例,在 2010 尚未明显突破。
函数式编程语言在分布式及互联网领域依然非常受重视,但是 Haskell、Erlang、Scala 等语言都缺少一个契机走向主流。
在 TIOBE 排行中,Java 依旧是第一语言,但是由于 Oracle 收购 Sun 及 Oracle 与 Google 的 Android 官司事件给 Java 发展蒙上一层阴影。在年底,IBM 和 Apple 都先后加入了 OpenJDK 项目,统一化了后续 Java 的方向。
数据及存储
根据国外知名技术站点 HackerNews 上半年前的一个投票“初创公司用什么数据库”,在 1044 个结果中,排行前 4 位是 MySQL 433、PostgreSQL 249、MongoDB 138、Redis59。
从中看到 MongoDB 及 Redis 取得了众多初创公司的青睐。其中推荐关注 Redis,在大量的 benchmark 测试中 Redis 基本战胜了 Memcached。Redis 是什么?如果你认为 Redis 是一个 keyvalue store, 那可能会用它来代替 MySQL;如果认为它是一个可以持久化的 cache,可能只是它保存一些频繁访问的临时数据。Redis 是 REmote DictionaryServer 的缩写,在 Redis 在官方网站的的副标题是 A persistent key-value database withbuilt-in net interface written in ANSI-C for Posix systems,这个定义偏向 keyvalue store。还有一些看法则认为 Redis 是一个 memorydatabase,因为它的高性能都是基于内存操作的基础。另外一些人则认为 Redis 是一个 data structureserver,因为 Redis 支持复杂的数据特性,比如 List,Set 等。对 Redis 的作用的不同解读决定了对 Redis 的使用方式。
在分布式存储领域,在 2010 年,Cassandra 在年初的火爆没有持久,下半年 Twitter 暂停在主业务后 Cassandra 逐渐在业界淡出。到年底时,Facebook 新的统一通讯产品突然宣布使用 HBase,随后其他一些产品如淘宝的一淘也宣称使用了 HBase,因此建议大型存储尤其是对 Hadoop 已有技术投入的公司可更投入适当力量研究 HBase。
平台及应用
随着云计算及开放平台的发展,软件开发模式已经发生了很大的变化,传统的信息系统需要走向开放及社交平台化,需要连接 Amazon、Facebook 等平台。更多新的软件机会在 Facebook、AppStore 等社交及移动平台浮现。在平台上开发软件和传统方式有很大差异,需具备快速开发能力,以及产品上线后应对用户急速增长的压力。很多初创公司并不具备大规模服务系统开发经验,因此使用云存储及云计算是在平台上开发应用最好的选择。在国外 Amazon 等厂商的服务已经非常成熟,从新开发的应用到上百万用户的系统都可以使用。初创项目尽量利用已有资源,切忌一切从头开发。
技术动向
年初在北京举办了 QCon 2010 大会,Facebook 及 Twitter 都分享了相关技术架构,从中可以学习到大型 Web2.0 系统的架构设计经验,到年底以关注 Web 性能为中心的 Velocity 大会也来到了北京,Facebook 分享的 BigPipe 等前端加速技术相信又会在业界带来前端优化的新思路。Web 及前端开发不再是以 Web 页面开发为主,前端脚本优化为辅的思路,使用前端框架为中心驱动 Web 页面开发的思路才能满足动态应用速度及用户体验的要求。
关于作者
杨卫华,新浪微博架构师,对互联网后端技术及大规模分布式系统架构有浓厚兴趣,经常通过微博及博客发表技术观点。
感谢张龙对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。
评论