11 ms·
Golang or Rust don’t fit the bill? Ahh they are looking at Rust next.
by gigatexal 7y ago
Golang or Rust don’t fit the bill?
Ahh they are looking at Rust next.
- steveklabnik 7y agoThe last sentence of the post: > In our next post, we’ll explore why we think the Rust programming language is currently the best choice for the industry to adopt whenever possible due to its ability to write systems-level programs in a memory-safe way.
- naltun 7y agoIt's really nice to see Rust gaining traction with some big names. Also, here's a great talk that highlights Rust and memory safety: https://www.youtube.com/watch?v=cDFSrVhnZKo&t=923s https://www.youtube.com/watch?v=cDFSrVhnZKo&t=923s. It's a video I frequent every couple of months.
- rowanG077 7y agoGo is not a systems programming language. Rust does fit the bill.
- yellowapple 7y agoIIRC Go was originally designed to be a systems programming language and can technically be used to that effect, even if (relative to Rust) there are few projects using it in that capacity.
- Ericson2314 7y agoCan you write the GC for go in go?
- fiddlerwoaroof 7y agoPeople have written GCs for lisps in (non-allocating subset of) the target language
- Ericson2314 7y agoYes they have. It's a great approach. Does Go have a precisely defined subset for this?
- yellowapple 7y agoGo is self-hosting (i.e. Google's Go compiler is written in Go and is able to compile itself). I would assume that includes the garbage collector.
- Ericson2314 7y agoNope it does not. Writing the compiler self hosting has nothing to do with writing the run time system.
- yellowapple 7y agohttps://github.com/golang/go/tree/master/src/runtime https://github.com/golang/go/tree/master/src/runtime There's some assembly in there, but it seems to be mostly Go.
- tomohawk 7y agoYou need a Go compiler to compile Go, so yes.
- Ericson2314 7y agohttps://news.ycombinator.com/item?id=20522115 https://news.ycombinator.com/item?id=20522115 as I say here, this is unrelated.
- pjmlp 7y agoYes, in fact that is the case with the reference compiler.
- rowanG077 7y agoThen why does it include a garbage collector? Garbage collection is totally unacceptable for a systems programming language.
- pjmlp 7y agoBecause Xerox PARC, MIT, TI, ETHZ, DEC Olivetti and Microsoft Systems Research have proven otherwise.
- rowanG077 7y agoHow have they proven otherwise? I only know of singularity which never went anywhere.
- pjmlp 7y agoLisp machines were sold in the market, before UNIX Workstations won over thanks for being based on source code available at a symbolic price, thus cutting down their hardware costs. ETHZ had their Oberon workstations servicing the complete CS department for around 10 years. Midori powered part of Bing during its high time. Don't mix technology capabilities with politics and budgeting.
- hollerith 7y agoSo on their best day ever, OSes dependent on GC were running on fewer than 50,000 machines worldwide, which is 5 orders of magnitude less than OSes not dependent on GC. What I just wrote is not a slam-dunk argument against OSes dependent on GC, but it is at least evidence against them -- even if decisions on which OS to use are usually political decisions.
- pjmlp 7y agoWell, if you want more examples, Aicas, PTC and Aonix selling real time Java deployments into bare metal, some of which used by US and French military. Or Astrobe selling Oberon boards for around 15 years now. Or we can just keeping using UNIX clones, no need to waste money on improving the status quo.
- AnimalMuppet 7y agoWell... there are different definitions of "systems programming language". One is a language that you can write an OS kernel in, including the memory management subsystem. Go probably doesn't fit that bill very well. It might be possible, but it probably wouldn't be your first choice. But there's more to the OS than a kernel. There's drivers, and there's utilities. You can write a lot of the utilities in go. That's another definition of a "systems programming language". You wouldn't write "ls" in Python, but you could write it in Go quite easily. Finally, people sometimes use "systems programming language" to mean a language that you can write large-scale software in. Is one of Google's services a "system"? Yes, by at least some definitions. A language that lets you write such services (such as go) is a systems programming language by that definition.