首页 / 软件开发 / .NET编程技术 / 多语言模式并举: .NET语言和模式的调查
多语言模式并举: .NET语言和模式的调查2011-10-30 msdn Joel Pobar本文讨论:面向对象的编程函数式编程动态编程.NET 语言的新模式本文使用了以下技术:C#、C++、F#、IronPython、IronRuby、Visual BasicWindows 操作系统 对编程人员而言是再合适不过的平台了。针对 Windows® 的语言有数百种,它们有的直接 通过 Win32® API 或 CLR 来实现,但更多的还是通过您的编写来构建。CLR 的目标之一就是要在一个兼容的生态系统中让百花齐放,将语言和 API 无缝集成在同一运行时中 。到目前为止它已取得了巨大的成功——新的语言层出不穷。像 Ruby (IronRuby)、Python (IronPython) 和 PHP (Phalanger) 等 Microsoft 实现属于动态语言范畴,它们现在是 Microsoft® .NET Framework 语言中的一流成员。最近还引入了被称为 F# 的函数化语言。尽管您很可能曾经听到过 有关这些新语言和语言模式的讨论,但可能还是想知道其具体含义。介绍这些语言模式并讲述其 中一些重要实现的内容不但能够解答您的疑问,而且还有助于说明其中的一些新语言和旧模式将会如何影 响 C# 和 Visual Basic® 语言未来版本的设计和实现。要了解新设计所表现出来的变化,您 需要了解传统语言(如 C# 和 Visual Basic)与新语言(如 F#、IronPython 和 IronRuby)之间的差异 。此方面主要涉及三大主题:面向对象的编程(C# 和 Visual Basic 这二者都利用的模型)、函数式编 程 (F#) 以及动态编程(IronPython 和 IronRuby)。让我们看一看这些模式并探究一下他们的区别特征 。面向对象面向对象 (OO) 是您可能最为熟悉的一种模式。通过它您可以描述对象与绑定 它们之间交互的约定所构成的环境。OO 利用类型约定、多态性以及精细的可见性等多种功能来提供出色 的重用和封装特性。通常,面向对象的语言采用静态类型系统,因此它们被称为静态类型语言。 这意味着程序创建和使用的所有类型都在编译时进行检查;这可防止您对 Duck 类型的对象调用方法 Moo (在此方法不存在的情况下)。在代码运行之前,编译器可检测各种类型之间被破坏和误用的约定,从理 论上讲,这样做可减少运行时错误。但是 OO 也存在一些缺陷。类型安全性可能会使编程人员过 分依赖编译器来捕获错误,而不是亲自创建必要的测试基础结构。同时,OO 还会促使编程人员预先定义 自己的约定,而这往往是与快速原型编程和多用户编程环境背道而驰的。在大型软件项目中,组件之间的 约定(通常由不同的团队所拥有)往往在整个开发周期中不断演变,这就要求约定的使用者不断更新其代 码。由于上述这些问题,OO 语言可能显得有些复杂和冗长。