4 ms·
I don't understand why people insist on comparing Go and Rust, when they clearly don't compete against each other. Rust competes with C++, Go competes with Java
by thiht 4y ago
I don't understand why people insist on comparing Go and Rust, when they clearly don't compete against each other. Rust competes with C++, Go competes with Java. The only thing they have in common is being relatively modern and recent languages, but they just don't share the same goals and don't have the same promises.
- throwanem 4y agoOkay, but in my circles at least - primarily professional fullstack and mobile dev, plus a wide range of hobbyists and aspiring pros - they've competed for the same mindshare for about as long as they both have existed, and Go seems to have lost out pretty decisively. The most recent SO developer survey seems to bear that out. I don't know what goals Google, as opposed to the Golang team, has for Go. I do know Google has notoriously opaque and complex internal politics, and a long history of summarily axing projects that fail to perform over some set of internal metrics, no matter how large and invested a userbase they happen to have. So I don't think it is unreasonable to consider the question. Sure, the technologies aren't fungible, but it isn't a technological question I'm asking; every longstanding human enterprise necessarily involves politics, and it's the politics I'm wondering about here.
- thiht 4y ago> they've competed for the same mindshare for about as long as they both have existed, and Go seems to have lost out pretty decisively I have no idea what you're talking about. I agree for the mindshare, because I started with Go and thought Rust looked more elegant, but after actually trying it it became pretty clear that they don't compete. I don't know where you're getting that Go somehow "lost", it sounds like bubble reasoning. Again, it didn't "lost" because they don't compete with each other. It's like saying Nadal lost against Messi because Messi is more popular when they're not playing the same sport, it doesn't make sense.
- throwanem 4y agoI wish I hadn't included the comparison with Rust. It's totally severable from the conversation I was trying to start, but no one seems to have noticed anything else.
- acdha 4y agoI think in part it's because those historical separations were driven by multiple factors: not just things like whether you manage memory directly but how cumbersome the language was, the range and portability of libraries, etc. Some of Java's appeal was no longer fighting the myriad of different libc misimplementations across various operating systems in the 90s. Rust is interesting because not only is it good at low-level control but it has very advanced language structures and rich libraries (unlike C), better ergonomics than Java, a great async implementation, etc. That expands the range of problems you might consider a “low-level” language for considerably since you no longer have the tedium of basic things like primitive data and control structures, non-ASCII text processing, etc. steering you towards other choices. Go is an interesting middle language because it has some higher level features but also surprisingly limited types and C-style error handling, so you had the somewhat unusual case where people who wanted either low-level control or better robustness, advanced typing, packaging, friendlier compiler error messages, etc. might reasonably conclude Rust is a better choice. I'd still say Rust is harder to learn but the situation feels somewhat unique compared to the past where e.g. you really had to want the advanced features in C++ to pay the productivity tax of using it.