

Rust or Go? Which will rise? - zedzedzed

After 5 years, what can I expect to see?
Rust or Go? I seek the most expert comments.
======
bryanlarsen
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.

~~~
zedzedzed
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.

------
hamstergene
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.

------
i80and
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.

------
hasenj
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.

------
zedzedzed
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?

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

[http://stackoverflow.com/questions/9339560/erlang-versus-
go-...](http://stackoverflow.com/questions/9339560/erlang-versus-go-versus-
rust-comparison)

------
mhd
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.

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

~~~
mhd
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.

~~~
zedzedzed
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?

~~~
mhd
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)

~~~
zedzedzed
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!!!

~~~
mhd
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..

------
eli_gottlieb
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).

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

------
debacle
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?

------
thebluesky
Does anyone have any benchmark numbers for either?

~~~
akkaarrh
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):

<http://shootout.alioth.debian.org/u64q/compare.php?lang=go>

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

[http://shootout.alioth.debian.org/u64q/which-programming-
lan...](http://shootout.alioth.debian.org/u64q/which-programming-languages-
are-fastest.php)

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

------
veyron
C will still be king.

~~~
zedzedzed
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.

------
entropyredacted
Both.

