Go Portability Limitations

Comments discuss Go's portability issues, heavy runtime with GC and scheduler, challenges with cgo interoperability, and comparisons to C for system-level use.

➡️ Stable 0.6x Programming Languages
3,858
Comments
18
Years Active
5
Top Authors
#8719
Topic ID

Activity Over Time

2009
2
2010
18
2011
24
2012
162
2013
260
2014
225
2015
280
2016
289
2017
327
2018
288
2019
242
2020
271
2021
215
2022
318
2023
294
2024
305
2025
319
2026
19

Keywords

e.g CLI youtube.com UNIX ZX clojure.core IMO FFI ERRATA LLVM ffi runtime implementation language llvm compile golang code compilation compilers

Sample Comments

zem Dec 6, 2018 View on HN

they are trying to build on top of the go runtime, so implementing it in go makes sense.

justincormack Feb 16, 2018 View on HN

Not run at all I think. Go is more strongly coupled to systems than most languages as it implements a lot itself, eg it directly uses the (non stable) syscall interface on osx.

IshKebab May 20, 2018 View on HN

Go is "native code" but anyway nice work!

johnklos Mar 25, 2019 View on HN

Go isn't as portable as it should be.

goodplay Jul 29, 2016 View on HN

Not looking for a debate: Why can't you use it everywhere you could write or compile Go code?

yandrypozo Mar 2, 2017 View on HN

This remember me one of the Go Proverbs, Cgo is not Go https://www.youtube.com/watch?v=PAAkCSZUG1c&t=12m37s

adrusi Jun 14, 2024 View on HN

Go has a heavy runtime, including both a garbage collector and a userland scheduler. Those features both make it inappropriate for some applications where you would use c, and also make calling (and especially being called from) foreign code problematic. You effectively cant implement a library in go and then call it from another language, not without considerable ffi overhead at the very least.

ranit Apr 23, 2022 View on HN

How is go more portable than C?. Genuine question.

sethammons Feb 16, 2018 View on HN

Go would totally be a viable option. Cross compilation for the win.

sanxiyn Aug 13, 2020 View on HN

Go has a supported alternative implementation, gccgo.