4 ms·
> it's taken over the system programming space for a reason I'm curious what you define as systems programming, because Go certainly isn't a systems programmin
by the_duke 5y ago
> it's taken over the system programming space for a reason
I'm curious what you define as systems programming, because Go certainly isn't a systems programming language by the classic definition.
Go has a complicated runtime and GC. It's really not in the same category as C/C++/Rust, but more like Java/C# , just without a JIT.
The only domain where Go is a go-to language is the Kubernetes ecosystem. It's also decently popular for networking heavy applications / microservices / server applications, because the runtime is well suited for those domains.
- Zababa 5y agoGo is basically a systems programming language if you consider """the cloud""" a system, a big part of the ecosystem is built on it. It is basically between C/C++/Rust and Java/C#, which is "good enough".
- fsociety 5y agoIn that case JavaScript is a systems programming language if you consider the web a system. Golang having GC and a heavy runtime make it unsuitable for systems programming IMO.
- pjmlp 5y agoIt isn't unsuitable per se, but it definitly lacks the knobs of something better like D, C# or Nim. https://www.packtpub.com/product/creative-diy-microcontroller-projects-with-tinygo-and-webassembly/9781800560208 https://www.packtpub.com/product/creative-diy-microcontrolle... https://www.f-secure.com/en/consulting/foundry/usb-armory https://www.f-secure.com/en/consulting/foundry/usb-armory
- Zababa 5y agoNot exactly, the web runs on browsers and web engines that are written in C++, and servers that are mostly C and/or C++. On the other hand, "the could" runs (partially) on k8s and friends, which are written in Go (which runs on servers, written in C and/or C++).
- vips7L 5y agoWe’ll soon have Java and C# without a JIT once they are done working on their AOT compilers. The C# one seems to be further along though due to having supported the Mono/Xamarin AOT runtime for a long time and is really easy to setup, it’s just a package reference in your .csproj. It also has the benefit of coming with a modern usable language.