细数2011年对开发者而言的十个重大事件
从Windows 8开发者预览版的推出到移动版Flash的“消亡”,2011年对开发者而言定是重要的一年。
对软件开发者来说,如果要为2011年下个注脚的话,注定是个“多秋之年”。这一年许多重大事件层出不穷,技术变革犹如风景变幻,若要追溯的话最与之相仿的应该是1995年了,在那一年Windows 95及32位计算正式推出。今年,在迈向Web编程的道路上我们同样经历了许多重大变迁,下一代Windows系统同样令人期待,不同于我们现今所常使用 的。此外,许多我们原本认为的“未来”技术似乎突然间又与以往想象并不相同。以下就来细数一下2011年中开发领域所发生的一些重大事件。
1. Windows 8开发者预览版推出
Windows 8开发者预览版的发布犹 如在开发者社区中投下了一枚重磅炸 弹。全新的Metro界面及WinRT API,清楚无疑地表明了微软已无意再执著于传统的桌面市场。你可以对“平板效应”持任何保留观点,但微软显然相信了。除非在正式版(据说将在2012下 半年,且很可能在8月份)推出前微软有了一个新的战略改变,否则我们有理由期待,微软将把早期的传统桌面系统划入“Maintenance only”行列,并最终遗弃它们。或许值得思考的是:倘若真的一个Windows 8生态系统形成,像Ruby、Python以及Java等这些语言如何定位它们的位置呢?在一个纯Metro/WinRT模式下,它们可能并不能很好地运 作。
2. HTML5崛起
HTML5距离真正“完成”还有一段路程。但是在2011年,各大厂商纷纷加入对它的支持之中,从浏览器至各种开发工具中都可见一斑。与此同时, 许多网站等甚至正式采纳它,特别是在移动设备中。为什么是移动?首先,这得感谢移动浏览器的大力支持——在移动设备上没有IE 6的存在。其次,HTML5拥有许多特性可以提高移动设备上的浏览体验。再则,移动开发人员大都倾向于使用前瞻性的、前沿技术,这也得益于大多数情况下他 们可以轻装上阵。
3. Adobe停止移动版Flash开发
当Adobe宣布停止移动版Flash的开发时,人们的第一反应通常是“这么快?(译者:这么慢?)”,而不是“怎么会这样”(注:Adobe近日表态只是不再推出基于移动设备浏览器Flash Player的更新版本,而在桌面平台使用的Flash及移动设备浏览器之外使用的Flash即AIR,Adobe将继续支持。 此外,其他合作伙伴也可以继续开发它)。但是倘若在日益流行的移动平台上Flash无法继续更新,恐怕其在桌面系统上的优势也将难以为继——大多数情况下 应是如此。除非你不打算进行移动开发(祝你好运,单就屏幕大小来说大型平板已经不逊于桌面计算机),Flash已无机会。Flash的终结可说是众望所 归。
4. Silverlight遭微软搁置
在Adobe将移动Flash“冷藏”于Maintenance-only仓库之前,微软已开始在Silverlight上“急刹车”了。首先, 微软表示Silverlight将不再应用于各种Flash或HTML5所实现的方案,由于Silverlight已不可能到达“无处不在地安装”程度 ——就像曾经的Flash以及即将到来的HTML5,微软的这一举措无疑是明智的。同时,微软表示Silverlight更多地是为浏览器之外(out- of-browser)的应用程序所准备的,比如WP7或企业应用。开发者们随后即发现Silverlight的升级及路线图发布不再像以往那么快了;虽 然微软辩称Silverlight现在已是一项很“成熟的”技术,但是你应当明白。随着Windows 8预览版的到来,Silverlight和WPF(Silverlight的Windows桌面版兄弟;即Windows Presentation Foundation,微软推出的基于Windows Vista的用户界面框架)都将沦落为边缘角色。唯一的安慰在于Silverlight、WPF和新的Metro UI及WinRT system很相似。在多数情况下,从Silverlight或WPF应用开发转移至Metro/WinRT应用很方便。
5. Java 7发布
Java 7终于发布。在.NET生态系统加速圈地的同时,Java社区却由于Oracle对Sun的收购似乎陷入了“内战”的泥潭之中。好在,Java 7还是出来了。这是Java迈向现代化进程所跨出的有力一步。但是,对比一下,Perl也很快将到达6,而C++ 11亦将很快到来。
6. iPad支配平板市场
当下,已经有很快开发人员开始期待Android平板能够冲破iPad所构筑的壁垒。不过,目前说来Android充其量也只是在iPad所开创 的平板蓝海中溅起了一点浪花。2012年会是属于Android平板的吗?也许。不过也可能是属于Windows 8平板的。甚或只是iPad将各个挑战者逐一挑落的一年。现下,如果你想开发完全针对平板的应用,还是投靠iPad吧,或者打消这个念头(如果你并不喜欢 iOS开发)。
7. PaaS产品盛行
数年前,我目睹了最初PaaS(平台即服务)产品的诞生。它与亚马逊此前建立的Amazon Web服务不同,我想“Oh,真有意思”。今天,从各种主流平台(.NET、Java、PHP)到小众应用(Ruby on Rails),甚至一些相对陌生的平台(如OutSystem的Agile平台)上都能看到PaaS的身影。有趣的是,其中大多数似乎都是建立于 Amazon Web Services之上。无论如何,现在我们更关注的是该将应用放到哪个云上,怎么才能解决管理、安全及性能等问题,而不是为什么要这样做。平台的时代已经 来临。
8. 低廉的云工具渐取代桌面工具
说到云,过去一年中我谈论云工具要远甚于桌面工具。云工具比相应的桌面工具要便宜得多,而且容易使用。很多时候,厂商利用了已有的开源工具,这使 它们易于使用和运行,也很容易在云上部署。这是个好主意。对系统管理人员来说,可不情愿看到服务器散列(server sprawl)问题的发生(尤其若对某个操作系统或工具还不甚了解时),而更希望开发团队去使用云服务。云工具可以说是产业的未来,特别是对小企业来说。
9. JavaScript日益重要
JavaScript的重要性是早已周知的。而随着HTML5的崛起及Flash与Silverlight正走在淡出的路 上,JavaScript是唯一变得越来越重要的。jQuery等框架的日益流行也使它更容易使用。很多推出的新语言无一不是支持编译器转换为 JavaScript代码,以便透过其进行推广,比如Google的Dart。
10. ASP.NET WebForms趋于没落
多年来,ASP.NET开发人员只能眼睁睁地羡慕着其他语言的开发人员,比如Ruby on Rails开发者,因为WebForms的混乱让他们苦不堪言。不过在2011年ASP.NET MVC不再生涩,今年初微软发布ASP.NET MVC 3,使得该技术真正成熟了起来。越来越少的开发人员在新项目中使用WebForms,理由也非常充分。虽然ASP.NET MVC还没完全让我喜出意外(部分原因也是因为我一直以来拒绝WebForms,而使用了一种与ASP.NET MVC较相似的方式来写ASP.NET程序),不过一切在朝着好的方向发展。.NET开发者最终将能够获得像Ruby与Java开发人员那样的代码编写功 能。
最后再提名一个:C++11
本文前面介绍到了C++11,不过我们有必要将它单独列出来。C++11终于将C++带入了现代化,这也得感谢其“漫长”而谨慎的规范制定过程。 它曾经很糟糕,很长一段时间内都被称为C++0X,因为没人知道它什么时候将完成。在没完没了的命名上,它甚至耗费了长达一年多时间来最终敲定。尽管如 此,C++11将无疑吸引更多的开发人员进入C++世界,特别是在现在底层与本地(Native)编程日趋于冷门的情形下。