软件开发核心趋势
今天的软件开发商,比以往任何时候更多,考虑和使用多种技术,帮助他们顺利地构建解决方案,并迅速交付给客户。开发人员拥有了越来越多编程风格的选择。我们的目标是使我们的工具对所有编程风格予以良好的支持,帮助我们的客户创建伟大的软件。
软件开发领域正出现几个趋势。以下是我最近思考的一些核心的趋势。这个清单并没有罗列所有软件的趋势,但每一个代表着一个微软目前正在或将要投资,最终惠及客户的方向。
云计算
云计算让公司专注于他们今天所需要的计算资源的,扩大处理高峰负荷的能力,避免了管理硬件的开销。云计算使得小企业能利用现有环境以合理的和可预见的成本对大的成规模的公司展开竞争。Windows Server、Windows Azure、SQL Azure、 和例如Windows Live、 Office、Xbox Live等服务现在已经是驻扎在云端的应用。微软一直致力于为Windows共生环境提供最好的云计算平台和服务。云计算只是虚拟计算平台的一个例子,下一代开发工具必须能使开发人员构建能在云和其他虚拟环境里部署和执行良好的软件。
以Web为平台
浏览器提供了丰富的运行环境和对应用无摩擦的访问。开发人员越来越多地选择Web作为他们软件和软件开发的平台。越来越多的开发人员和设计人员使用提供丰富的开发、调试和分析这样专门为web设计的工具。 JavaScript库让Web开发人员可以使用JavaScript完成比以往任何时候更多的工作来实现达到广泛的观众并且使人身临其境的互联网应用。 例如,Silverlight允许开发者摆脱HTML的限制,并利用一系列资源和功能优势,同时保证跨平台的兼容性。
并行计算
摩尔定律预测的CPU的性能将每18个月翻一番。现在性能提升主要通过加入更多的处理器核心,而不是通过提升单个核心的性能。 这种方式给低端机器提供了多核处理能力。利用低价且广泛存在的台式电脑图形处理器执行某些任务已成为的新趋势。在高端市场,超级计算中心正在利用集群来执行复杂的计算任务。今天,只有少数程序员有编写在多核心环境下运行的代码的技能。在未来,并行库,调试,分析和诊断工具,将使更多的开发人员利用并行计算的资源优势。
装置的扩散
随着越来越多可以连接到互联网的低价的设备出现,我们都希望能够以适合于我们的设备的方式来访问我们的数据并与之交互。我们希望能够在所有设备上便捷安全地访问我们的在线身份和数据。今天,微软提供了通过Windows Live和Xbox Live访问用户的数据。装置的扩散将导致用户界面模式扩散,产生更多与这些设备之间的自然,直观交互。触控式的、基于语音、以及相机的解决方案变得可用和成本合理。微软利用这些功能来建立直观的用户界面不断发展软件。Windows 7支持触摸式的平台应用。 Silverlight和WPF已经支持基于摄像头的交互方案和多点触摸,就像MFC的。我期望的用户界面模式继续发展,并变得更加直观和强大。
敏捷开发过程
敏捷开发过程,包括Scrum的,测试驱动开发和持续集成常在企业开发和小规范开发商中广泛使用。这些方法通常与其他开发实践相结合。在微软内部,很多团队都集成了敏捷开发的实践要素于他们的开发过程中。Visual Studio 2010对敏捷方法敞开大门,提供了对诸如单元测试和迭代规划等一些敏捷过程的支持。在将来,我们将继续支持更多更灵活的敏捷方法。
分布式开发
分布式开发,使团队成员跨越地理分隔紧密合作,汇集了全球人才来无缝地实现共同的项目目标。一个跨时区和跨边界工作小组的开发体验应该和单个开发人员一样好,而且还包括支持基于云计算的开发活动,如分发代码审阅,远程结队编程,开发/测试人员协作和资源共享。优秀的分布式的团队开发工具将利用全球的人才库建立下一代软件。
最后...
这些并不是影响今后发展趋势的完整列表,只是我们觉得这些将是软件开发领域今后发展的一些方向。我欢迎你的观点:哪些趋势您觉得会在将来最重要的?这些趋势是否在这份名单?欢迎留下您的观点发表评论。