Live data from Hacker News

Why I love Rust

speakerdeck.com

11–20 of 159 posts

Re: Why I love Rust

#11

I want to spend at least 3-4 months learning a new language but just can't figure out if I should spent time learning Rust or Go. I am thinking more of it from a career perspective than interest.

Speaking as someone who has used both languages, I think you should learn both if you can. Rust will give you experience with low level systems programming (memory management, parallelism, etc.) Go will give you experience with network-facing backend code. Both languages will teach you concurrency.

Go is significantly more popular than Rust. But if what you want to learn is a popular language, you shouldn't be looking at either Go or Rust.

Disclaimer: I'm a Rust developer.

Re: Why I love Rust

#12

Earlier quoted context omitted.

The TIOBE Index for January, 2016 has Java at number one. Rust is at 47 and Go is outside the top 50: http://www.tiobe.com/index.php/content/paperinfo/tpci/

Go is probably a difficult term for TIOBE to get it right.

It absolutely is, but there's even more to it than that. From their documentation (http://www.tiobe.com/index.php/content/paperinfo/tpci/progra...):

"In order to filter out false positives, two mechanisms are used. First of all a confidence is defined for a language. By default the confidence is 100%, but for some difficult search queries such as "Basic Programming", the confidence will be lower. Apart from the confidence, sometimes also exceptions or mandatory additions are used to weed out false positives."

What they do is that add the term "+Google" to the search terms, yet for the other incredibly popular word "Rust", they don't add "+Mozilla". TIOBE is laughable.

Re: Why I love Rust

#14

I want to spend at least 3-4 months learning a new language but just can't figure out if I should spent time learning Rust or Go. I am thinking more of it from a career perspective than interest.

While I'm bullish on Rust being a big language in the next few years, there's not much production use yet -- it's still pretty immature from a production tooling point of view. Go, on the other hand, has a lot of adoption. So if you're looking for a language to use on the job today, it's gonna be Go.

> it's still pretty immature from a production tooling point of view.

I think that the production tooling for Rust is pretty good. For example, it has a package manager that everyone uses, with features like lockfiles that are specifically designed for production. Not many languages have this.

It's undeniable that Go is more popular than Rust, but I think "production tooling" is not the reason.

Re: Why I love Rust

#15

I want to spend at least 3-4 months learning a new language but just can't figure out if I should spent time learning Rust or Go. I am thinking more of it from a career perspective than interest.

I actually think you'd go far to spend 3 - 4 months learning C++. Almost every language you can likely encounter in your career will use some feature that will get introduced to you in C++, especially modern C++, and, almost any language will be easier to learn and use after first going through a C++ learning curve.

Besides, C++ is still the big player, more than all others. Even Apple's new language Swift is written in C++. It's a good language to know something about.

It also sets you into a different category of programmers, from what I have found recently, since C++ techniques are not taught much in college programs any more (based on my conversations with recent CS grads), which really surprises me. It's a special skill that would set you apart if you know it.

Re: Why I love Rust

#16

I want to spend at least 3-4 months learning a new language but just can't figure out if I should spent time learning Rust or Go. I am thinking more of it from a career perspective than interest.

One perspective could be that Rust is the more interesting talking point, even if you don't work on it in the job you are actually applying for. But if you purely want to get a job in one or the other, Go is currently much more widely used. I have hopes that this year will see a large jump in industry adoption of Rust, but that still remains to be seen.

But as others have said - pick the one you think you'd enjoy the most. Learning anything is good. And why not try a bit of both?

(Spoken as a contributor to the Rust ecosystem)

Re: Why I love Rust

#17

I want to spend at least 3-4 months learning a new language but just can't figure out if I should spent time learning Rust or Go. I am thinking more of it from a career perspective than interest.

I actually think you'd go far to spend 3 - 4 months learning C++. Almost every language you can likely encounter in your career will use some feature that will get introduced to you in C++, especially modern C++, and, almost any language will be easier to learn and use after first going through a C++ learning curve. Besides, C++ is still the big player, more than all others. Even Apple's new language Swift is written…

This is a weird answer to the question, especially since Rust very probably has whatever "modern C++ techniques" you were thinking of.

Re: Why I love Rust

#18

Earlier quoted context omitted.

The TIOBE Index for January, 2016 has Java at number one. Rust is at 47 and Go is outside the top 50: http://www.tiobe.com/index.php/content/paperinfo/tpci/

Go is probably a difficult term for TIOBE to get it right.

Can they get "C"?

Re: Why I love Rust

#19

Earlier quoted context omitted.

I actually think you'd go far to spend 3 - 4 months learning C++. Almost every language you can likely encounter in your career will use some feature that will get introduced to you in C++, especially modern C++, and, almost any language will be easier to learn and use after first going through a C++ learning curve. Besides, C++ is still the big player, more than all others. Even Apple's new language Swift is written…

This is a weird answer to the question, especially since Rust very probably has whatever "modern C++ techniques" you were thinking of.

I disagree. As others have pointed out, the demand for C++ jobs is still much higher than Rust jobs, so I think my answer still stands as a way to set yourself apart when thinking of a new language to spend a few months on.

Ideally, one would learn Rust and C++ both and see how they differ, and why.

Re: Why I love Rust

#20

I want to spend at least 3-4 months learning a new language but just can't figure out if I should spent time learning Rust or Go. I am thinking more of it from a career perspective than interest.

It's unfortunate that they're often talked about as comparable things (as Go vs Rust) because they're totally fundamentally different languages, including what spaces they target.

I think part of this is due to Google initially trying to position Go as a systems programming language and sorta like an easier C.

In reality, Go is so far distant from C or C++ that it would be better to describe it as Java related honestly.

The real question is what do you want to do or why do you want to learn.

Do you want:

* Something where you can quickly produce working code

* Something with a large, complex, and questionable quality ecosystem (as ruby/python have, but a smaller scale)

* Something that's pragmatic, but not elegant

* Something that's well suited for writing a webserver, cli tools, or daemon

* An ecosystem of people who do not like complicated languages and rarely talk about complex language-theory concept

* Something that fills a similar role to python, ruby, java

* Something that has a massive foothold in the docker/container ecosystem

* A language driven by a semi-opaque "open source" process with a big company and closed doors at times

* Really easy to use concurrency (but also easy to shoot yourself with)

* Nice editor integration, autocompletion, etc.

Well, Go wouldn't be bad to learn

Do you want:

* Something where you'll actually learn new concepts, ideas, and be challenged in some ways

* A fledgeling library ecosystem where the libs that exist are decent quality, but most just don't exist

* Lots of opportunities to contribute

* A community-driven project where your opinion can make real changes happen

* A powerful macro system

* Actual type safety! With real algebraic types!

* No GC pauses

* Elegant error handling and abstraction powers

* Something it's hard to write working code in, but once it compiles it's probably pretty good

* Something great for writing an OS or low level tools in, and mediocre for webserver, cli, etc currently

* Something to replace C++, possibly D, possibly ocaml

* A language that is technically an ML but doesn't feel like one

* A super-smart community willing to talk about some of the coolest topics in language design and CS

Rust could fit for you

Grain of salt, I write lots of Go and am working on getting to know rust better still.

To all the people saying "Go is used professionally, rust isn't, don't learn rust from career perspective"... there's another axis!

You also have to consider what skills you'll pick up with each. Learning Rust will improve your ability to write safe C++ and help you reason about some types of problems in all other languages, so even though rust itself isn't directly marketable, the skills you get will be helpful regardless.

Learning Go will help you reason about actors a little and some problems in other languages, but not nearly as many and, frankly, the community for Rust will teach you a lot more about everything.

Post reply on HN