其他语言没有垃圾收集器的原因是什么?
为什么这些其他语言没有内置垃圾回收机制?为什么要赋予程序员收集的责任?
最佳答案
没有垃圾回收的原因:
直到 1985 年至 1990 年左右,才开发出真正高效的收集器。在那之前设计的语言,如果以效率为目标,则没有垃圾收集。示例:Ada、C、Fortran、Modula-2、Pascal。
Bjarne Stroustrup 认为更好的语言设计是让每个成本都明确,并且“不要为你不使用的功能付费”。 (请参阅他在第二届和第三届 ACM session 上关于编程语言历史的论文。)因此 C++ 没有垃圾回收。
一些研究语言使用其他想法(区域、奇特的类型系统)来显式、安全地管理内存。这些想法特别有希望解决诸如设备驱动程序之类的问题,在这些问题上您可能无法负担分配费用,或者对于实时系统,在这些问题上内存成本必须非常可预测。
关于c# - 为什么其他语言没有类似 Java 垃圾收集器的自动垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444791/