<div dir="ltr"><div>BTW, speaking of training: Jason's and my book, "Programming Rust" will be available on paper from O'Reilly on August 29th! Steve Klabnik's book with No Starch Press is coming out soon as well, but I don't know the details there.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 17, 2017 at 12:43 PM, Ted Mielczarek <span dir="ltr"><<a href="mailto:ted@mielczarek.org" target="_blank">ted@mielczarek.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Nick,<br>
<br>
Thanks for kicking off this discussion! I felt like a broken record<br>
talking to people about this in SF. From my perspective Rust is our<br>
single-biggest competitive advantage for shipping Firefox, and every<br>
time we choose C++ over Rust we throw that away. We know the costs of<br>
shipping complicated C++ code: countless hours of engineering time spent<br>
chasing down hard-to-reproduce crashes, exploitable security holes, and<br>
threading issues. Organizationally we need to get to a point where every<br>
engineer has the tools and training they need to make Rust their first<br>
choice for writing code that ships with Firefox.<br>
<span class=""><br>
On Mon, Jul 10, 2017, at 09:15 PM, Bobby Holley wrote:<br>
> I think this is pretty uncontroversial. The high-level strategic decision<br>
> to bet on Rust has already been made, and the cost of depending on the<br>
> language is already sunk. Now that we're past that point, I haven't heard<br>
> anyone arguing why we shouldn't opt for memory safety when writing new<br>
> standalone code. If there are people out there who disagree and think<br>
> they<br>
> have the arguments/clout/allies to make the case, please speak up.<br>
<br>
</span>From my anecdotal experiences, I've heard two similar refrains:<br>
1) "I haven't learned Rust well enough to feel confident choosing it for<br>
this code."<br>
2) "I don't want to spend time learning Rust that I could be spending<br>
just writing the code in C++."<br>
<br>
I believe that every developer that writes C++ at Mozilla should be<br>
given access to enough Rust training and work hours to spend learning it<br>
beyond the training so that we can eliminate case #1. With the Rust<br>
training sessions at prior All-Hands and self-motivated learning, I<br>
think we've pretty well saturated the group of early adopters. These<br>
people are actively writing new Rust code. We need to at least get the<br>
people that want to learn Rust but don't feel like they've had time to<br>
that same place.<br>
<br>
For case #2, there will always be people that don't want to learn new<br>
languages, and I'm sympathetic to their perspective. Learning Rust well<br>
does take a large investment of time. I don't know that I would go down<br>
the road of making Rust training mandatory (yet), but we are quickly<br>
going to hit a point where "I don't feel like learning Rust" is not<br>
going to cut it anymore. I would hope that by that point we will have<br>
trained everyone well enough that case #2 no longer exists, but if not<br>
we will have to make harder choices.<br>
<span class=""><br>
<br>
> The tradeoffs come when the code is less standalone, and we need to weigh<br>
> the integration costs. This gets into questions like whether/how Rust<br>
> code<br>
> should integrate into the cycle collector or into JS object reflection,<br>
> which is very much a technical decision that should be made by experts. I<br>
> have a decent sense of who some of those experts might be, and would like<br>
> to find the most lightweight mechanism for them to steer this ship.<br>
<br>
</span>We definitely need to figure out an ergonomic solution for writing core<br>
DOM components in Rust, but I agree that this needs a fair bit of work<br>
to be feasible. Most of the situations I've seen recently were not that<br>
tightly integrated into Gecko.<br>
<span class="HOEnZb"><font color="#888888"><br>
-Ted<br>
</font></span><div class="HOEnZb"><div class="h5">______________________________<wbr>_________________<br>
dev-platform mailing list<br>
<a href="mailto:dev-platform@lists.mozilla.org">dev-platform@lists.mozilla.org</a><br>
<a href="https://lists.mozilla.org/listinfo/dev-platform" rel="noreferrer" target="_blank">https://lists.mozilla.org/<wbr>listinfo/dev-platform</a><br>
</div></div></blockquote></div><br></div>