Hacker News new | past | comments | ask | show | jobs | submit login
Rust or Go? Which will rise?
11 points by zedzedzed on Aug 6, 2012 | hide | past | favorite | 26 comments
After 5 years, what can I expect to see? Rust or Go? I seek the most expert comments.

At this point, I feel that there's enough momentum and a big enough backer behind Go that I have very little doubt that it will still be a going concern in 5 years.

Rust is more questionable, after all they haven't reached 1.0 yet. But I'm cheering for them -- IMO, they're the more interesting language and I like the choices they made.

Go was mature enough, even before its 1.0 release, I think. In case of rust, it has reached 0.3.. and it is accelarating fast.

As a PL guy, I can say: both. Despite both calling themselves "systems programming languages", they serve completely different niches. Go is for web-services/web-apps development; Rust is for truer systems software (if they keep GC optional it could even be used for kernel development).

yes I agree with rust being the only one I could consider a potential 'systems language' of those two.

Both, given that programming languages shouldn't be a horse race. They're different languages that fit differing niches: both address concurrency and parallelism at the language level, yes, but at least from my perspective, Rust is oriented towards systems programming (task-level GC, lower level memory access, and strong static safety guarantees), while Go is for rapid network service development.

Both. They are not really competitors. They ship robust and modern approach to concurrency, which is insanely demanded these days, and is probably the only reason why they are constantly mentioned together. But they are quite different otherwise.

Go puts programmer productivity on top, thus fast compilation, "zero-thinking" memory management (thus global GC). They want the best from both fast but hard C++ and elegant but slow Python.

Rust aims at low level, close to hardware, as fast as possible programs, thus fine tuning for memory management (arenas, isolated GCs, choice between GC and non-gc allocation), thus disallowance of implicit copying even at cost of making language a bit harder etc. They want to fix memory unsafety and bad concurrency problems of C and C++ while keeping all the perks which are the reasons why those languages are still used for new software.

I imagine the choice will be like between C++11 and Java today: one's a bit faster and less memory greedy, the other's a bit easier, and each will have niches where the other is strongly unwanted.

Some people might tell you Go is the one, and if enough people believe that it might become a self fulfilling prophecy.

I personally am very interested in Go and I think it's a great choice for all my future projects.

Will Go become popular after 5 years? I honestly don't know, but I think it's a great tool and I want to use it. And honestly, I'd be weary of a language/platform if its popularity was based primarily on hype (for example, node.js) rather than usefulness.

Also, there's no reason that only one of Rust or Go can become popular. They could both become popular, just like Ruby and Python are both popular these days.

Which is more general purpose? By this I mean to ask that, which language touches more domains? For Example - Today i write kernel. Tommorow I write a gui app. The next day, a web backend, the very next day, a self aware neural type of thing. Which one single language suites me?

When I google for comparison, I get this as a top result.


First one who gets a Rails-like showcase application. If that doesn't happen, both will get some action, but more on an Erlang/D level than Ruby/Python.

So, according to you, which one has more chances of getting used in a future popular app or framework?

I'd say none of the above. There have even been a few interesting projects done with Ocaml (mldonkey, unison), which is a pretty good choice for system-level programing and has a pretty fast compiler. Also a lot of people are using Erlang for it's supreme concurrency support and stability.

Which is why I don't doubt that there'll be quite a few people using Rust and/or Go. But I'm really not sure whether either of them will move beyond this tier into the PHP/Python/Ruby territory. A framework like Ruby would certanly help, and that can come out of nowhere. But I wonder whether the day of killer-feature frameworks aren't numbered, i.e. whether something like this can happen again.

So I think in the end it comes down to which of the two will do better in the Haskell/Ocaml/Erlang tier. Go has some rabid fanboys and quite a decent designer pedigree, good libraries and a bit of a headstart, whereas Mozilla is ripe with dumped applications and failed projects. So unless they're rewriting major parts of their infrastructure with Rust and actually release stuff, I'd bet on Go.

I am also not betting/expecting/ whatever-you-say to make it into python/ruby sphere. I expect them to make for a new tier of high performance concurrent apps(higher than erlang), 'targeted towards more number of C familiar programmers'.

Mozzila giving out broken products? - well, dont you use firefox?

I actually do use Firefox, but don't forget that it basically was a skunworks alternative to the feature creep that was the Netscape suite. And then there's Grendel. Not that Google doesn't have the same issues on a bigger scale, so even though both Rust and Go have some backing, it doesn't mean that both can't be canceled straightaway.

There actually might be more renewed interest in C++ (in its current C++11 reincarnation) than actually new interest in Go/Rust. (Chances of someone reviving Modula-3 or creating a killer framework for Ada will remain low)

Yeah, there are a lot of positive opinions building around C++11. But, my personal opinion is that, to be in a long run, c++ has to change very fast again!(I mean, the design patterns, to match up with new hardware and expectations). This is not the case with rust or go!!!

Well, as opposed to things like Prolog or the more esoteric functional languages, those three language aren't too different regarding their basic mindset and ties to machine architecture. Never mind that I don't believe that we're in for a massive change, anyhow (and all three can cope with multi-core in about the same way).

Sure, you don't have the legacy libraries and architectural styles of C++ in Rust/Go, but that's a pretty moot point if we're talking about new projects. Go wild with generics, lambdas, concurrency, type inference etc..

I thought Rust was going to be akin to Dart as far as programming realm. Was I incorrect? Is it a low-level programming language?

Does anyone have any benchmark numbers for either?

language shootout has benchmarks for go but none for rust yet unless I'm mistaken. Here is go versus c on a x64 quad cpu (scroll down to see the comparison):


and here's how go measures against other languages in the language shootout (averaged):


Looks like PHP is faster than Perl, Python and Ruby in that chart.

C will still be king.

C will not be the king for eternity... It is time to look for the future king, then C should continue to reign till the prince becomes a man.

I don't know about that. Golang is evolving pretty quickly. Barring a few language quirks, I like it a lot.

No doubt about that. Just take a look at NASA's Curiosity.


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