如果您需要高性能和详细的控制,也许您应该用 C 或 C++ 编写您正在做的事情。并非所有语言都适用于所有事情。
编辑添加:单一语言不会对所有事情都有好处。如果你把所有优秀编程语言的所有有用特性都加起来,你会得到一个非常大的混乱,比 C++ 糟糕得多,即使你可以避免不一致。
功能不是免费的。如果一种语言有一个特性,人们很可能会使用它。如果不学习新的 C# 手动内存管理例程,您将无法很好地学习 C#。编译器团队将以其他有用的编译器功能为代价来实现它。该语言可能会变得像 C 或 C++ 一样难以解析,这会导致编译速度变慢。(作为一个 C++ 人,当我编译我们的一个 C# 项目时,我总是感到惊讶。编译似乎几乎是瞬间完成的。)
功能相互冲突,有时以意想不到的方式。C90 在矩阵计算方面的表现不如 Fortran,因为 C 指针被别名的可能性会阻止一些优化。如果你在一种语言中允许指针算术,你必须接受它的后果。
您建议使用 C# 扩展来允许手动内存管理,并且在某些情况下会很有用。这意味着内存必须以不同的方式分配,并且必须有一种方法来区分手动管理的内存和自动管理的内存。突然间,你的内存管理变得复杂了,程序员搞砸的机会更大,而且内存管理器本身也变得更复杂了。您获得了一些在某些情况下很重要的性能,以换取在所有情况下更复杂和更慢的内存管理。
可能在某个时候,我们将拥有一种几乎适用于所有用途的编程语言,从脚本到数字运算,但没有任何流行的语言能与之相近。与此同时,我们必须愿意接受只使用一种语言的限制,或者学习多种语言并在它们之间切换的挑战。