Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I always believed "system programming" meant "programming operating system components or the whole operating system" and Wikipedia seems to agree:

http://en.wikipedia.org/wiki/System_programming

Last time I looked, inside of the Go libraries which had to do some tricky things there was some C code, meaning that even Go authors weren't able to write everything in Go. So Go can't be a substitute for C, and as long as most of the system programming is done in C, no go for Go.



That's like saying C is not a system programming language because if you write a kernel you need to write parts of it in assembly, and you need to write parts of libc in assembly as well!

Parts of the runtime are written in C and assembly, but that's because there is power in breaking abstractions: http://research.swtch.com/goabstract

As it stands today, Go can be used to write operating systems. Yes, you will have assembly, yes you will likely also have C, so what?


That is what "system programming" means these days. It used to exclude operating system kernels, real-time components.

I suspect that it isn't so much that they aren't able to write everything in Go, but more that it isn't a priority for now. It wouldn't surprise me if Go wasn't eventually self-hosting.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: