在过去的二十年内,C和C++已经成为广泛的应用在商用软件的开发中的开发语言。但是C和C++都提供了一些容易使开发者产生错误的特性,也可以说C和C++的灵活性是牺牲了开发效率。如果和其他的开发语言相比(比如说VB),相同功能的C/C++软件通常会需要更长的开发周期。正是由于C/C++开发的复杂性和需要较长的开发周期,所以许多C/C++开发人员都在寻找一种可以在功能和开发效率间提高更多平衡的开发语言。
目前有一些开发语言通过牺牲C/C++语言的灵活性(一些必要的灵活性)来换取开发效率。有些语言对开发人员产生了过多的限制(比如说限制使用底层控制代码)并且提供更少的通用命名能力(译者:可能是指对变量,函数的引用能力)。这些语言不能够轻易的与现存的系统相结合,并且不能够当前的WEB开发相结合。

一种合理的C/C++替代语言应该是能够提供对现存和潜在的平台上的高效开发提供有效和有力的支持。并可以使WEB开发可以非常方便的与现存的应用开发相结合。而且C/C++开发人员都倾向于在必要的时候使用底层代码。

M$所推出的C#

在这个问题上M$的解决方案是推出一种命名为C#(发音为 C Sharp)的开发语言。C#是一种先进,面向对象的语言,通过C#可以让开发人员快速的建立大范围的基于MS网络平台的应用,并且提供大量的开发工具和服务帮助开发人员开发基于计算和通信的各种应用。

由于C#是一种面向对象的开发语言,所以C#可以大范围的适用于高层商业应用和底层系统的开发。即使是通过简单的C#构造也可以各种组件方便的转变为基于WEB的应用,并且能够通过Internet被各种系统或是其他开发语言所开发的应用调用。

即使抛开上面所提到的优点,C#也可以为C/C++开发人员提供快速的开发手段而不需要牺牲任何C/C++语言的特点/优点。从继承角度来看,C#在更高层次上重新实现了C/C++,熟悉C/C++开发的人员可以很快的转变为C#开发人员。

开发效率与安全性

目前的各种基于WEB应用的软件开发向传统的商业应用软件开发提出了挑战,开发者被组织起来开发具有更短开发周期的各种应用,并且需要能够提供更好的可修正性,而不是建立一个可以长久使用的软件系统。

C#的设计正是充分考虑了这些因素。C#会帮助开发者通过更少的代码完成相同的功能,并且能够更好的避免错误发生。

与WEB开发相结合

新的开发模式意味着需要更好的利用现有的各种WEB标准,例如HTML,XML,SOAP(简单对象存取协议)。现存的开发工具是在Internet出现前或是未得到充分应用前出现的,所以都不能很好的适应目前WEB技术的开发需要。

C#开发者可以方便的在M$网络平台上扩展自己的应用。C#可以将任何组件转变为WEB服务,并且可以被运行于Internet上的任何平台的任何应用调用,重要的是C#对这一特性提供了内置的支持。

更重要的一点,WEB服务框架可以让任何WEB服务都看起来类似于C#的内置对象,所以可以让开发人员在开发过程中继续使用他们已经具备的面向对象的开发方法和技巧。