commit a9c1f5dc1713449cd6bc4217d347dc4af4a3ff83
parent 9d69bb12e33fe530df70209e55f6027130aed42d
Author: decentral1se <decentral1se@web>
Date: Sat, 3 Aug 2024 16:28:27 +0200
disadvantages
Diffstat:
1 file changed, 4 insertions(+), 0 deletions(-)
diff --git a/Go.mdwn b/Go.mdwn
@@ -13,3 +13,7 @@ Go can be [[bootstrapped|bootstrapping]] with Go itself, or [[C]] (via `gccgo`/`
There are [language design decisions](https://tinygo.org/docs/concepts/faq/why-a-new-compiler/) which make Go unsuitable for embedded systems. The [TinyGo](https://tinygo.org) project aims to provide an alternative.
Go binary sizes are [generally acknowledged](https://github.com/golang/go/issues/6853) to be [[bloated|bloat]]. For example, a binary size of [1.3 MB for 6 lines of code](https://dr-knz.net/go-executable-size-visualization-with-d3.html). The design of Go prioritises performance at the cost of memory, embedding considerable amounts of runtime information in produced binaries. Passing flags such as `-ldflags="-s -w"` to `go build` can aid in size reduction.
+
+Similar to [[Rust]], Go has several disadvantages from a permacomputing perspective:
+* As mentioned above, there are several antithetical language design decisions which optimise for efficient large-scale operation instead of human-scale comprehensibility
+* Largely dependent on [[Big Tech]] for resources and funding