Memory safe programs require<p>1) Runtime overhead for some form of GC (D, Lisp, etc)<p>2) Rephrasing a program to satisfy a memory constraint checker (Rust)<p>3) Disciplined memory usage (i.e. Nasa C coding guidelines)<p>We don&#x27;t have enough experience with 2 to indicate whether it will create new classes of bugs. We also don&#x27;t understand the knock-on effect of managing memory differently - will functionally identical programs require more or fewer resources, more or fewer programmers hours, etc.<p>Rust may very well be the future, but we don&#x27;t know for sure yet.<p>One thing we do know: options 1 and 3 have been available for years, but not widely utilized. What lessons can we learn from this fact to apply to Rust?