Live data from Hacker News

Why AWS loves Rust, and how we’d like to help

aws.amazon.com

141–150 of 338 posts

Re: Why AWS loves Rust, and how we’d like to help

#141
post #105

Earlier quoted context omitted.

The Rust community alone is so much better than anything I've seen in my 15 year programming career. The communities of statically typed programming languages were especially elitist and gatekeeping. The Rust community is welcoming.

I've basically had nothing but downvotes from the Rust community because any time I point something out about my thoughts on the language, I'm wrong and can't have those thoughts. Some one here in a separate thread said, "I don't understand your hate," and I'm like, what hate? It's a programming language. I don't hate it, I just don't yet find a reason to use it, but maybe I'm missing something really big. It's not r…

>I'm wrong and can't have those thoughts.

There is a difference between facts and opinions, yah?

Re: Why AWS loves Rust, and how we’d like to help

#142

Am I just not "with it?" I don't see the appeal of Rust, but it gets the hottest talk in HN-town. Maybe it's just because I haven't worked long enough with C or C++ to complain about them (only about a decade or so), but I don't have any issues with those languages. And I find it wholly unappealing to abandon the existing corpus of literal decades of knowledge having been poured into those language ecosystems all in…

It has C and C++'s performance without a lot of the footguns. A better type system. The trait system is a nicer way to extend types than C++'s class system (IMO). Generics from the start, instead of absent (C) or added on and still not fully utilized by practitioners (C++, some practitioners get the value, other offices bar using them). The ownership model means that using the lower level concurrency primitives is less likely to have the subtle issues of C and C++. It also means they could avoid encoding a specific concurrency model into the language (like Go or Erlang) and let those be libraries.

Cargo as a standard build system, package manager, and test runner. This makes for a much more coherent development environment than the tire fire that is C and C++'s build, test, and package management story.

Developing tests is much easier than in C and C++, which means many of the packages are actually reasonably well tested (maybe not perfect, but better than the average C or C++ package you might want to incorporate into a project).

Rust has a pretty good module system. C has nothing of the sort, and C++ has a mix of things that can be used similarly (classes, namespaces) and only recently got modules proper in C++20. This helps a lot with organizing your code into a modular structure and then sharing that code with other projects.

Rust can call and be called from C, so there is no tossing anything out. You can integrate Rust into an existing project one file at a time. Move your more critical code into it, and let other code call it. Going back to concurrency, put the part that generates and manages workers (as an example of one model) in Rust and leave the rest of the logic in C or C++. Gradually migrate the worker logic into Rust, or not. Perhaps it's a library that you don't control or don't want to change.

Some things aren't pretty or aren't clear. For instance, str and String are pretty confusing for new users. But the compiler will catch these for you. Speaking of, actually decent compiler warnings and errors. Often with potential fixes included, which usually do what you want.

In summary: Fewer footguns, better quality of life components, better language features in some areas (type system, modules, in particular), no performance hit (or no major performance hit) compared to other options for languages attempting to offer improved safety (where safety could be along many dimensions).

Re: Why AWS loves Rust, and how we’d like to help

#143
post #105

Am I just not "with it?" I don't see the appeal of Rust, but it gets the hottest talk in HN-town. Maybe it's just because I haven't worked long enough with C or C++ to complain about them (only about a decade or so), but I don't have any issues with those languages. And I find it wholly unappealing to abandon the existing corpus of literal decades of knowledge having been poured into those language ecosystems all in…

The Rust community alone is so much better than anything I've seen in my 15 year programming career. The communities of statically typed programming languages were especially elitist and gatekeeping. The Rust community is welcoming.

Rust has a lot of deficiencies, like any programming language, but in general what I've seen is that "the community" believes the ownership model/lifetimes and "unsafe" keyword effectively makes it flawless. I think it's dangerous, to be honest, and the community in this regard is not very good--it's filled with people who hype the power of the language well beyond its limits.

Re: Why AWS loves Rust, and how we’d like to help

#144
post #54

So, Apple got swift, Google got Dart and Go, i guess Amazon is trying to "have" rust ? I hope Amazon will keep the open source nature of Rust. This post is obviously from an engineer, but i fear the day business people will start looking into ways to leverage the contribution Amazon made to Rust.

It can go the other way. Apple started LLVM but can they be considered to own it anymore?

Apple didn't start LLVM. Apple started Clang (and possibly LLDB?), Apple hired Chris Lattner because of LLVM.

Re: Why AWS loves Rust, and how we’d like to help

#145
post #122

Earlier quoted context omitted.

I can give you a few reason you might like rust. - Instant boot time. Because rust is statically compiled, there's no runtime startup or anything involved with it. From dead to alive is pretty much instant. - Low memory footprint. Because rust does not use a GC, it doesn't need all the bits and pieces of memory storage that modern GCs require. The memory allocated is (close to) the minimal memory needed to run the ap…

Realistically, three of those 5 points are non-issues for C/C++ devs. The last is only relevant for certain types of workload. So you’re left with one real killer-feature of Rust: the safety. It’s a massive feature that cascades very well into pretty much anything you do... but it’s also one feature really - the benefits of which might not be particularly relevant on large established projects who have probably addre…

I think the more interesting cost benefit isn't moving from C++ to rust. Rather it is moving from Java or Python or Ruby or Perl to Rust.

You'd pretty much never make the move from Java -> C++ because of the lack of safety. But you may want to do it because of the other non-safety features.

That is where Rust is interesting and competitive. It's the performance and memory footprint of C++ with the memory safety of Java.

Re: Why AWS loves Rust, and how we’d like to help

#146
post #17

Earlier quoted context omitted.

It still can

Not really, they went and fired all their core Rust people.

Those core Rust people could form such a consultancy. They have a ripe market of people willing to part with their cash for it.

Re: Why AWS loves Rust, and how we’d like to help

#147

I believe that's Amazon, Microsoft and Facebook all looking to get involved in core Rust development (I think partially triggered by the Mozilla layoffs). If anybody was still harbouring doubts about Rust's future, now is the time to lay them aside.

Friends of mine that are contract programmers have been ramping on Rust for the past 2-3 years claiming the number of requests for it has been increasing exponentially. I installed it two weeks ago and have been getting a feel for it. It's like if C++, C#, and npm had an offspring. I always hoped Java would make a comeback, but Rust is looking like the real deal.

We use rust for everything at MobileCoin. I like to think of the compiler as fussy, but when you make the compiler happy your code just works. No buffer overflows as long as you don’t use unsafe code, multi-threading by default. The audits on our code have basically only turned up logic errors and out of date crates (yes it’s always possible stuff was missed, but it feels a lot different than the C/++ and functional audits I’ve been involved with in the past).

We love it and wouldn’t trade it for a different language at this point.

P.S. we’re hiring remote and sf Bay Area. If you are interested in working on digital cash for use in messaging applications, drop me at line!

Re: Why AWS loves Rust, and how we’d like to help

#148

Earlier quoted context omitted.

Applications of Java and Rust do not overlap. As a big data engineer, Rust does not provide any advantage to me. Good luck rewritting all the big data tools from Java (Elasticsearch, Spark, Kafka, Hadoop, Neo4j, Deeplearning4j, Cassandra, Solr, Arrow, OrientDB) and all the scientific stuff from C++ (Eigen, Tensorflow, PyTorch, Jax, Halide, OpenCV and the multitude of resources for CUDA and OpenCL) and databases (MySQ…

Your comment seems to assume that your use case “big data engineer” is the only use case or the only Java use case and that the only context in which Rust can grow is to rewrite the existing tools that you use today (as opposed to greenfield projects like firecracker or bottle rocket). Your edit also writes Rust off as “idealistic” and not “pragmatic” without support, which is very far from the impression I have (bas…

Firecracker and Bottlerocket are fine pieces of engineering. If Rust wants to get a share of the pie when it comes to data engineering, then it needs to have at least a killer app with an ecosystem around it. We can talk all day and all night for why some languages are more successful than others but it seems like ecosystems are giving them a boost. Hopefully, Rust will be the language for microVMs and kernel-level modules. I was strictly referring to people that think Rust would displace Java as idealists.

Re: Why AWS loves Rust, and how we’d like to help

#149
post #112

Earlier quoted context omitted.

Applications of Java and Rust do not overlap. As a big data engineer, Rust does not provide any advantage to me. Good luck rewritting all the big data tools from Java (Elasticsearch, Spark, Kafka, Hadoop, Neo4j, Deeplearning4j, Cassandra, Solr, Arrow, OrientDB) and all the scientific stuff from C++ (Eigen, Tensorflow, PyTorch, Jax, Halide, OpenCV and the multitude of resources for CUDA and OpenCL) and databases (MySQ…

Being as experienced as you are, couldn't you just learn Rust like any other language if you need it in your work (or just to try it out). Your post has a weird negative vibe, like it would cost you greatly to try it.

The cost to learning Rust might be low but the opportunity cost might be high, since there's many other ways someone can improve their career.

Re: Why AWS loves Rust, and how we’d like to help

#150

Earlier quoted context omitted.

Any OS distribution, e.g. Debian maintainers should be asking permission to patch rust per Media Guidelines, but it doesn't always happen.

Reading the Media Guidelines, I don't see how you came to that conclusion: > TL;DR: Most non-commercial uses of the Rust/Cargo names and logos are allowed and do not require permission; most commercial uses require permission. In either case, the most important rule is that uses of the trademarks cannot appear official or imply any endorsement by the Rust project. https://www.rust-lang.org/policies/media-guide

From the link:

> Uses that require explicit approval

> Distributing a modified version of the Rust programming language or the Cargo package manager and calling it Rust or Cargo requires explicit, written permission from the Rust core team. We will usually allow these uses as long as the modifications are (1) relatively small and (2) very clearly communicated to end-users.

Patching for a specific architecture, distro, OS, et. all is going to result in "a modified version". You can't expect users as far down as the Debian Source DVDs to be able to submit that back to Rust for approval. Us folks using MIPS patch all the time, and redistribute binaries to help others.

Post reply on HN