Hacker News new | past | comments | ask | show | jobs | submit login
How the AWS team will contribute to Rust’s success (amazon.com)
182 points by steveklabnik on March 3, 2021 | hide | past | favorite | 76 comments

An officially supported Rust SDK should be a high priority, IMO. The de facto AWS library Rusoto (https://github.com/rusoto/rusoto) went into maintenance mode is in need of maintainers (https://github.com/rusoto/rusoto/issues/1651).

Microsoft has an Azure SDK under their organization (https://github.com/Azure/azure-sdk-for-rust), but oddly, it's marked as "unofficial". It looks like Google doesn't have one for GCP, but there is a community-built one: https://github.com/Byron/google-apis-rs

Given all these companies are part of the Rust Foundation (https://foundation.rust-lang.org/members/), maybe I just expect more.

With all these big institutions around maybe some of them will get together and push for namespaces in crates.io?

It would be great if e.g. everything under "amazon/" could be trusted to be an official Amazon crate so you don't have to vet every dependency from every tutorial, and this seems like a common need for Amazon, Google and Microsoft.

See e.g. kibwen's comment at https://news.ycombinator.com/item?id=24445788 "The problem is that crates.io is a free, volunteer-run project with zero full-time employees who could be tasked with the drudgery of intervening in naming disputes or managing an identity layer. [...] Solve the funding issue first, and then you can start solving the rest."

The namespace issue was frequently brought up with the crates.io team on Discord, Github, and focus groups at various points over the life of the service. The takeaway is that the lack of namespaces isn't a funding issue, they did not, and still do not believe it is the right design. I personally don't think this is correct, and squatting is very prevalent right now. It's been a bit of a broken record at this point, but at the end of the day it's a volunteer run project and the volunteers that are willing to spend the time to maintain it don't want the feature. I think overall this is a pain point, but by no means a deal breaker.

I can confirm that I personally advocated for namespaces before Cargo existed. I failed to convince the decision makers.

Meanwhile, just a few days ago some of my project's crates were freshly squatted. Sigh.

Maybe someday they'll come around.

I thought namespaces issue was solved in Java decades ago with domain names? Why invent anything?

It looks like they have a job posting for this: https://www.amazon.jobs/en/jobs/1424393/software-development...

This is the big reason I still use Go for a few of my projects. I would prefer to use Rust but the lack or an SDK has me waiting.

For context, one of the co-authors is Niko Matsakis, a recent hire at AWS and one of the longest-running leaders in the Rust community (among many things, inventor of the borrow checker and Rust's ownership system). So even if Amazon's involvement in the Rust community is only recently ramping up, I think this post suggests that they intend to invest in the Rust project itself.

I'm happy to see so many companies stepping up and investing not only in using Rust but in investing in its ongoing sustainability. And the fact that many companies are doing it, not just one, makes me optimistic that decision-making can keep happening in the community, not behind closed doors.

It would be amazing to see some legit advances on neural networks / machine learning in Rust. I feel like NDArray could use some love / attention from community experts to morph it into a nice differentiable programming framework. That could enable Rust to work for data science stuff.

Right now it feels like Python is a better option, but I really enjoy the idea of Rust enough to spend a lot of time lately thinking about a project in this language (which I have yet to fully learn)

Likewise, Yew is cool for front-end rust, but it uses mutable state, which concerns me because it creates a host of problems down the road (like when you want to add second-order features like undo/redo or declarative Ux)

Finally it would be cool to see more functional programming (Ramda.rs?) and authentication, authorization tools in Rust. Guess it's a bit like the Wild West and we gotta pick up the computer and start coding!

Maybe start by having an AWS SDK for Rust that isn't community supported by one or two employees on their off time?


I mentioned this on another top-level comment in this thread, but it looks like they have a job posting for this open: https://www.amazon.jobs/en/jobs/1424393/software-development...

I burned a few weeks struggling to use AWS's crate for lambda. Basically it's abandonware and has a lot of ancient dependencies which clash with modern crates. I eventually found that a few people had the same problems as I, and forked it, which is active and quite good: https://github.com/lamedh-dev/aws-lambda-rust-runtime

It would be fantastic if AWS had the resources to look after their official crate, or even if they simply spent 10 mins and put a bold warning on the github page: This is deprecated/abandonware, please use this recommended fork X.

Thanks :)

I find the attitude here from many people interesting. When I look at a bunch of rust communities, like the rust reddit or the rust discord, they are all cheering about this. But there seems to be so much hatred for AWS here that people would rather just use this as another chance to take swipes at AWS.

Ignoring the fact AWS contributes code/development to the project, they are also helping fund/finance parts of it and basically offer a bunch of free hosting to the Rust team.


This is awesome, I want to see Amazon make more moves embracing the OSS community a la Microsoft over the past few years.

It's a new world. Microsoft as a benchmark for OSS champion :D

Why is it awesome? Why should I believe that Amazon “embracing the OSS community” will have some desired effect?

Yes, more and better developed OSS software. That kinda goes without saying.

Right, so the desired effect is “more and better developed OSS software”, but why should I believe “Amazon embracing the OSS community” leads to that effect?

You can believe whatever you want. I’ll take the commits and good licenses as proof. You may have different metrics to measure by. Care to share?

Shane and Niko, regarding Tenet 4, what's the latest on an AWS Rust SDK? AWS Rust members contribute to Rusoto now. Are there plans for an AWS branded release?

That’s a whole lot of text to say... nothing.

I love writing Lambdas in Go. I would also love to be able to do that in Rust. I wonder if AWS will ever support that?

There's been a rust runtime for lambda for a couple years now. https://aws.amazon.com/blogs/opensource/rust-runtime-for-aws...

Rust's low cold start times and relatively minimal memory footprint combined with C like efficiency would be particularly attractive for lambda.

Oddly, the official rust lambda runtime is not being actively maintained any more and the community is moving towards a fork by netlify [0][1]

0: https://github.com/lamedh-dev/aws-lambda-rust-runtime

1: https://github.com/awslabs/aws-lambda-rust-runtime/issues/27...

I tried using that runtime, wasted a lot of time, and discovered many issues, and stumbled across some issues where people were effectively declaring it abandonware. I found a fork which seems quite good, recommend it: https://github.com/lamedh-dev/aws-lambda-rust-runtime

I haven't used layers enough to give you any useful guidance, but when they released layers they claimed that they'd allow alternative languages to be deployed. IIRC they released a few new languages at the same time and claimed they were all built using layers. So this might well already be possible.

Curious what other languages AWS uses

I know that AWS is mainly a Java shop sprinkled with C++, Go and Rust in some specific components.

Kotlin, Clojure, Scala, Erlang (though not anymore), and Perl, too. In short, a variety of them. Though much of it is Java / Kotlin.

Kotlin? Since when? I didn't imagine that AWS, which is mostly cloud, would use a language that is targeting mainly Android.

Don't know since when, but Al Vermeulen, Andrew Certain, and Marc Bowes from AWS talk about it here: https://talkingkotlin.com/qldb/

Btw, Kotlin's much much more than just Android APIs: https://kotlinlang.org/

tl;dr Recruiting article

tl;dr Amazon is still a terrible employer and company

I’ll continue writing Rust anywhere else.

They must pay well from all the money companies are throwing at them.

Amazon usually lowballs compared to other FAANG orgs.

Eh, I think it varies. All of the FAANG are such a huge gap of eachother.

About 6 years ago, Netflix and Google offered me far and away the most. Facebook Was Closer to them but still lower. Apple and Amazon were on par with the lower end of the spectrum.

I recently moved to Austin and started interviewing again, so far, AWS offered better wages than Apple and Oracle, especially for the area (was comparable to Seattle wage even), and Netflix and Google basically demanded I move (Netflix to Cali, Google to NYC). And Facebook I don't know because I refuse to work there.

So I think mileage may vary. AWS seems to pay a "Flat Rate" across the board, so if you live somewhere other than NYC, Seattle, or SF, your pay will likely be better than the adjusted wages other companies factor in for smaller cities.

Although I ended up taking an offer for Salesforce because they blew everyone else away pay wise.

They were 15% lower than my other job offers in August timeframe. Given the rep for requiring crazy hours and the middling pay, I wasn't interested.

Something something kool-aid :)


TLDR: "We use Rust. We will do stuff. It'll be great!"

No offense to Niko, but this is a completely vacuous post without a single concrete promise.

I don't really see the point, except for PR, recruiting or internal signaling.

> No offense to Niko, but this is a completely vacuous post without a single concrete promise.

Why does it need a promise?

> I don't really see the point, except for PR, recruiting or internal signaling.

It's messaging, sure. What's wrong with that? To me it looks like exactly what it says it is, communication regarding how they want to purport themselves in the community and what they're aiming for.

> communication regarding how they want to purport themselves in the community

But the post is titled "How our AWS Rust team will contribute to Rust’s future successes", but doesn't actually say anything - at all. It's all just empty words without content.

Apparently the mods agree, since the submission was downranked and blocked from the front page. Or maybe the algorithm picked up the odd upvote count and critical comment downvoting that is quite common for AWS submissions.

I don't mind a decent content marketing post that is supportive of Rust, but this one just rubs me the wrong way.

> But the post is titled "How our AWS Rust team will contribute to Rust’s future successes", but doesn't actually say anything - at all.

Maybe. I also think a case could be made that AWS coming out in support of Rust, and talking about how many products already use Rust and that they plan to have more is contributing to Rust's future success.

Big companies/services like Amazon with AWS, Google with Compute or Microsoft with Azure stating how they are leveraging and making wide use of a technology provides a non-negligible boost to how that technology is viewed, whether they actually do anything or not.

Effective teams need a charter to understand who they are and what they do. Without this, they increase the risk that they thrash around trying to do all things for all people, or fail to take advantage of their unique talents and opportunities. This post gives the AWS Rust team's perspective about their charter, which is not at all vacuous. They are sharing with the community to seek earnest validation and feedback.

FAANG using hyped language to recruit.

> People use tenets for everything at AWS

What is with all the cult/religious/military terminology turning up in software development these days? Squad, ritual, tenet; one day management will be asking us to remember to bring in our robes for the Thursday morning sacrifice...

I remember one consultant in 2009 describing how they had a toy chicken that they used to sacrifice by chopping off its head before VMware upgrades back when VMWare was new.

(They would then sew the head back on so the sacrificial chicken would be ready for next time.)

My point is: I guess this is nothing new.

Up one for the toy chicken (I'm thinking rubber chicken).

... with a pulley in the middle? High voodoo you’re playing with here...

Maybe it's because English is my second language, but tenet is to me just another word for principle or axiom? Nothing cult/religious/military about it?

Native English speaker, no extra connotations that I recognize.


  ten·et /ˈtenət/

  a principle or belief, especially one of the main principles of a religion or philosophy.
  "the tenets of a democratic society"

Indeed. As person suffering from endless agile bullshitery scrums, stories, sprints, and crap. I now have to keep a lookup table for normal names in my mind as every fucking thing has a "code/cool" name. So QA/UAT/Prod environment are now "Audi/BMW/Tesla" environment at work.

Corporations are inherently stupid. The social & political mechanisms within make the employees stupid as well (while acting as employees), so they turn to rules & folksy truisms as a heuristic to wrangle that stupidity and get the mob to advance the corporation's interests.

> Corporations are inherently stupid.

Is it that groups of people are inherently stupid, or is there some facet of corporations that makes them in particular stupid?

An individual person will act to the best of their ability. A group of people at bare minimum has to pay communication costs, and so will act to less than the best of the ability of its members.

Furthermore, since dysfunctional organizations aren't quickly removed, the reality is usually a lot worse than the ideal. Depending on how much slack there is in the arena of competition there can be almost no limit on how dysfunctional small pockets, or even large slices, of the organization can become without leading to the death of the host.

Does that not leave out synergetic effects? While communication costs, it could also reward?

The organization might "know" more about subject A and subject B together than expert A or B, but it will "know" less about subject A than expert A and subject B than expert B.

What about subjects like “building rockets that are moon-capable”? All experts know negligible amounts about this subject, but organizations have “sufficient” knowledge.

That's essentially half my point. The organization might be passable at "building rockets that are moon-capable," but it's going to be worse at each individual specialized task than the individual experts that make it up. One of the C programmers is likely to look at the architecture of the control system and think "that's a dumb way to architect a control system," and he'll probably be right. The same will be true for every subsystem, and even the integrated assembly. However unless someone figures out how to reduce communication costs, that's the best anyone can do; the alternative would be to have a great control system with no rocket.

Is the implication that a company can spend more time and money to get each subsystem to subsystem-expert-acceptance level, or is there something about current organizational practice that makes even this impossible?

Imagine two experts advising a leader. They're not going to fully communicate all of their expertise to him, so his decisions on topic A will probably be worse than expert A, and likewise for topic/expert B. He's going to make better decisions on joint A+B tasks that require combined and balanced knowledge, but both experts will (not incorrectly) see him as "not knowing as much about A/B as I do."

You can substitute the individual leader for a group whose consensus must be obtained and get another parable illustrating the same principle.

So, the leader is an expert on “joint A+B tasks”? Then provided he, the leader, can identify, A tasks, B tasks and A+B tasks and correctly defer on the first two sets, won’t we get optimal decision making?

And are we sure that there really are A+B tasks?

Not all groups, but corporations are groups with

* hierarchy

* competition between people in the same tier of the hierarchy

* opposing incentives throughout the hierarchy (company aims to maximize employee labor and minimize employee compensation and; employees minimize their labor and maximize their compensation)

Left alone, this results in a lot of the stupidity, and that's why "building culture" is so important - a good company culture transcends this perverse base nature.

What are the specifics of a culture that transcends these organizational hazards? How does it work?

Where I work our internal code names are all Star Wars/Trek or Hitchhiker through the Galaxy. I always push for something like "flowers" or "trees" to no avail.

Be interesting to collect data on how these trends change over time.

Groups of people can communicate more effectively if they agree upon common terminologies and definitions.

"How the AWS team will contribute to Rust's success" why not "How the AWS team contributed to Rust's success".

Why not first do something and then look for applause? A lot can change from now till then.

AWS employs several people who are making ongoing contributions to Rust.

Where are the contributions ? We could not care less. Stop steamrolling and trying to capture all the value of initiatives outside of your conglomerate.

> Niko, for example, plans to continue posting ideas to his babysteps blog before they are fully formed, and he is counting on the Rust community to continue to poke holes in them.

Well, I guess personal notes/braindump counts as contribution now as well. Can I use that for my CV? :D

If your notes look like "Polonius and the case of the hereditary harrop predicate", sure why not.


Niko has an impressive record of both proposals and concrete contributions, FWIW: https://github.com/rust-lang/rust/graphs/contributors https://github.com/rust-lang/rfcs/graphs/contributors

Niko Matsakis is one of the core contributors behind important Rust features like borrowck

If you want to be patronizing, at least be correct

You probably could if you had a record of accomplishment and Rust leadership like Niko does! (And if you did I would assume your personal notes / braindump would be worth reading).

I didn't realize he was _that_ Niko. Apologies and thank you for spelling it out!

#2 committer of all time to the Rust project.

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