Office中国论坛/Access中国论坛

标题: 转:透过VB看开发语言未来发展方向 [打印本页]

作者: KerryHuang    时间: 2009-3-21 12:18
标题: 转:透过VB看开发语言未来发展方向
透过VB看开发语言未来发展方向
2008-5-26 08:31    作者: 踏月而歌    来源: 编程博客
  一, Visual Basic的历史
  在品读此次专家茶社之前,我们先简单的了解一下从Visual Basic到Visual Basic.net的发展史。1991年Visual Basic1.0正式发布。作为微软起家产品,Visual Basic1.0发布伊始就像雷电一般征服了广大了开发者,通过完备的开发环境和跨时代的直观性取代了QBasic在广大开发者心目中的地位,成为那时新一代的当红小生。
  92年随着windows系统被用户接受度的提高和对新平台开发的需求,微软推出了具有部分面对对象特征和支持VBX(ActiveX)控件的Visual Basic2.0o
  93年初,Visual Basic3.0便快速发布了,Visual Basic3.0强调几个重要特性,一个是OLE 2.0的概念,另一个则是数据库存取,逐步体现出Visual Basic作为企业及开发工具的优势。
  1995年,Visual Basic 4.0发布。4.0支持OCX控件。同时语言换为Visual Basic For Application,与Office 95所采用的宏语言统一起来。这个版本还为Visual Basic成为一种COM语言奠定了基础。
  1997年, Visual Basic 5.0发布,Visual Basic 5.0当然对。COM(这时候叫ActiveX)提供了最强的支持。同时为了提高效率加入了本地代码编译器。并且对Visual Basic For Application语言有重大的完善和丰富。
  1998年, Visual Basic 6.0发布,它不仅改进了Visual Basic 5.0,更整合了其它开发工具成为Visual Studio家族性产品。表明微软此时确立了Visual Basic的产品定位,使之成为企业级快速开发的利器。
  2002年,Visual Basic. NET发布,对CLR 有非常完善的支持,尽量保留着BASIC易懂的语法风格和易用性,以及完成了向面向对象转变的道路。这个版本大大减少了Visual Basic语言的关键字[原来共有120个关键字],使其成为了一门现代的、强壮的、面向对象的、简单的可视化开发语言。
  2003年, Visual Basic. NET 2003发布。改进了Visual Basic 6.0升级向导。其次在IDE方面,Visual Basic. NET 2003修正了许多错误,还让事件处理恢复了6.0的开发体验。
  2005年, Visual Basic 2005发布。2005在语言上的有非常大的改动,如泛型、运算符重载、Partial Type、窗体的默认实例、语法的多种改进、My关键字等。Visual Basic 2005能异常便捷的开发.net下的应用。而泛型、运算符重载等功能又可以让Visual Basic的开发人员深入.NET Framework的全部功能。
  2007年,Visual Basic 2008发布。Visual Basic 2008 进一步简化了源代码,并可以实现与使用高级功能的组件进行交互,并且引入了新的语言功能,其中包括局部类型推理、对象初始值设定项、匿名类型和扩展方法。这些功能是对一项很重要的新功能语言集成查询 (LINQ) 的支持。同时提供了更完备的向下兼容,将许多 Visual Basic 6.0 ActiveX 控件升级为 Visual Basic 2008 等效控件。
我也来说两句 查看全部回复
最新回复
踏月而歌 (2008-5-26 08:31:50)
  二, Visual Basic的未来—DLR
  在交流中开发专家们对Visual Basic10(VBx)表现出了异乎寻常的兴趣,那么Visual Basic10将给我们带来什么新特性?Jonathan Allen认为“VBx 的关键特性包括了大家希望的在Lisp,Ruby或者Python中存在的动态代码生成功能。这将开拓一个能使用Visual Basic.NET来开发 SilverLight和Office应用程序的新时代。”
  除了职业开发者外,广大的IT pro们依旧喜爱使用古老的VBA制作一些Office相关的开发来满足工作中的需要,而OS X下的Office宏程序开发目前依旧缺乏支持。VS2008发布新一代VSTO(Visual Studio Tool for Office),在对Word和Excel继续提供便捷开发的同时,着重加强了面向PowerPoint、Outlook的开发能力。但是VSTO的普及,在很大程度上限制了非开发人群的业务能力。虽然这将有效的防止Office宏炸弹,但是专家认为如果能进一步加强VBA也不失为一个解决方法。而VBA过渡脚本化和开发环境薄弱也是一个重要问题,那么因该怎样发展脚本并且解决部署问题?
  在讨论VB10将带来的新特性时,DLR经常被提及。在描述Visual Basic10新特性的文章中可以看到“Visual Basic10利用了一个称为Dynamic Language Runtime(简称作DLR)的新特性。DLR是一个基于Common Language Runtime(CLR)之上的扩展,用于支持多种动态语言,并为动态语言实现提供了一个通用的对象模型。 像其他动态语言一样,DLR将允许Visual Basic10的代码被即时的编译(compile on the fly)。一旦Visual Basic10和SilverLight组合在一起,就意味着VB的源代码可以在浏览器运行的时候被下载和编译,这样可以实现很多在AJAX和其他客户端Web应用程序中运用到的类似技术。”
  什么是DLR?DLR即Dynamic Language Runtime,是微软给需要动态语言的开发人员的一个回应。它基于CLR构建,是CLR的一个扩展。设计该扩展的原因是为了保证动态语言之间的互操作性,DLR上的动态语言编译成IL的字节码后,可直接在CLR上运行。
  Jim Hugunin认为:“DLR所要做的是为你提供你喜欢的语言的最佳体验——对语言本身、其上优秀的工具、性能,以及和丰富的程序库集平台进行无缝整合都是一样的。DLR带来的核心优势就是共享,它使得语言实现者共享标准特性,而无须从头开始从新构建它们。这使得他们能够专注于研究语言的新特性,使一门语言变得更加独一无二,而不是在重新发明另一个GC系统上劳神费力。”同时微软将新一代的VB配合希望支持DLR的其它语言开发人员开展工作。
  VB10另一个新特新特性和脚本相关,这就是REPL(Read-Eval-Print loop)。REPL是一个在动态语言中很流行的功能,在REPL环境下,代码在输入后就马上运行。但是有专家对动态语言的发展方向表示了质疑,因为这样“脱离了现代编程语言的宗旨了——尽早地指出错误”,相信这将是一个非常有趣的研究方向。在这个基础上专家认为用户会非常便捷的将脚本嵌入自己的项目中,并获得稳定和安全的支持。站在VB的角度来说,在很大程度上不是将脚本带回VB,而是同过DLR将动态语言发展壮大,这一点还请专家指正。
踏月而歌 (2008-5-26 08:32:29)
  三, Office开发的未来—VSTO
  之前专家提到很多Office开发者依旧使用VBA来进行扩展开发,虽然VBA是使用简单功能强大,并且便于获得。但是有几个致命问题一直在制约着VBA的发展。首先是安全性,安全保护相对薄弱,大量宏病毒的出现不得不是用户拒绝使用宏。其次是缺乏管理和部署能力,所以它更倾向于个人应用而不是高效率的企业解决方案。最后则是VBA开发环境本身缺乏竞争力。
  Microsoft计划通过Visual Studio 和.NET Framework来解决这些问题,于是VSTO应运而生。VSTO最早出现于Visual Studio 2003版,在Visual Studio 2005获得了极大的提升和发展,而在最近发布的Visual Studio 2008中VSTO则增添了对office2007的支持。因为 Visual Studio 2008 兼容基于 .NET 2.0 至 3.5 的开发,在“新建工程”的对话框中可以选择支持Framework 版本。这对 VSTO 的影响在于对 Office 版本的支持。开发支持 Office2007 系统的项目,就必须选择Framework 3.5。而.NET Framework 2.0只支持Office 2003系统的项目的开发。
  《VSTO for Mere Mortals》一文中列出了因该在哪些情况下使用VSTO,虽然这篇文章是针对VSTO2005,但是我们可以把这作为一个指导意见:
 
     ·容易添加智能标记到解决方案中。  
  ·提供仅对特定文档可用的智能标记。  
  ·在文档和任务窗格中使用更丰富的控件。  
  ·在离线的文档里存储数据,并在下次文档在线时容易更新。  
  ·创建有一个稳定装载和卸载机制的加载项。  
  ·仅使用几行代码定制任务窗格。  
  ·容易定制Office 2007中的功能区。  
  ·定制Outlook 2007窗体区域。  
  ·访问.NET框架类库。  
  ·使用更健壮的调试工具。  
  ·获取对Visual Studio的整合开发环境(IDE)里的一些工具的访问,例如数据源窗口和富智能感应功能。  
  ·使用专业的开发语言,例如Visual Basic 2005或Visual C#,编写可管理代码的解决方案。  
  ·使用更容易的方法来维护代码和更新配置解决方案,使得代码修改在一个位置(在单个的集里面)而不是在文档的多个副本里或在全局模板中。  
  ·减少宏病毒的可能,避免最终用户决定是否代码是安全的。  
  ·在Office解决方案里的文档中,获取对象的数据绑定功能。  
  ·获取对VSTO提供的扩展Office对象公开的事件的访问。

  但是,VBA也并非完全失去了生命力,在以下的情况中依旧可以发挥作用:

·ffice 2003专业版之前的版本创建应用程序级的定制。  
·为在VSTO或VSTO 2005 SE中不支持的Office应用程序创建应用程序级的定制,例如Microsoft Access。  
·为Office 2003(标准版)创建文档级的定制。  
·通过使用全局模板为Word和Excel创建应用程序级的定制。  
·通过创建与想要重载的命令有相同名称的宏,重载Word、Excel和Outlook中的原始命令。  
·对终端计算机粘附禁止配置.NET框架的有组织的需求。
踏月而歌 (2008-5-26 08:33:02)
  四, 茶社总结
  访谈从一开始主持人就问了大家一个问题,未来开发语言的未来发展趋势是什么?一位专家回答:简约。从VB的历史来看,简约,抽象化确实是发展的主旋律。
  在《微软架构师谈编程语言发展》,其中微软几位著名大师如Herb Sutter,Anders Hejlsberg也从另一方面表明了这一观点:随着开发语言的发展和内部抽象机制的发展,更加简约的语言更能提高生产率。
  随着多核的普及,如何在语言层面处理并发已经成为广大开发者关心的问题。而随着DLR的发展动态语言也成为开发中不可或缺的一部分。在CLR的基础上,语言可组合性已经逐渐不是在问题。
  以上就是本次专家茶社的一些背景资料和内容总结。在讨论中专家们认为在开发者的群落里非常缺乏学术性的交流和沟通,国内的开发者更愿意独自研究,除了社区之外目前似乎没有更好的分享途径。我们应该组织怎样的活动来促进国内开发者间的学术交流?或者您有什么好的研究方向需要和大家讨论。
作者: syz    时间: 2009-5-7 16:54
好文。
作者: zzwxm98    时间: 2009-5-9 11:52
未来开发语言的未来发展趋势是什么?




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3