为什么使用C ++而不是C#编写Windows?

也许很多人不理解为什么Microsoft使用C ++而不是自己的C#编写Windows?其实原因来说也算很简单吧,首先Windows是在定义C#语言之前很久才开发的。即使当时可用,C#也不是用于实现操作系统的适当语言。

也许很多人不理解为什么Microsoft使用C ++而不是自己的C#编写Windows?其实原因来说也算很简单吧,首先Windows是在定义C#语言之前很久才开发的。即使当时可用,C#也不是用于实现操作系统的适当语言。

也许很多人不理解为什么Microsoft使用C ++而不是自己的C#编写Windows?其实原因来说也算很简单吧,首先Windows是在定义C#语言之前很久才开发的。即使当时可用,C#也不是用于实现操作系统的适当语言。

为什么使用C ++而不是C#编写Windows?

Windows桌面和服务器操作系统的现代版本的代码库始于1988年的NT项目,当时新的32位抢占式多任务操作系统的代码从零开始。选择的编程语言主要是C,其中一些C ++用于GUI组件,以及一些汇编语言。基于此代码的操作系统于1993年首次发布,并带有Windows NT Workstation和Windows NT Server的第一个版本。NT和2000的所有版本都基于此代码,Window Server的所有版本(1993年至今)以及从Windows XP开始的所有桌面Windows版本(2001年至今)都基于此代码。

为什么使用C ++而不是C#编写Windows?

Windows随附的某些更高版本的用户模式应用程序已用C#实现,但大多数系统仍使用C和C ++,并带有一些汇编语言。

在Windows NT项目启动十二年后的2000年之前,还没有完全定义C#语言。(严格来说,NT项目最初是NT OS / 2,但是当16位Windows 3进入市场时,该项目转移到了以Windows为中心的焦点。)

C#通常不会编译为本机代码。它被翻译为中间CIL语言,然后在执行程序时进行解释和或及时编译。这种语言以及其他类似语言并不真正适合于实现操作系统,因为这些操作系统需要直接在硬件上运行,管理页表,管理中断等。C和C ++通常可编译为高度优化的本机不需要运行时解释器或即时编译器的代码,更适合于实现操作系统。C#从未被设计为系统编程语言。在开发用户模式应用程序和服务时,它的重点更多地放在安全性和生产率上。

[[342109]]

顺便说一句。NET Framework支持C#和其他语言,一部分以C#实现,一部分以C和C ++实现。它调用Windows操作系统提供的API。

即使今天有一个C#编译器生成的高度优化的本机代码,但回过头去重写一个大型项目却只是为了使其成为一种更新的编程语言,几乎没有任何意义。由于有成千上万的代码行需要重写和完全重新测试,因此成本和风险都很高,收益几乎为零。做这样的事情还没有商业案例。只要现有语言得到完全支持并提供了出色的工具,实际上就没有理由用“较新的”语言重写代码。

[[342110]]

最后,Microsoft从1975年的第一天起就从事编程语言业务。多年来,它的主要业务是为各种基于微处理器的系统开发编程语言解释器,编译器和汇编器。自1980年代以来,他们拥有自己的C和C ++编译器以及其他语言(例如BASIC,FORTRAN等)。他们的C和C ++编译器非常稳定和成熟,并且会不断发展,从而生成高度优化的机器代码。

为什么使用C ++而不是C#编写Windows?

也许很多人会怀疑我是机翻,然后呢,我想给大家说下,因为也会去看外国的一些文章,而这篇里面有些理解是一位曾在Microsoft的Windows NT组工作的一位人员。

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年5月8日 00:07
下一篇 2023年5月8日 00:07

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信