5 ms·
> Go can be a viable alternative to C as a systems programming language Stop this nonsense please. This does not show anything even remotely close to systems p
by 0xdead 7y ago
> Go can be a viable alternative to C as a systems programming language
Stop this nonsense please. This does not show anything even remotely close to systems programming capability of Go. Write a device driver in Go that performs without lagging, benchmark it and then come back.
- weberc2 7y ago"systems programming" is not well defined. While you and I probably prefer a similar definition, comments that criticize TFA for not using our preferred definition are really boring. Let's just say that Go is a fine language for `wc` (and not a very good language for device drivers) and move on.
- grumpydba 7y agohttps://news.ycombinator.com/item?id=18399389 https://news.ycombinator.com/item?id=18399389. It's been done. Performs well.
- rowanG077 7y agoThey quite literally were forced to use C for some parts because Go is not a systems programming language. They write this in the article.
- grumpydba 7y ago> As we wanted to keep unsafe code to a minimum, we instead chose to employ the C code from the original driver as an opportunity to present cgo. It's not for performance reasons. I think you misread. Also the driver is pure go now: https://github.com/ixy-languages/ixy.go https://github.com/ixy-languages/ixy.go
- rowanG077 7y agoSystems language is not only about performance. Where did you get that?
- grumpydba 7y agoThey never said that they had to use c because go is not a systems language, so your assertion looks wrong. They wanted to avoid using unsafe. In c everything is unsafe by the way, so it makes it less of a systems language?
- rowanG077 7y agoNo Go isn't a systems language because for one you don't have direct control over memory if you need it. For instance Go doesn't even have the volatile keyword which is essential in many cases when interfacing with hardware. The paper you linked laments this as well.
- xpe 7y agoThis Wikipedia article suggests that Go is not regarded as a systems programming language: https://en.wikipedia.org/wiki/System_programming_language#Major_languages https://en.wikipedia.org/wiki/System_programming_language#Ma...
- pjmlp 7y agoYep, real nonsense, that is why this stuff exists: - gVisor hypervisor on Google Cloud and Linux sandbox on Chromebooks - Android GPGPU debugger - Fuchsia TCP/IP stack and volume management - Baremetal TinyGo on Arduino Nano33 IoT, Adafruit Circuit Playground Express, BBC micro:bit among many others - Coreboot firmware - Biscuit POSIX like OS