From 98f248cd2451a659ae88324c546372abe021c9cd Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Fri, 25 Jul 2025 14:17:52 +0200 Subject: [PATCH] link to another website saying Go is memory-safe --- personal/_posts/2025-07-24-memory-safety.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/personal/_posts/2025-07-24-memory-safety.md b/personal/_posts/2025-07-24-memory-safety.md index f940453..863c771 100644 --- a/personal/_posts/2025-07-24-memory-safety.md +++ b/personal/_posts/2025-07-24-memory-safety.md @@ -110,7 +110,7 @@ I think that is a problematic blind spot. Of course, as all things in language design, in the end this is a trade-off. Go made the simplest possible choice here, which is entirely in line with the general design of the language. There's nothing fundamentally wrong with that. -However, putting Go into the same bucket as languages that actually *did* go through the effort of solving the problem with data races misrepresents the safety promises of the language. +However, putting Go into the [same bucket](https://www.memorysafety.org/docs/memory-safety/) as languages that actually *did* go through the effort of solving the problem with data races misrepresents the safety promises of the language. The [Go memory model documentation](https://go.dev/ref/mem) is not exactly upfront about this point either: the "Informal Overview" emphasizes that "most races have a limited number of outcomes" and remarks that Go is unlike "C and C++, where the meaning of any program with a race is entirely undefined". You could say that the use of "most" here is foreshadowing, but this section does not list any cases where the number of outcomes is unlimited, so this is easy to miss. They even go so far as to claim that Go is "more like Java or JavaScript", which I think is rather unfair, given the lengths to which those languages went to achieve the thread safety they have. -- 2.39.5