News for hackers. Stuff that matters.
Re:Why Go and Rust are not competitors by jasode on Thursday July 02, 2015 @09:01AM (#9818513)
I've read that and I disagree with your interpretation.

Google was using C++ in the "systems management" of their datacenters. Rob Pike is using a Google-idiosyncratic definition of "systems".

I do believe that Google did use C++ for many classic low-level scenarios (e.g. writing custom Linux device drivers, failover code, etc) but they were also using C++ for "high-level" systems orchestrations and batch jobs. It's the "high-level" uses of C++ that that Rob Pike successfully addressed with Golang.

I'm saying a large percentage of programmers outside the Google bubble think of "systems" as low-level stuff like realtime embedded, low-latency device drivers, etc that require zero-cost abstractions. Rob Pike did not design Go's semantics & runtime for those use cases.

Re:Why Go and Rust are not competitors by 0xFFC on Thursday July 02, 2015 @12:07PM (#9819794)
C++ for Linux device driver? Am I missing something?
Re:Why Go and Rust are not competitors by FreeFull on Thursday July 02, 2015 @04:06PM (#9821276)
It is possible to write a Linux device driver in C++, although most will be written in C (and I think all the ones that actually come with the kernel are in C).
Re:Why Go and Rust are not competitors by cwyers on Thursday July 02, 2015 @09:29AM (#9818677)
I don't think Rust is designed for those use cases either, honestly.
Re:Why Go and Rust are not competitors by qznc on Thursday July 02, 2015 @09:44AM (#9818777)
You don't think Rust is suitable for writing device drivers or realtime stuff? Why is that?
Re:Why Go and Rust are not competitors by cwyers on Thursday July 02, 2015 @09:56AM (#9818863)
Well, no, that's not what I said. I said it's not designed for those use-cases -- if Go is 'designed for systems programming at Google', then Rust is 'designed for systems programming at Mozilla', which if anything is further from the metal than a lot of what happens at Google. I think Rust made a lot of design decisions that probably makes it better for those use cases than Go. But there have been people who have tried to write low-level OS code in Rust and found some significant pain points:

http://scialex.github.io/reenix.pdf

Now, some people who know a lot more about Rust than I do have said these are problems that can be solved in Rust, and I have no reason to disbelieve them. But I don't think writing that sort of stuff was a design focus of the language, compared to writing the sort of large user-space applications that are currently written in C and C++.

Re:Why Go and Rust are not competitors by steveklabnik on Thursday July 02, 2015 @12:04PM (#9819769)
Fun story about the history of that paper:

We used to think Rust needed a runtime to be safe, so it had one. There was an attribute, #[no_std], which would not link in the runtime, and also get rid of the standard library. As such, the decision was made for std that it should just panic on OOM, because you'd be clearly writing an application, and generally, you don't even seen OOM in that use-case.

Fast forward a few years, and we remove the runtime, and suddenly, it's not impossible to use std to build things like operating systems. So now, people use it this way, and see that it might not be well-suited to that purpose.

So in some ways, the claims put forth by that paper are historical accidents. Which doesn't mean that they're not interesting, or valid, it's just that an additional possibility came up, which challenged a design assumption.

We absolutely do care about the lowest-level case with Rust, and had a number of discussions at the workweek (Mozilla all-hands, full week of meetings) to talk about how to improve the "I'm writing a kernel" case with Rust.

Re:Why Go and Rust are not competitors by istvan__ on Thursday July 02, 2015 @10:38AM (#9819148)
I think what matters is: outside the organization where the certain language was invented what is the the most users use it for.

Aka: outside Google what is Go used for? Mostly web related project and low level IO, databases, data stores, etc.; based on the popular Go projects on Github, if somebody has time it would be good to see some stats on this

outside Mozilla what is Rust used for? This is a more tricky question because the most programmers I know of do not consider a language for anything before 1.0. Rust 1.0 just got released recently so they have years to go to have relevant stats about the usage patterns.

Re:Why Go and Rust are not competitors by Jweb_Guru on Thursday July 02, 2015 @12:46PM (#9820048)
Just to be clear: it would not be possible to attempt to write that paper in Go. That is what people mean.