
Increasing Rust’s Reach - darwhy
http://blog.rust-lang.org/2017/06/27/Increasing-Rusts-Reach.html
======
Normal_gaussian
> But there’s a bit of a bootstrapping problem here: if we want to reach new
> people, we can’t do it by relying solely on the skills and perspectives of
> our existing community.

Cool, so they are looking to make Rust more useful by involving people with
different perspectives.

> we would especially love insights from include women (cis & trans),
> nonbinary folks, people of color

Oh. Well this is weird. They seem like awfully indirect measurements of
relevant skills and perspective _Edit: explained in a
comment[https://news.ycombinator.com/item?id=14657507](https://news.ycombinator.com/item?id=14657507)
by wll_

> non-native English speakers, people who learned programming later in life
> (older, or only in college, or at a bootcamp as part of a midlife career
> change), people with disabilities, or people who have different learning
> styles.

Ah yes. This is what I expected to see.

I'm loving what Rust is currently bringing and is going to bring to the world,
I want them to be really approachable, and I want it to be used in new ways -
but it really reads like they are playing with going the way of Github.

EDIT: See earlier edit.

~~~
wll
> _Oh. Well this is weird. They seem like awfully indirect measurements of
> relevant skills and perspective_

The effort to reach underrepresented demographics seems to stem from last
year's survey results [0]. Increased diversity could lead to new project-wide
perspectives and overall community enrichment, if solely due to life-
experience-based heterogeneity.

[0] [https://blog.rust-lang.org/2016/06/30/State-of-Rust-
Survey-2...](https://blog.rust-lang.org/2016/06/30/State-of-Rust-
Survey-2016.html#survey-demographics)

~~~
DaiPlusPlus
I see it as a way of investigating possible unconscious bias or even hostility
towards minorities in the Rust developer community - from easily fixable
things such as male-bias in documentation (e.g. examples using male pronouns
disproportionately) - to vitriolic sexist and other abuse in chat and forum
groups.

Fortunately the Rust community isn't GamerGate, but if we can eliminate those
attitudes sooner, then that's in Rust's long-term interests.

~~~
collyw
Considering the vast majority of programmers are male, does it really matter
if we use male pronouns. What does changing them actually solve? Are women
really put off of computing because of that? It all seems so trivial.

~~~
emilk
Many small trivial things can add up. Also, if we cater to the status quo
("the vast majority of programmers"), the status quo is less likely to change.

~~~
teacup50
Why is the status quo a problem?

I'm not saying it isn't; I don't know. I just don't see why should we assume
that it _is_.

~~~
nickez
Because you don't benefit from half of your population if you only teach men
to code. The same applies to other minorities. Of course it is essential that
we can get everyone to code so that everyone can contribute in the future when
a lot of work will require coding skills.

~~~
barrkel
I don't know any good programmers who were taught.

~~~
jhasse
I would rather say: I don't know any good programmers who weren't self-taught.

------
SagelyGuru
I am really not interested in your current US obsession with identity
politics.

I care for a well designed, well performing language, which Rust appears to
be.

I could not care less about what is the colour of people writing it, their
sexual orientations, or how well represented they all are. It may seem
relevant to you but it certainly is not to me.

I don't even know what cis women are or are supposed to be. Are they good
designers and programmers?

~~~
vesak
>I could not care less about what is the colour of people writing it, their
sexual orientations, or how well represented they all are. It may seem
relevant to you but it certainly is not to me.

Well, you can certainly ignore all that and just use the language. Nothing
forces you to do these things, they're just forcing _themselves_ to do these
things.

~~~
humanrebar
It's a small faction of people that self identify as cissomething. Much of
modern cultural discussions _are_ about language: what is "marriage" for
instance, what does "gender" mean, what is "racist", what is "privilege".
Asking people to give up and use someone else's language is unfair. In
different ways respectable thinkers like Orwell and Chomsky say language is
very important.

And I think the position being espoused but misunderstood is that people would
_like_ to take different approaches to promoting diversity (perhaps by being
personally inclusive and politically neutral) but these sorts of codes of
conduct are not conducive to those approach. It's not fair to say this is
_the_ way to improve the situation. Or that the situation _can_ be improved
this way at all. It may be shocking to people comfortable in American coastal
culture, but this sort of thing is controversial (look at this thread!) and
unnecessarily combative to people from other cultures.

Furthermore, it's _not_ inclusive to many people because it takes a specific
viewpoint in many complicated but intentional ways.

------
johnhattan
Is Rust gaining any traction for system-level programming? When I heard that
there was now a memory-safe thread-safe language without a GC, my immediate
thought was "Every OS from now on should be written in this thing".

~~~
kosinus
Slow and steady, certainly this won't happen overnight.

There is Redox, for the full-on ambitious plan to write an OS from scratch:
[https://www.redox-os.org](https://www.redox-os.org)

Then there's the Rust rewrite of coreutils:
[https://github.com/uutils/coreutils](https://github.com/uutils/coreutils)

Someone also did the research on building a Linux kernel module in Rust,
though it seems like quite the hassle:
[https://github.com/tsgates/rust.ko](https://github.com/tsgates/rust.ko)

~~~
joshmarlow
Do you know of any discussion of rewriting parts of existing micro-kernels in
Rust? There's lots of nuts and bolts details I don't know, but it seems like
having OS components as separate services/processes would provide a nice way
to start phasing out C/C++ and phasing in Rust.

~~~
kosinus
I haven't seen anything like that, but I also rarely see microkernels in the
wild. I'm not even sure if Rust runs on MINIX at all.

~~~
steveklabnik
You can do Rust + rumprun today, or at least, it worked in the past.

~~~
im_down_w_otp
I can confirm that this works, with some effort, for some Rust programs
packaged as rumprun unikernels targeting seL4.

------
fhoffa
Data wise: According to the latest Stack Overflow survey, Rust is the language
that women are the least interested in.

Any thoughts on why?

    
    
      Row	WantWorkLanguage	responses	perc_female	 
      1	R	2477	11.87%	 
      2	Ruby	3743	11.03%	 
      3	Java	9409	8.42%	 
      4	Python	11878	8.22%	 
      5	SQL	10646	7.81%	 
      6	Scala	2972	7.64%	 
      7	JS	15451	7.37%	 
      8	Swift	4282	7.36%	 
      9	PHP	5039	7.22%	 
      10	C#	9640	6.21%	 
      11	C++	7178	5.20%	 
      12	Go	5500	4.87%	 
      13	C	4536	4.83%	 
      14	TypeScr	5435	4.51%	 
      15	Haskell	2208	4.35%	 
      16	Rust	2604	3.38%
    

(related thread:
[https://twitter.com/felipehoffa/status/879806078866776064](https://twitter.com/felipehoffa/status/879806078866776064))

    
    
      SELECT WantWorkLanguage, COUNT(*) responses, FORMAT('%.2f%%', 100*COUNTIF(v='Female')/COUNT(*)) perc_female
      FROM (
        SELECT SPLIT(WantWorkLanguage , '; ')  WantWorkLanguage, Gender v
        FROM `fh-bigquery.stackoverflow.survey_results_public_2017`
        WHERE WantWorkLanguage!='NA' AND Gender!='NA'
      ), UNNEST(WantWorkLanguage) WantWorkLanguage 
      GROUP BY 1
      HAVING responses>2000
      ORDER BY COUNTIF(v='Female')/COUNT(*) DESC

~~~
saghm
Without a comparison to men, this is pretty hard to make judgements based on.
For all I know from that data, there might be an even lower interest level
among men for Rust.

~~~
fhoffa
The % is indeed a comparison to men.

(Of all respondents interested in Rust, only 3% are women. Compare with R 12%,
and Ruby 11%)

~~~
saghm
Ah, okay, I didn't realize that; that changes my view on it quite a bit.

------
Animats
Focus on getting the printed books into bookstores and onto Amazon. Most are
still stuck at "pre-order". Get someone who is _not_ on the developer team or
a fanboy to write a good Rust book. (Yes, there's "Rust Essentials", but from
Amazon reviews, it's a thrown-together set of introductory material that just
refers you back to the Rust web site.)

Go had this problem in the early days. The early materials were totally
uncritical, or in denial of, of Go's weaknesses. Things have improved; now the
problems and limitations are better understood. Now people understand that
shared data should be protected by ordinary mutexes, rather than using message
passing of dummy messages as a locking system. Newer materials reflect this.

~~~
steveklabnik
There are two that should hit print + Amazon this year,
[https://www.nostarch.com/Rust](https://www.nostarch.com/Rust) (mine) and
[http://shop.oreilly.com/product/0636920040385.do](http://shop.oreilly.com/product/0636920040385.do)

------
throwasehasdwi
Are you implying that Rust should be the first programming language of these
minority groups? Given the complexity of low level programming that doesn't
sound like a good idea. If that is not your plan then this is a pointless
exercise. The cohort of existing programmers is highly biased in these same
ways. The bigger Rust gets the more difficult it will be to maintain anything
far from the average. If rust becomes as popular as say Java or C++ it will be
statistically impossible to maintain anything but the average within the
community.

~~~
steveklabnik
> Are you implying that Rust should be the first programming language of these
> minority groups?

No.

~~~
throwasehasdwi
Did you read the rest? I appreciate a reply from the core team but you must
understand your potential audience of Rust users is a highly gender/racial
biased cohort. If Rust becomes popular it will become near impossible to
deviate from the mean unless you engage in affirmative action by selectively
removing community members in the majority.

Edit: I'm not against these kinds of initiatives at all, I just don't think
it's realistic to apply such goals to a free-form group of programming
language users.

~~~
steveklabnik
> Did you read the rest?

I did, but I disagree. You're making a large assumption, which is that the
group will follow the demographic average. This is not true; individual
programming languages' demographics differ from the overall population.

And there's certainly no desire to "remove" anyone, selectively or not. It's
about growing the pie, not placing artificial limits.

Also, this initiative is not about people new to programming overall, it's
about experienced people who may not know Rust or haven't found a way to get
involved with Rust as a project.

------
tyingq
Improving the experience on Windows might increase reach as well. Reading this
thread, there appear to be some issues:
[https://news.ycombinator.com/item?id=13974238](https://news.ycombinator.com/item?id=13974238)

Specifically, openssl dependencies, more win32 bindings, and better official
docs on how to get it working.

~~~
steveklabnik
This is very much on our radar; I use Windows as my primary OS now, even.

------
currymj
I am really stoked to see Tango on here. I maintain that literate programming
is actually a good idea. The nice thing about Tango is you can work either on
the code file or the markdown file and it will automatically synchronize them,
and it integrates with cargo. I would love to see Tango be mature and widely
used.

~~~
methodin
Just got into rust a couple weeks ago - thanks for pointing out Tango. Had no
idea what it was until it finally clicked. Pretty awesome!

------
bsder
Embedded ... embedded ... embedded.

Getting Rust to the point where it is _better_ than C on embedded systems is
both feasible (C on embedded sucks on a good day) and would pay off hugely.

~~~
steveklabnik
This is a very active area of work.

~~~
bsder
I have been tracking it quite strongly. My big problem currently isn't using
it; my big problem is that others can't read it.

So, a work problem to use it needs to be 1) resource constrained and 2)
limited programming scope so only I have to deal with it. 1) is easy. 2), not
so much.

------
nickpsecurity
"We have a team of Rust community leaders to pair you with. This group isn’t
particularly diverse; this is where the Rust community is right now. "

That's where it's been since the beginning. All the politics, Coraline's Code
of Conduct, moderation, talk of "inclusiveness," and so on with "social
justice" advocates in or leading some teams. You'd think the teams themselves
would be diverse as heck with the community following. Yet, those in control
from the beginning up to now are mostly young, white males on almost every
team in the pictures.

[https://www.rust-lang.org/en-US/team.html](https://www.rust-lang.org/en-
US/team.html)

Reminds me a bit of the Huffington Post pic on Twitter showing a bunch of
mostly white women running a company whose writers talk lots about how
companies should be inclusive and/or diverse without actually practicing it.

[https://www.reddit.com/r/facepalm/comments/4kn6ms/huffington...](https://www.reddit.com/r/facepalm/comments/4kn6ms/huffington_post_tweet_fail/)

Both showed structural racism, sexism, and age discrimination exist at the
management (esp hiring) level. No surprise that the resulting community wasn't
diverse enough in practice when those leading it weren't. One tends to follow
the other. There's a bootstrapping requirement of sorts where having internal
diversity helps ensure it in the areas they act on (eg communities). It's not
there... probably intentionally as some other organizations actively sought
out different kinds of people in hiring with either quotas or blind auditions.
I could see specific positions in language or compiler teams getting white
males or something narrow due to prevalence among top teams in CompSci.
However, many jobs on this list don't take a genius so much as someone willing
to learn and work. More typical kind of work that both majority and minority
talent exists and can handle.

Like in the tweeted reply to Huffington, I suggest the Rust team can begin
improving diversity by looking to see if there's a handful of black people in
their geographical area or working remotely if allowed that are capable of
writing code, writing docs, talking to people online about the language, doing
CI, moderating away mean posts, and other things I see in team descriptions. I
swear I've seen and met such people doing such jobs in the past in person and
online. _If_ they're in Mountain View with Mozilla, Wikipedia tells me that
area is over 50% non-white with lots of Latinos and Asians. A lot of women
live out there, too. If I'm wrong about the structural discrimination, then
none of them can code, write, admin, or assist people and/or they're not in
the pipeline somehow with hiring having no way to look for them. Outside the
small amount on the Rust team already that are minority members. Call me
skeptical that the talent for average work didn't exist or was too hard to
find.

~~~
steveklabnik
To be clear, your last paragraph (EDIT: now removed) weirdly conflates Rust
with Mozilla; only one person on Rust teams live in Mountain View, many
(most?) people on the teams are not Mozilla employees, and this isn't about
Mozilla hiring people.

Your observation about the current makeup is in fact what we would like to
change, and your suggestion to reach out to people is what this post is
intended to do.

~~~
nickpsecurity
The first bit is useful information. It means you had a ton of minority talent
to draw on instead of one location and company. The second means you all
talked about this stuff since the beginning without actually doing it or not
many on team cared as much. That was the point of the critique. I'll throw out
some suggestions, though, instead of just critiquing as my own principles are
about helping a project that's doing important good work. Regardless of
diversity issues, I still congratulate you people on that and hope you
continue to improve across the board. :)

There's two easy ones that you can do on the team side and _maybe_ in some
form on the community side. You and the others are simply more knowledgeable
at working with communities so I leave it to you to find what applies. Here
they are:

1\. Supply side. Talk to people doing these bootcamps, conferences, and so on
focusing on minorities in general or specific minority groups. They probably
know people in the demographic who can code well. Send people there to talk
about Rust like you seem to do in general at conferences and such. Also,
invite all in these groups to send in references or Githubs relevant to
specific jobs. Give them resources to learn it. Get those that want to get a
job or place in the community to get on the forums for help learning and/or
submitting code/docs. Encourage, but don't require, them to do it _blind_
under an alias with no info on race/age/gender. Without biases limiting them
and with increasing supply, the percentage of minority talent should increase
naturally.

2\. Quota side. Do something like that plus ads for talent in general. Get a
supply of people from many backgrounds with some way to evaluate whether they
are capable of performing the role. They all "earned" their place rather than
just token hires since each seems to be a decent or good hire. The "best" of
all programmers is pretty subjective concept with strong possibility of bias
anyway. Then, do quotas for the hiring slots with those brought in chosen
randomly with right spread or best rated of each group. A lot of the local
businesses out here are, despite the South's racial issues, quote diverse even
up to a layer or two of management by just (a) hiring anyone who might be able
to do the job, (b) giving them some training/coaching, and (c) keeping those
that perform well. Works wonders but I mention other things first since
there's few jobs to go around at high cost on your end.

Have fun with those.

EDIT: Fix two deficiencies at top I saw.

~~~
steveklabnik
> The second means you all talked about this stuff since the beginning without
> actually doing it or not many on team cared as much.

This is _extremely_ not true. We have actively cared about this for a long
time, and we've been doing work towards it basically forever, with some
progress. This is the latest effort. There is no silver bullet.

~~~
nickpsecurity
All you'd have to do is get a large list of people in minorities who did work
similar to each of the jobs you'd need to do. At least a handful for each one
but preferably more if you had time. Then, send them detailed offers with
follow-up interviews to see if they could perform. You'd have more of them on
your team afterward.

Did you all do that? And do you have any data on it so interested outsiders
can see what caused the failures and how to prevent that in the future?

~~~
carols10cents
Based on your use of the words jobs, offers, interviews, etc it sounds like
you're assuming that being on a Rust team is a paid job. This is not the case.
Mozilla indeed employs a lot of the people on the teams, but I have my own
company, for example. I do not get paid because of my membership on the teams.
And there are people who work on Rust at Mozilla who are not on the teams;
these are a disjoint set.

~~~
nickpsecurity
That's indeed news to me. The press releases had me assuming otherwise. I
appreciate you and Steve telling me so I can get better accuracy in future
conversations. What's the split of paid people to volunteers on the page I
linked? Especially in compiler, language, library, and community teams?

~~~
steveklabnik
Out of almost 60 distinct people, roughly 15 are employed by Mozilla by my
quick count. It gets a bit fuzzy because some people have done things like
been an intern, did a few months on contract, or something else, but that's
the current count.

~~~
nickpsecurity
Well, it's cool you have so many volunteers. Also, the lack of diversity isn't
as bad as it initially appeared if we're including volunteers. There could be
bias but donating time/money for good things must be a good thing by default.
:) The critiques would only still apply on hiring level if the 15 were mostly
white males in circumstances where more minorities could've been hired. Any
suggestions or brainstorming would also still apply since they address the
supply or acceptance side rather than just Rust specifically. It's just one
instance where the techniques can benefit.

------
bushin
Huh, I thought the Rust team includes front-enders and how Rust websites look
is a purely stylistic choice.

