2009回顾:软件开发多事之年

  2009年是个多事之秋的年份,从经济危机的笼罩到经济复苏的开始,软件开发领域也是多事之年,从日久长青的C语言使用率排行榜上升接近Java,微软发力.NET平台, 到Web开发新技术新趋势等一宗宗一件件,让软件开发者不慎感慨。

  软件开发平台和语言对于IT行业从业者来说,就像是工人手中的工具,没有这些工具就无法创造出我们所需的物质产品。对于软件开发来说目前绝大多数编程者选择的是高级语言。它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的Java、VB、VC、Delphi等。它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,大大简化了程序中的指令。也为开发者减轻了编写的工作强度从而提高编写者对思维上的想象。那么现在最流行的开发编程语言是什么呢?在这一年中软件开发界又发生了哪些事情?

  C语言 代码之美

  在11月Tiboe发布了新一期的编程语言排行榜,主题是《C is closing its gap with Java》,即:C与Java的差距越来越小。很显然,这并不是从语言特性和功能方面的差异,而是在编程语言的使用率方面的接近。

2009回顾:软件开发多事之年_第1张图片

  从榜单中我们可以看出,在11月的语言使用率指数上,Java占有18.373%,C语言17.315%。Tiboe编程语言排行榜的前两名差距从未如此之小,作为2008年度编程语言的C仅以1%的差距落后Java;而上一次C和Java如此接近还在2005年。这一方面反映了Java的下滑速度增快;一方面也可以看出,C这门具有近30年历史的编程语言历久弥新,一些优秀特性至今仍被广泛应用。本期排行榜,就让我们一起解析C语言的耐力基 因,看看是那些因素成就一门经典编程语言。

  C语言源自对B语言的改进与完善。1970,UNIX的发明者丹尼斯·里奇(Dennis Ritchie)和肯·汤普逊(KenThompson)为自己的项目设计开发了B语言;后经贝尔实验室对B语言的完善和改进,于1978年正式发布C语言。显赫的背景使C语言一诞生便具有纯正优良的科学血统:丹尼斯·里奇在编程史上地位无人能及,贝尔实验室因其对项目测试的苛刻要求使C语言经过严格而缜密的测试。

  而这一切,为C语言日后在底层控制和性能方面的优势打下坚实的基础,使之成为芯片级开发(嵌入式)和Linux平台开发的首先语言。如今,C语言在通信、网络协议、破解、3D引擎、操作系统、驱动、单片机、手机、PDA、多媒体处理、实时控制等领域,正在用一行行代码证明它从应用级开发到系统级开发强大和高效。

  一门编程语言能够得到广泛的使用和长久的发展,除去语言特性和应用场景,其易用性和可维护性也是重要原因;良好的代码风格和内在逻辑将是程序员和项目经理选型时考虑的重要因素。作为一门面向过程的编程语言,C代码的逻辑性和简洁性无人能及。简单易学是C语言流行的主要原因。现在,很多计算机专业的学生都是用C进行编程入门;工作在一线的程序员,很少没有写过C程序。借助于C语言被广泛使用的特点,使C++在设计和推广之初也不得不考虑C的语法和特性,以便于吸引更多的C程序员学习和掌握。类似的语言还有榜单第三名的PHP。

  如果你写了几年OOP程序,可以试着回想一下C的代码,代码简洁、数据结构丰富,对系统底层的控制无人能及。难道你不想在一堆对象和实例中解脱?当我们已经开始习惯用面向对象这种更高级方式思考和解决问题;大家对C强大的底层控制能力失去兴趣,因为那些复杂的代码已经可以交给编译器去实现,底层的操作已经完全可以交给类库和操作系统API去进行。

  但这并不能否定C的经典。从榜单我们可以看出,C的经典还将延续,其良好的底层控制能和性能方面的优势,易用好学的语法特点将成为其长盛不衰的耐力基因;我想,这也是任何一门语言可以长久发展的必要因素。

  09年十种比较流行使用的编程语言

  软件开发人员熟练掌握多种编程语言是很常见的,这样也可以为开发人员在不同语言架构中找到开发路径做基础,下面不分排名的为您列举在比较流行使 用的十种编程语言。这些语言一多半是基于微软.net平台的语言,不难看出微软还是现在软件领域的领军者。

  1、C++

2009回顾:软件开发多事之年_第2张图片

图(1)

  C++这个词通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的计算机编程语言。

  C++是一种支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。

  2、C#

2009回顾:软件开发多事之年_第3张图片

图(2)

  C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。它是由微软工程师Anders Hejlsberg主导开发的。

  C#看起来与Java有许多相似之处;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。

  但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET框架的主角。此外,C#还具有安全、稳定、简单的特点。

  3、Visual Basic

2009回顾:软件开发多事之年_第4张图片

图(3)

  VB是一款由微软公司开发的包含协助开发环境的事件驱动编程语言,拥有众多的忠实使用者。

   它源自于BASIC编程语言,VB拥有图形用户界面和快速应用程序开发系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建 ActiveX控件,深受开发人员的喜爱。

  4、JScript

2009回顾:软件开发多事之年_第5张图片

图(4)

  JScript是一种面向对象的脚本语言,最初由Mozilla公司首席技术官Brendan Eich开发。

它主要功能是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。

   对于JavaScript和Java的关系,有网友类比雷锋和雷峰塔,二者的区别还是非常明显的。

  5、PHP

2009回顾:软件开发多事之年_第6张图片

图(5)

  PHP是一种 HTML 内嵌式的语言,可以在服务器端执行的嵌入HTML文档的脚本语言,风格类似于C语言,现在被很多的网站编程人员广泛的运用。

  PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行**页,执行效率要高许多。

  如今,PHP已经占据编程语言前三甲的位置。

  6、IronPython

2009回顾:软件开发多事之年_第7张图片

图(6)

  IronPython是一种在 .NET 及 Mono上的 Python 实现,由微软的 Jim Hugunin 所发起。它是一个开源的项目,基于微软的 DLR 引擎,托管于微软的开源网站 CodePlex。

  7、IronRuby

2009回顾:软件开发多事之年_第8张图片

图(7)

  IronRuby是一个运行在.NET框架的完整Ruby 1.8.x实现,它允许Ruby应用能够被无缝的集成到.NET库和基础设施中。

  它使用微软的Dynamic Language Runtime,并依据Microsoft Permissive License发布所有源代码。这种集成使得应用Silverlight和.NET框架的全部能力创建应用变得非常容易。

  8、F#

2009回顾:软件开发多事之年_第9张图片

图(8)

  F#是由微软发展的为微软.NET语言提供运行环境的程序设计语言。它是基于Ocaml的,而Ocaml是基于ML函数程序设计语言的。这是一个用于显示.NET在不同编程语言间互通的程序设计。

  9、Axum

2009回顾:软件开发多事之年_第10张图片

图(9)

   微软新推出的.Net家族新成员Axum,它最主要的目标是实现并行。Axum试图提供一种更为自然的方式来安排组件之间的协作问题。换句话说,如果将方案按照交互式组件建模,在Axum中编码会更为直接了当,而且你可能可以不被许多常见的并发问题所困扰。

  10、“M”

  微软旗下代号为“M”的编程语言是为处理数据和建立数据模型而开发的。这种新编程语言是Oslo发展和面向服务策略的一部分,在保持文本 (textual)和特定领域(domaiN-specific)的同时,还整合了来自XAML的特性。

  .NET平台动力强劲 火花四溅

  2009年的微软.NET开发平台可谓是动力十足,看准了云计算的势头,年初就砸上了两款重量级产品, Windows Azure和SQL Azure,在Web开发虽然屡屡受挫,不甘寂寞的微软推出了ASP.NET MVC技术从Windows开发平滑过渡等诸多优势,让.NET火花四溅。

  1. 云计算技术的兴起

  09年年初,微软首先推出的就是云计算的两款重量级产品Windows Azure以及SQL Azure。

  Azure服务平台(Azure Service Platform)是一个构建在微软数据中心内,提供云计算的一个应用程序平台,而Windows Azure操作系统则是这个平台中的基底服务,它允许开发人员能够在上面开发,管理以及挂载其在线服务应用程序,并且也提供了一组开发工具让开发人员得以在本机上开发与测试其云应用程序,同时所有的在线服务都是基于Windows Azure之上运行,如SQL Azure。

  Windows Azure的应用程序宿主环境(hosting environment)称为Fabric Controller ,这是一种提供给个别系统的网络应用程序集区,它会自动管理资源、负载平衡、地域复制(geo-replication)(无需在意机器位置的高可用性复制法)以及应用程序的生命周期,且不需要被挂载的应用程序明确的提出这些需求。另外,它也提供了大部份应用程序所需要的东西,例如 Windows Azure 存储服务 (Storage Service),它提供了应用程序具有存储非结构数据如大型二进制对象(BLOB),队列(Queue)以及非关系性表格的存储体,应用程序也可以使用其他架设在Windows Azure服务平台中的其他在线服务。

  Azure服务平台提供了部份内置的API,像是REST、HTTP与XML等标准以允许其服务与Windows Azure本身来沟通,而客户端托管代码库(指ADO.NET Data Services或其他功能的库)也提供了与服务交互所需功能的封装,并且与Visual Studio集成,让开发人员得以使用其集成开发环境来开发与部署要宿主于Azure上的应用程序。

   应用这一平台的好处就是,无论用户身在何处,使用何种设备进行网络应用,只要他可以访问到互联网, 就可以完成日常的所有工作。当然这与侧重用户层面的网络桌面应用如Google Chrome OS不同,微软的云技术的重点在于提供可靠的服务。

  Windows Azure是一种特别针对云计算的在线服务所开发的网络操作系统,运行在它的"fabric layer" - 一种存在于微软数据中心的群集架构(cluster),自动管理群集中的计算机计算与存储资源,并提供资源(前述的计算与存储资源的一部份)给运行在 Windows Azure 之上的服务应用程序。Windows Azure 通常被描述成在一定数量的Windows Server系统之上,其使用了Windows Server 2008以及特制版本的Hyper-V,即已知的Windows Azure Hypervisor以提供服务所需要的虚拟化技术。

   此平台上包含五种服务:

  Live Services:Windows Live的众多在线服务。

  SQL Services:提供云的关系数据库服务。

  .NET Services:提供在云中的各式应用程序服务器服务,例如交易以及工作流程等。

  SharePoint Services:提供在线版本的SharePoint Server服务。

  Dynamic CRM Services:提供在线版本的Microsoft Dynamics CRM服务。

  同时这些服务均有软件开发包(SDK),包含客户端库、工具、示例应用程序等,以及与Visual Studio的紧密集成。

  扩充性以及稳定是由 Windows Azure Fabric Controller 所控制,因此服务与环境不会因为在微软数据中心的其中一台服务器当机而停摆,同时它也提供用户的服务应用程序的存储器资源,以及负载平衡的管理工作。

  Azure服务平台目前能够运行编译给CLR运行的.NET Framework应用程序,并直接支持ASP.NET应用程序框架以及配合的部署方法以部署其应用程序至云平台,同时配合FastCGI模块的支持,让 Windows Azure也可以使用PHP应用程序以及其他CGI应用程序。而微软也发布了Java SDK for .NET Services以及Ruby SDK for .NET Services让Java及Ruby开发人员也可以与.NET Services集成在一起。

   当然,在微软提供了优质服务的前提下,价格因素也是被广为关注的,目前Windows Azure的价格为

  Compute = $0.12 / hour

  Storage = $0.15 / GB stored / month

  Storage transactions = $0.01 / 10K

  Data transfers = $0.10 in / $0.15 out / GB - ($0.30 in / $0.45 out / GB in Asia)

  而Sql Server Azure的价格为

  Web Edition: Up to 1 GB relational database = $9.99 / month

  Business Edition: Up to 10 GB relational database = $99.99 / month

  Data transfers = $0.10 in / $0.15 out / GB - ($0.30 in / $0.45 out / GB in Asia)

  和亚马逊的价格比起来,微软产品的价格还算相对厚道。相信随着国内网络质量的进一步提高,微软的服务将会运用于商业应用。

  2009年已经过去,微软的.NET平台到底推出了那些新技术,而微软在这些方面又是如何权衡的,我们在这和大家一起回顾一下2009年的微软几大新开发技术,并揭秘这些技术背后的技术走势。

  2. Web开发技术表示层的复兴

  在这一年当中,微软又一次旧话重提,开始重新关注表示层技术,在ASP.NET 2.0市场占有率开始被PHP侵蚀的情况下,微软及时的推出了一款新的ASP.NET表示层技术——ASP.NET MVC技术。

  WebForm技术在推出之后曾经一度受到广泛赞许,由于其具有快速开发,从Windows开发平滑过渡等诸多优势,很多首次接触Web开发的开发者都义无反顾的投向了这一技术的怀抱,但是随着网络应用日趋复杂,可定制部分不够灵活成为了这一技术的瓶颈,而更纯粹的开发技术,比如PHP,反而逐渐回到人们的怀抱,且客户端的JavaScript越来越丰富,表示层方面的快捷已经不足以为开发者带来更高的敏捷特性,也不能让设计人员平滑的进入开发工作,于是微软推出了ASP.NET MVC。

  ASP.NET MVC是在现有ASP.NET 3.5运行时的顶层提供一种新的模型-视图-控制器(MVC, Model-View-Controller)框架。这就允许开发人员利用MVC设计模式的优势创建自己的ASP.NET Web应用程序,它将内容显示(UI或者View)、业务逻辑和后台数据进行了清晰分离,可以说是MVC在ASP.NET中的实现。ASP.NET MVC的主要优点是:

  · 不再有ViewState:传统的ASP.NET WebForm模式利用ViewState保存表单的状态信息,由于B/S程序本身的限制,ViewState存储数据需要在隐藏表单域里面放置很大一段字符串,这会大大增加页面的字节数,导致网页加载变慢。

  · 简洁的HTML:最终生成的 HTML代码完全由自己控制,不会生成任何垃圾代码。

  · 更快的服务器端处理和客户端呈现:MVC只简单地处理模板,而无需构建复杂的控件树,因此,无论是在服务器处理的时间,和客户端的呈现速度都会有所提高。

  · 多种视图只需一种模型:有时候一个页面要显示的数据是同一个,但表现形式有细微的差别,此时只需要修改视图部分,可以采用现有的控制器行为。

  · 单元测试:Webform的测试是很困难的,使用MVC,可以将业务逻辑与页面分离开,可以不在ASP.NET进程中执行控制器,方便测试。

  ASP.NET MVC不会代替传统的ASP.NET WebForm,但是会将其作为良好的补充者长期共存,另一项让微软大力宣传的技术就是富媒体表现技术Silverlight,这一技术是针对日益丰富的富媒体互联网表现需要而提供的,这次微软在很短的时间内把这个产品的由1.0版升级到3.0版本,在3D硬件加速、高清视频播放、本地数据缓存、离线安装与桌面应用等方面做了大量扩展。

  (1)Video/Audio

  Silverlight除VC-1外还支持H.264视频格式。这是YouTube等使用的新兴业界标准格式,并在很多设备上有硬解码。 Silverlight也支持AAC音频。二者都以MP4容器格式实现(如.MP4或.M4A格式文件)。

  另外还支持F4v、Adobe的高清格式。可惜的是在3.0这个版本中Silverlight还不支持Camera。听说下一个版本会加入,大家还需等待一年。

  (2)GPU Acceleration

  这是Silverlight 3运行时中opt-in的特性,in-browser和out-of-browser都可以。在HTML中的Silverlight tag中,添加一个EnableGPUAcceleration=true参数来启用GPU加速。

  (3)3D Support

  Silverlight 3带有透视3D,对于一个父元素,你使用一个Projection attached property,如:

  Border.Projection

  PlaneProjection x:Name=p3 RotationY=-30 /

  /Border.Projection

  这个perspective 3D也只是将平面对象转换成立体的对象,而非真正的3D渲染引擎。而Silverlight中还没出现Flash中的pv3d一类的3D engines。

  Animation Easing新加入了很多easing的function,和Flash里的Tween类似。

  (4)Custom Dialogs

  Silvelright 3现在支持SaveFileDialog。出于安全原因,我们不返回路径给开发者,相反,你可以从结果中打开文件:

  mySaveFileDialog.Show();

  if (mySaveFileDialog == true)

  return mySaveFileDialog.OpenFile();

  关于上传下载FlashPlayer10有一些新的更新。另外笔者觉得如果禁止修改的, 打开文件也可以加上。

  (5)Effects

  Silverlight 3中引入的Effects提供低级手段来影响视觉效果。我们内置提供阴影和模糊两个效果,你也可以创建自己的效果。自定义效果以HLSL Shaders来实现用DirectX SDK工具编译成byte code供Silverlight 3使用。Shaders允许开发者在UI元素渲染前修改每个像素。

  如果Silverlight也支持bitmapdata的话, 那么Effects的加入会对它的绘图功能提高很多.

  (6)Pixel和Media APIs

  你现在可以从位图中读/写像素。这个功能有两种使用方式:in-memory位图或保存visual到位图。同时支持的还有raw audio/video API实现动态声音生成,自定义视频codec,或者alpha video channels。

  in-memory位图或保存visual到位图,这个就是微软学习FlashPlayer的bitmap的方式加入的新功能,效率问题还没有测试。

  另外动态声音生成在新版本的FlashPlayer 10 也加入了。

  (7)Local Messaging

  在多个Silverlight插件间传递消息曾是个挑战。现在我们支持类似命名管道的消息,不但垮同一网页上的对象,甚至跨多浏览器的多个Silverlight实例。例如一个Chrome实例中的Silverlight和Firefox中的另一个实例通信。

  Flash中用localConnection来实现,另外Flash中的localConnection还有垃圾收集的特别功效,这点微软好像没有加入哟 :)。

  (8)Out of Browser

  通过一个manifest对每个应用程序启用(标准Silverlight 3模板中就有这个段落,你只要uncomment它)。一个用户可以右击Silverlight内容,或者点击应用里的一个按钮来启动 Silverlight out-of-browser应用。

   这个功能很不错,可以让用户将Web应用部署到本地,增加用户对当前Web应用的依赖。不知道Adobe会不会加上,其实就是在它的swf文件和AIR文件中做一下关联,在发布的时候同时发布两个文件,然后用户可以将这两个文件同时部署到Server side上。就类似Flex中的view source功能一样。

  (9)Tooling

  Silverlight 3工具会包含新的压缩算法,XAP文件的大小会缩小10~30%。

  Web表示层新技术的应用会成为短期内微软着重加强的部分,配合服务器方面的Micorosft WebsiteSpark火花计划。

  继Microsoft DreamSpark(微软学生软件资源计划)和Microsoft BizSpark(微软创业企业扶植计划)之后,微软于24日正式发布Microsoft WebsiteSpark(微软网站火花计划),该计划旨在让网络开发人员及设计人员有三年的时间可以免费试用微软的开发工具以及服务器系统授权。除次之外还提供了在线培训以及2个专业性的支持事件。

  2010年的Web开发领域的新技术新趋势

  对于WEB开发,很多人想到的是HTML或者CSS+DIV等技术。看来在2010年的WEB开发方面,还是这些技术占据重要位置。那么未来的Internet意味着什么,我们可以从HTML5、CSS3、字体服务技术;浏览器;社会媒体;JavaScript框架以及SAAS等5个方面来展望2010年的Web。

2009回顾:软件开发多事之年_第11张图片

  1. CSS3、HTML5以及字体服务

2009回顾:软件开发多事之年_第12张图片

  CSS3、HTML5以及Typekit一类的字体服务,将给Web设计师带来更多自由。

  CSS3的新功能会让Web内容的展示变得更容易,从多背景图,到更强大的选择器,到颜色渐变,到圆角,这一切都让原先复杂的工作变得简单。

  HTML5虽然进展缓慢,但必将改变我们描述页面的方式,成为通往语义Web的重要阶梯,为Web带来真正的本地多媒体支持,并改善我们同Web内容的沟通。

   而Typekit一类的字体服务联同@font-face,将允许我们在Web页面上使用任何字体,设计师们不必再依赖CSS背景图,JavaScript或Flash。

   这些新技术将为Web世界带来新的美学体验,当然,也会引发新的滥用潮,那些蒙古大夫式的设计师将会大量使用各种花里胡哨的字体和渐变色,使他们的页面变得难以访问,对专业的设计师而言,这些新功能会让他们的创意更吸引人。

  2. Web的消费方式

2009回顾:软件开发多事之年_第13张图片

  浏览器领域重新繁荣,诸如Google Chrome、Firefox、Safari、Opera一类的浏览器大行其道,用户如今拥有更广泛的选择,厂商之间的竞争更加激烈。浏览器之战进入新的阶段,和过去不同,过去的浏览器之争是微软主导并最终将对手消灭,新的浏览器之争使IE身涉危境。

   人们消费Web的方式也在改变,上网不再意味着坐在电脑桌前打开电脑,智能手机越来越普遍,电视可以上网,SP3之类的游戏机,上网本,iPhone,Android设备都可以在一个相对小的屏幕上给用户带来上网体验。

  浏览器本身也在改变,Google Chrome将WebKit引擎,将大部分CSS3和HTML5功能从苹果迁移到Windows,Google在未来几年的目标是争取到10%的市场份额,这将撼动IE的统治地位,在德国,Mozilla Firefox已经在超过IE成为主导浏览器。

   这些因素也将改变我们对Web设计以及可访问性的看法,你的站点是否有一个移动版本?它们在小屏幕上看上去如何?在一个很大的屏幕上看上去又如何?在Weibit引擎,或是Gecko引擎,或是Trident引擎上看上去是否一致?

   人们对在不同设备**问Web的观念也在改变,设计师们逐渐意识到,没必要在各种不同设备上输出相同的页面,也无需为不同的设备提供相同的用户体验。

  人们将发现Web在不同的浏览器上有不同的样子,诸如渐进式增强的Web技术越来越普遍,为不同Web用户提供不同的体验。同时,放弃对陈旧浏览器的支持也逐渐为人接受,让用户将压力推向浏览器厂商而不是设计师。另外,人们会将注意力转向内容、功能、可访问性,并注重设计和创意。

  3. 社会媒体

2009回顾:软件开发多事之年_第14张图片

  没有人会否认,2009年是社会媒体极其重要的一年,比如,Twitter已经成为热门话题,它还会继续热门。诸如Twitter、Facebook一类的平台的发展使Web逐渐成为社区导向的Web,毫无疑问,社会媒体会有大的变革且会实现盈利。

   围绕着社会媒体的一个问题是,如何衡量它的价值并获得这份价值。1000个Twitter跟随者价值几何?他们是否将为此收费?在2010年, 对这类问题的解答将导致社会媒体的大变革。

   伴随着这些变革,信息的实时获取将成为焦点,Google已经在讨论针对Twitter等平台进行实时搜索的问题。这些改变如何同现有的系统, 尤其是搜索引擎技术集成,将引发一些技术革新。

   随着越来越多的人参与 Web 信息的创建,我们获取信息的方式将从过去的单一来源向更社区化的来源转变,假如我们要搜索修车行,我们会看到修车行最新的Twitter或Facebook消息而不是那些过时的静态内容。

  4. JavaScript

2009回顾:软件开发多事之年_第15张图片

  当CSS3和HTML5开始涉足JavaScript的地盘,JavaScript本身也向Flash逼宫。诸如jQuery一类的框架使富客户端,异步与无缝用户体验变为现实,Web应用的开发变得更简单,并引发竞争和创新。

  JavaScript已经可以帮我们实现过去只能靠Flash实现的东西,如交互式游戏,复杂的交互式数据可视化技术,也使那些富客户界面、Flash式体验变得更具可访问性。

  最近,已经10年没有升级的JavaScript也迎来了它的一次重要升级,一旦浏览器厂商们吸纳了这些标准,Web开发者们将拥有更强大工具来创建Web应用。

  随着CSS3和HTML5开始涉足一些JavaScript的功能(如复杂对象的选取,动态圆角,实时可编辑页面),JavaScript将趋向于用来处理Web应用与客户端的程序逻辑。JavaScript的最新升级将使Web应用之间更容易相互操作(JavaScript的这次升级的一个主要目标是实现JSON对象的安全细则)。

  5. SaaS-软件即服务

  SaaS(软件即服务)已经不新鲜,象37Signals、GoogleEnterprise一类的SaaS越来越普遍。竞争会越来越激烈,进入门槛低,那些小厂商将有机会和大厂商展开竞争,2010年,我们会看到这种竞争加剧并带来Web应用的创新。

  SaaS商业模式会继续取代传统软件的位置,随着上网的人越来越多,人们需要的是基于Internet可以相互操作的系统。

  Java开源技术仍在增长

  对Java社区来说,2009年是一个多事之年:Oracle的收购带来希望但更多的是担忧;对Java7的焦急等待;对是否需要闭包的持续争议;其他收购对开源社区的影响。James Sugrue联合Java社区的其他三位核心开发者对2009年的Java进行了盘点。

  James Sugrue是Eclipse开发者,Java社区的活跃份子。他认为

   最初我们以为IBM会收购Sun,然后Oracle甩动着大把支票出现了。虽然Larry Ellison保证将在JavaOne上支持Java平台,但讽刺的是,关于JavaOne 2010不会举办取而代之的是Oracle OpenWorld的谣言甚嚣尘上。

   尽管社区里出现了很多关于Java衰落或灭亡的文章,但无可争议的事实是Java在行业内依然一如既往地流行,许多公司仍持续向Java投资, 未见衰落之势。而且尽管存在全球性的经济危机,但无论是Java还是IT领域的收购都显出反弹之势。不管Oracle的收购带来怎样的结果,Java社区都敢保证Java语言和平台的继续成功。

   除了Oracle和Sun的故事,SpringSource的一系列举动在Groovy社区表现得也很活跃:收购Groovy和Grails技术的幕后公司G2One,收购系统管理软件厂商Hyperic,随后SpringSource又被VMWare收购,在虚拟市场取得立足点。

   另外,Terracotta收购了Quartz和ehCache开源框架。所有这些都是积极的,表征着无论是开源还是商业Java都更加成熟了,而且证明开源获得了商业利润。

  Alex Miller是开源的Java群集产品Terracotta的开发者。早先他曾工作于BEA Systems,是MetaMatrix的首席架构师。他认为:“这对Java领域的任何一个方面都产生了巨大的影响。预计这起收购将在2010年以Oracle在某些方面做出让步而完成。”

  SpringSource收购G2One和Hyperic,VMWare收购SpringSource,Intalio收购 Webtide,Terracotta收购Ehcache和Quartz。预计2010年类似的举动会更多,尤其是在云计算领域。

   一年前我们只是单纯地期待JDK 7中将有哪些新性能,比如Java 7缺少一个JSR,还有关于闭包的争论。但现在情况由于Oracle的介入而变得更加复杂了,我想直到Oracle的收购尘埃落定,Java 7的开发才会真正向前迈出一步。

  尽管Java语言群龙无主,但另外一些主要的JVM语言却在2009年取得了不小的进步。Groovy、Scala、Clojure和JRuby等语言在一年前还只是个雏儿,现在却几乎无处不在,尽管比较起Java它们的应用还比较窄,但已经有很多公司开始投入资金用于产品研发。每一天它们都在取得进步。

   我想在2010年会有更多的亮点,尤其是在Groovy/Grails领域,因为他们更加简洁;更加强大;为并发提供了更多的选择,所有这些特性都可以让开发者更加快速地构建更好的软件。

  Rod Johnson是SpringSource产品部门的总经理,他曾是SpringSource的CEO,是Spring早期开发的倡导者和参与者。他认为:“Oracle收购Sun虽然产生了很大的影响,但我认为这不会对Java产生更多改变。Java所有权的改变并未影响到整个社区,开源技术仍在增长。SpringSource官方网站的浏览量在过去一年里也一直很高。”

   一系列SpringSource的收购,尤其是收购G2One。由于之前Grails是构建在Spring之上的,所以从基础架构方面来看,这次收购很有意义。而收购Hyperic让我们的能力更加丰富:覆盖了构建、运行、管理整个应用的生命周期。

  SpringSource成为VMWare的一部分(被VMWare收购)也很有意义:与虚拟平台VSphere协作,这在服务器和管理内让SpringSource的构建阶段(build phase)与运行阶段(run phase)更加匹配。

  Hamlet D'Arcy是RedPrairie的高级经理,Noblestar Systems Inc.咨询师,Vertical Systems的程序分析员。他认为:“当Flex和JavaFX为了市场占有率在RIA领域激烈争夺的时候,有一个开发团队悄然地利用Grails代码基来开发Swing桌面应用。Griffon远不止是一个Swing组件之上的动态构建模型,它为开发者提供了小工具的粘合性(property binding)。如果Griffon团队在2010年能够保持09年的强势,Griffon将巨牛无比。

  IntelliJ IDEA有能力成为最好的Groovy IDE之一,自Andrew Eisenberg重新激活整个项目以来,这款Groovy Eclipse获得新生,而且SpringSource在SpringSource Tool Suite中发布了更好的Grails支持。而且还有IDEA的开源,它仍是Groovy最好的IDE。Groovy工具的井喷所带来的良性循环为开发者提供了更多有利的选择。

你可能感兴趣的:(silverlight,语言,asp.net,javascript,微软,java)