L 0 K 1 on Nostr: I've seen several times freelist management packages in projects I've worked on or ...
I've seen several times freelist management packages in projects I've worked on or looked at or used. You can turn off GC with Go, but at that point nothing will get deallocated, so everything has to be reused.
As such, it's not as well suited to embedded or kernel development.
There is an embedded version, "tinygo", that uses other memory management strategies in its much smaller runtime.
I really don't see there being that many cases that can't be faster built and easier to maintain with the help of GC though. Kernels, and minimalistic, embedded apps (think arduino).
The guys who invented Go were 30 year+ veterans of C and C++ programming, one of them even was the co-inventor of C, Ken Thompson. IMO, if they said use GC, then a lot of other people don't know what they are talking about.
Go, like Rust, it is practically impossible to have a stack smashing or other memory allocation error vulnerability. One you can pick up and run with, build something useful in your first weekend with it, the other, you will still be scratching your head 3 months down the track trying to remember everything you have to memorise to use Rust's memory allocation system.
Published at
2023-08-02 07:21:26Event JSON
{
"id": "9f2dc30a71b59c8dca6ed8e6c320b1882b937d0f396206406a0430626884dc8b",
"pubkey": "3628e6a5764cacab310474c9f9c588657989c74b5ef0718c7e6e0e53a2a1f773",
"created_at": 1690960886,
"kind": 1,
"tags": [
[
"e",
"e296a25755dbb765e6a167f91090a03312c462d1320e7c23691ea69800188cac",
"",
"root"
],
[
"e",
"55dffdfcad1f9c8154eab1b1b1b9aae088bfbd17b681cf20307dd026c452ebd7",
"wss://nos.lol/",
"reply"
],
[
"p",
"1be2d85b2797c7fb4fb51923ce9254565e11a08f8ecfaa0132a55ec688c587b2"
],
[
"p",
"3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d"
]
],
"content": "I've seen several times freelist management packages in projects I've worked on or looked at or used. You can turn off GC with Go, but at that point nothing will get deallocated, so everything has to be reused.\n\nAs such, it's not as well suited to embedded or kernel development.\n\nThere is an embedded version, \"tinygo\", that uses other memory management strategies in its much smaller runtime.\n\nI really don't see there being that many cases that can't be faster built and easier to maintain with the help of GC though. Kernels, and minimalistic, embedded apps (think arduino).\n\nThe guys who invented Go were 30 year+ veterans of C and C++ programming, one of them even was the co-inventor of C, Ken Thompson. IMO, if they said use GC, then a lot of other people don't know what they are talking about.\n\nGo, like Rust, it is practically impossible to have a stack smashing or other memory allocation error vulnerability. One you can pick up and run with, build something useful in your first weekend with it, the other, you will still be scratching your head 3 months down the track trying to remember everything you have to memorise to use Rust's memory allocation system.",
"sig": "c01fb63adb3c5b93e6318d3cd0cbb56729ff9f5616ead9f33cab5b803890998496c25b85745a7cc6a68c4fcc7f9983965d45c33db1e8a57909780a681608bad4"
}