Remix.run Logo
▲ vbezhenar an hour ago

C was and is a good choice for that kind of software. I don't understand the prevalence of Go in these tools.

▲crote 42 minutes ago | parent [-]

Easy: far few footguns.

Performance is basically irrelevant because you're not really interacting with the running application. You're running as root, so security-critical. You're talking to the internet for things like fetching images. You need rather complicated business logic to deal with all the possible options, protocols, and file formats.

Sure, you could do it in C, but dealing with dependencies is a major PITA and you're permanently one tiny mistake away from getting pwned, while not needing any of C's strengths. Go is safe, easy to write, and ships as a single batteries-included binary: what's not to like?

▲vbezhenar 19 minutes ago | parent [-]

What's not to like? For example the fact that Go's threads and OS threads are two different things. For example the fact that I can't just use fork in Go. And many other things.

Go is good for writing web servers. For system software? Not so much. 90% of Unix is written with C. It's not that bad.