4 ms·
For the more traditional definitions of "systems programming", yes. I would agree with that. However I don't think anybody is really marketing Go for that nic
by burgerbrain 15y ago
For the more traditional definitions of "systems programming", yes. I would agree with that.
However I don't think anybody is really marketing Go for that niche.
- wglb 15y agoOriginally they were targeting "systems programming", and, being roughly the contemporary of the most well-known go authors, "systems programming" used to mean compilers, assemblers, and the like. In this meaning, this would also include browsers, although Mozilla is going for Rust. Today, "systems programming" is more taken to mean "kernel programming", and I don't get the sense that is what was meant by the senior authors of go.
- rhizome 15y agoOriginally they were targeting "systems programming" Choose the greatest impediment and cite it as a primary goal.
- wglb 15y agoI am not quite sure if I follow you. Are you saying that "systems programming" is the greatest impediment?
- burgerbrain 15y agoTargeting systems programming is. The existing languages used there are rather firmly entrenched.
- acqq 15y agoI 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 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.
- 4ad 15y agoThat'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 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?
- wglb 15y agoThat 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.
- delinka 15y agoI'd rather reply to wglb, but he's gone too deep... Anyway, "systems" in this case includes daemons and server processes. I'll update with a reference if I can find it in the Go context.
- burgerbrain 15y ago>"Anyway, "systems" in this case includes daemons and server processes." For that sense of "systems", Go excels and Java enjoys a great deal of popularity.
- reddit_clone 15y agoMe thinks Go's niche is to be an accessible, imperative Erlang. It is already well equipped to write distributed network servers, web servers, message queue servers and such.