我们总是有一些语言更适合在特定的场景中使用。对于快速原型开发,VB6是一个显而易见的选择。在具有简单的桌面用户界面和标准且不复杂的数据库交互需求的项目中,选择了VB6。如果您想使用低级例程开发设备驱动程序,您可能会依赖于C或Visual C++。ASP是web界面开发的标准选择。简而言之,每种语言都有一个特定的“领域”或“专门化”。
使用.NET框架,所有语言都是可互操作的,并且假定是一致的。您可以拥有一个包含来自不同语言的模块的项目,但所有模块最终都被同等对待(所有模块都被编译成IL)。
这是否意味着我们之前的区别不再存在?这种差异并不一定是糟糕的,而是设计出来的,而不是由于任何限制。显然,.NET框架及其对各种语言的处理在某种程度上削弱了这一点。
发布于 2008-10-29 19:20:43
语言的区别仍然存在。将一种语言编译成汇编代码或MSIL并没有真正的区别,只是MSIL的抽象级别可能比汇编的抽象级别更高。
然而,.Net的最大优势是,您可以在用语言2编写的库中使用语言1的目标代码,该库由用语言3编写的应用程序链接。
很久以前,在有了电和自动移动设备之前,您不能简单地在Pascal或Delphi应用程序中使用C生成的.obj文件(反之亦然),而不显式地将它们包装在动态链接库中(并注意调用方法、参数序列和参数兼容性),或者调用另一个可执行文件。
发布于 2008-10-29 19:10:21
这些区别仍然存在。例如,VB.NET目前以一种比C#更好的方式支持IDispatch后期绑定(不包括XML4.0),并且VB.NET具有代码内联的XML字面量,这使得它与其他.NET语言相比成为操作C#的方便工具。C++往往不太适合.NET,即使使用C++/CLI变体也是如此,但它对于本机编程(一如既往)以及在托管代码和非托管代码之间提供互操作层来说是非常好的。
每种语言在语法上都有细微差别,这使得表达某些概念变得更容易。即使它们都归结为IL,这与以前都归结为汇编时没有什么不同。您可以选择语法最适合您要执行的任务的语言,而不管它编译到哪种平台。
发布于 2008-10-29 19:10:54
不,它没有框架的特性不同于语言特性。说.Net消除了语言之间的区别,就像说汇编代码消除了语言之间的区别一样。
不同的语言仍然有不同的特点,一些语言的语法更善于解决一些问题,否则整个.Net框架就会在单一语言上同质化。
https://stackoverflow.com/questions/248014
复制相似问题