Skip to content

Commit

Permalink
Publish bonus_6.
Browse files Browse the repository at this point in the history
  • Loading branch information
chriskrycho committed Aug 20, 2016
1 parent f11b913 commit 2813604
Show file tree
Hide file tree
Showing 4 changed files with 338 additions and 2 deletions.
73 changes: 73 additions & 0 deletions docs/bonus-6-script.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# It doesn't need to be sexy

## Intro

Hello, I'm Chris Krycho, and this is the New Rustacean podcast---a show about learning the Rust programming language. This is *Bonus episode 6: It doesn't need to be sexy.*

## News and follow-up

- Aaron Turon and Alex Crichton published their new `futures-rs` crate, which provides some low-level primitives for a concept variously called *futures*, *promises*, or *delayed* or *deferred* values. I'll link the crate in the show notes; it has some great documentation as well as being what looks to be a pretty solid implementation. I'll come back around and devote an episode to futures in the future. This is a huge thing for the ecosystem, and part of what makes it great is that it's not part of the language, but built on top of it---the language's core primitves expose everything required to do it and do it *well*. This will open a *lot* of doors for higher-level interfaces in lots of other libraries.

- Closely related, Carl Lerche, the author of the Mio low-level I/O Rust library, recently published Tokio, a network application framework, which takes advantage of `futures` directly.

- I just bumped into a project called Shadercat, by Claudia Doppioslash, who's already decently well-known for her work helping teach people about functional programming---but in this case, she's looking at doing graphics program with Unity and Rust. If those are interests of yours, you should definitely subscribe to the blog, which I'll link in the show notes.

- _The Rust Programming Language_ is now a co-authored work by Steve Klabnik and Carol Nichols, who co-founded Integer32, the first Rust consultancy (which I mentioned a few episodes back).

- Speaking of *writing* projects, keep your eyes open; I have a Rust-related writing project coming your way later this fall, which I'll discuss in more detail once it's out!

Now, for today's discussion.

## What to build

Over the past few months, as I've watched and participated in the Rust community, I've noticed a pattern (and I include myself in it): we glorify the compiler team and work. A lot of the focus in the community is on the language core itself. And this is a problem.

Now, I get this: like I said, I've been guilty of that myself, right down to the kinds of things I've focused on in my "News" sections. The language is *cool*, and the team working on designing it and tweaking it is very talented. More than that, having a language moving forward at such an active pace is something fairly novel. To the best of my knowledge, there is nothing else quite like the pace of post-1.0 Rust development, where a language is simultaneously stable *and* improving its capabilities rapidly, making it better at solving many problems and capable of solving new ones. It's *exciting*.

It's especially tempting because we can jump in and participate in helping improve the language itself---not an experience most of us have had in other language communities, even really great ones. There are a lot of upsides to just how open the Rust development process is, and this is one of them.

But.

*If* we want Rust to really flourish and succeed, we need to look more broadly and choose things besides the compiler to focus our attention on, and to lavish our praise on. And that's a two-fold change:

1. We need to keep our eyes open for other significant open-source projects in the community, and chip in on those.

2. We need to look around and note all the *other* things there are to work on, including the small ones, and buckle down and do those.

Let's take those in turn.

### Filling major gaps

First, on filling big gaps: There are a bunch of projects in a fairly nascent state which could make a *big* difference in how useful Rust is and how easy it is for companies to adopt it. And it's worth understanding that one of the biggest things that helps languages be more than an exciting flash in the pan is getting them used in "industry" settings. You're starting to see some of this with Rust already---companies from Dropbox to Academia.edu and many others.

But for Rust to go from *niche* to *everywhere*, there are a lot of pieces of "infrastructure" that need to be built outside the language itself. *Big* infrastructure pieces. We need both the low-level infrastructure pieces like mio and the new futures library I mentioned at the top of the show, and some higher-level abstractions sitting on top of those to make it easier for people to build e.g. web services easily. {>> TODO: other gaps <<}

### Filling smaller gaps

What about all the little pieces? The community actually has a good start on this. Lots of us have built little exploratory projects---another Rust binding to some C library, a part of an XML parser, etc.---and those are *great* for little learning projects, but we also need to take a lot of those and turn them into production-level tools that are at a level that can be used in larger projects.

Now, don't be discouraged: if you've written that kind of small project, and you're thinking, "No way is this ready for some big company to depend on; I'm still just learning!" that's okay. No one should be sad about learning and learning in public, and no one should feel ashamed of their projects. *All* I mean is that as we move from the "just trying this out" phase to the phase where we feel reasonably competent with the language, we can start looking around and thinking about how we can turn "my first XML parser" into a *great* XML parser---perhaps by collaborating with several others who've done the same, and looking at some of the state-of-the-art options out there.

Those kinds of small projects aren't that *sexy*, but they're incredibly important. In many ways, given a sufficiently decent lanaguage *foundation*, they're actually *more* important than anything else that the language might do. If you don't believe me, look at JavaScript: the language has a lot of issues in its design, and there are well-known problems with the Node.js ecosystem and tooling. I *like* JavaScript, but the amount of time I've spent chasing down something which broke five layers deep in an npm dependency is infuriating.

But none of that matters that much, because there is also a vibrant community trying to solve every problem imaginable---sometimes several times over in different ways, which causes its own set of problems! And the result is that, whatever the language's warts and whatever the weaknesses of the tools, the Node.js ecosystem is flourishing. And a huge part of that is simply people's willingness to build small things which *aren't* glorious, which aren't at the very center of the community.

A willingness to embrace that idea---that it doesn't have to be sexy for it to matter and be a valuable contribution---is huge. We need that in spades for Rust to become all it can. So: go write an incredible XML parser (or, better, help make one of the two that already exists more robust and capable). And then maintain it: fix bugs when they're found, keep on top of pull requests as they come in, and generally try to make it useful to people.

There isn't a lot of glory in that. But it's *extremely* valuable.

And you know what? A lot of Rustaceans are out there doing just that. I saw news come by this week about everything from cryptography to building Alexa skills for the Amazon Echo to a library for getting input from gamepads and controllers. This is fantastic. So, number one: keep it up. And number two: let's work to celebrate those kinds of things just as loudly as the core language itself. They're not in competition. It's the combination of the language and the things we build with it that makes this all worth doing.

## Outro -- Sponsors and Following

Thanks as always to the sponsors who help make the show possible! This month, the sponsors included Chris Palmer, Daniel Collin, Eric Fulmer, Jared Smith, Raph Levien, Stephen Murawksi, and Vesa Khailavirta for sponsoring the show this month! You can see a full list of sponsors in the show notes, and the top tier of sponsors on a dedicated page on the website as well.

If you're interested in sponsoring the show, you can set up recurring contributions at Patreon.com/newrustacean, or one-off contributions at a variety of other services listed at the show website: newrustacean.com.

There you will also find links to the news items from the top of the show, and code samples illustrating referencing and dereferencing data.

You can also follow the show on Twitter \@newrustacean, or follow me there \@chriskrycho. If you enjoyed the show, please help *others* find the show by rating and reviewing it on iTunes, recommending it in another podcast directory, sharing it online, or just telling a friend!

Also, please do respond on social media, in the threads for the episode on the Rust user forum or on Reddit, or via email at [email protected]. I love hearing from you!

Until next time, happy coding!
156 changes: 154 additions & 2 deletions resources/feed.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
<copyright>2015 Chris Krycho</copyright>
<managingEditor>[email protected] (Chris Krycho)</managingEditor>
<webMaster>[email protected] (Chris Krycho)</webMaster>
<pubDate>Mon, 08 Aug 2016 16:37:09 -0400</pubDate>
<lastBuildDate>Mon, 08 Aug 2016 16:37:10 -0400</lastBuildDate>
<pubDate>Sat, 20 Aug 2016 12:18:12 -0400</pubDate>
<lastBuildDate>Sat, 20 Aug 2016 12:18:13 -0400</lastBuildDate>
<image>
<url>http://newrustacean.com/podcast.png</url>
<title>New Rustacean</title>
Expand All @@ -38,6 +38,158 @@
<itunes:category text="Education">
<itunes:category text="Training"/>
</itunes:category>
<item>
<title>Bonus 6: It doesn‘t have to be sexy</title>
<link>http://newrustacean.com/show_notes/bonus/_6/</link>
<description><![CDATA[<p>Building (and celebrating) all the little, not-so-glorious pieces of the Rust ecosystem.</p>
<h2 id="notes">Notes</h2>
<p>We love the Rust compiler team. But there’s more to the Rust community, and more required for Rust to be as great as it can be, than just the language itself. We need to celebrate other libraries, and even the small ones, just as much (and maybe more) than changes to the language. We need to dig in and work on building the <em>whole</em> ecosystem. (The good news is, we are!)</p>
<h2 id="links">Links</h2>
<ul>
<li><a href="https://github.com/alexcrichton/futures-rs"><code>futures-rs</code></a>
<ul>
<li><a href="http://aturon.github.io/blog/2016/08/11/futures/">“Zero-cost futures in Rust”</a></li>
</ul></li>
<li><a href="https://github.com/tokio-rs/tokio">Tokio</a>
<ul>
<li><a href="https://medium.com/@carllerche/announcing-tokio-df6bb4ddb34#.c9pqf9wyx">“Announcing Tokio”</a> (Carl Lerche on Medium)</li>
</ul></li>
<li><a href="http://words.steveklabnik.com/whats-new-with-the-rust-programming-language">“What’s new with ‘The Rust Programming Language’?”</a></li>
<li><a href="https://www.rust-lang.org/en-US/friends.html">Friends of Rust</a></li>
<li><a href="https://github.com/briansmith/ring"><code>ring</code></a> – Safe, fast, small crypto using Rust</li>
<li><a href="https://github.com/neil-lobracco/alexa-rs"><code>alexa-rs</code></a> – Rust library for building Alexa skills</li>
<li><a href="https://gitlab.com/Arvamer/gilrs"><code>gilrs</code></a> – Game Input Library for Rust</li>
</ul>
<h2 id="sponsors">Sponsors</h2>
<ul>
<li>Aleksey Pirogov</li>
<li>Cameron Mochrie</li>
<li>Cass Costello</li>
<li><a href="http://home.red-oxide.org/">Chris Palmer</a></li>
<li><a href="twitter.com/daniel_collin">Daniel Collin</a></li>
<li><a href="https://twitter.com/derekmorr">Derek Morr</a></li>
<li>Doug Reeves</li>
<li>Eric Fulmer</li>
<li>Hamza Sheikh</li>
<li><a href="https://github.com/Limeth">Jakub “Limeth” Hlusička</a></li>
<li><a href="http://twitter.com/jaredthecoder">Jared Smith</a></li>
<li>Keith Gray</li>
<li>Lachlan Collins</li>
<li>Leif Arne Storset</li>
<li>Luca Schmid</li>
<li>Micael Bergeron</li>
<li><a href="https://pascalhertleif.de/">Pascal Hertleif</a></li>
<li>Ralph Giles (“rillian”)</li>
<li>Ralph “FriarTech” Loizzo</li>
<li>Raph Levien</li>
<li>reddraggone9</li>
<li>Ryan Ollos</li>
<li>Steven Murawksi</li>
<li>Vesa Kaihlavirta</li>
<li><a href="http://willroe.me">William Roe</a></li>
</ul>
<p>(Thanks to the couple people donating who opted out of the reward tier, as well. You know who you are!)</p>
<h3 id="become-a-sponsor">Become a sponsor</h3>
<ul>
<li><a href="https://www.patreon.com/newrustacean">Patreon</a></li>
<li><a href="https://venmo.com/chriskrycho">Venmo</a></li>
<li><a href="https://www.dwolla.com/hub/chriskrycho">Dwolla</a></li>
<li><a href="https://cash.me/$chriskrycho">Cash.me</a></li>
<li><a href="https://flattr.com/profile/chriskrycho">Flattr</a></li>
<li><a href="https://paypal.me/chriskrycho">PayPal.me</a></li>
</ul>
<h2 id="contact">Contact</h2>
<ul>
<li>New Rustacean:
<ul>
<li>Twitter: <a href="https://www.twitter.com/newrustacean">@newrustacean</a></li>
<li>Email: <a href="mailto:[email protected]">[email protected]</a></li>
</ul></li>
<li>Chris Krycho
<ul>
<li>GitHub: <a href="https://github.com/chriskrycho">chriskrycho</a></li>
<li>Twitter: <a href="https://www.twitter.com/chriskrycho">@chriskrycho</a></li>
</ul></li>
</ul>
]]></description>
<pubDate>Sat, 20 Aug 2016 12:15:43 -0400</pubDate>
<enclosure url="http://www.podtrac.com/pts/redirect.mp3/cdn.newrustacean.com/bonus_6.mp3" length="8275634" type="audio/mpeg"/>
<guid isPermaLink="false">2B30AB4B-8971-4576-BAD0-953A078B51A3</guid>
<itunes:author>Chris Krycho</itunes:author>
<itunes:summary><![CDATA[Building (and celebrating) all the little, not-so-glorious pieces of the Rust ecosystem.
Notes
We love the Rust compiler team. But there’s more to the Rust community, and more required for Rust to be as great as it can be, than just the language itself. We need to celebrate other libraries, and even the small ones, just as much (and maybe more) than changes to the language. We need to dig in and work on building the _whole_ ecosystem. (The good news is, we are!)
Links
- futures-rs
- “Zero-cost futures in Rust”
- Tokio
- “Announcing Tokio” (Carl Lerche on Medium)
- “What’s new with ‘The Rust Programming Language’?”
- Friends of Rust
- ring – Safe, fast, small crypto using Rust
- alexa-rs – Rust library for building Alexa skills
- gilrs – Game Input Library for Rust
Sponsors
- Aleksey Pirogov
- Cameron Mochrie
- Cass Costello
- Chris Palmer
- Daniel Collin
- Derek Morr
- Doug Reeves
- Eric Fulmer
- Hamza Sheikh
- Jakub “Limeth” Hlusička
- Jared Smith
- Keith Gray
- Lachlan Collins
- Leif Arne Storset
- Luca Schmid
- Micael Bergeron
- Pascal Hertleif
- Ralph Giles (“rillian”)
- Ralph “FriarTech” Loizzo
- Raph Levien
- reddraggone9
- Ryan Ollos
- Steven Murawksi
- Vesa Kaihlavirta
- William Roe
(Thanks to the couple people donating who opted out of the reward tier,
as well. You know who you are!)
Become a sponsor
- Patreon.com/newrustacean
- Venmo.com/chriskrycho
- Dwolla.com/hub/chriskrycho
- Cash.me/$chriskrycho
- Flattr.com/chriskrycho
- PayPal.me/chriskrycho
Contact
- New Rustacean:
- Twitter: @newrustacean
- Email: [email protected]
- Chris Krycho
- GitHub: chriskrycho
- Twitter: @chriskrycho
]]></itunes:summary>
<itunes:duration>11:27</itunes:duration>
</item>
<item>
<title>e017: Point me where I need to go</title>
<link>http://newrustacean.com/show_notes/e017/</link>
Expand Down
110 changes: 110 additions & 0 deletions src/bonus/_6.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
//! It doesn't have to be sexy
//!
//! - **Date:** August 20, 2016
//! - **Subject:** Building (and celebrating) all the little, not-so-glorious
//! pieces of the Rust ecosystem.
//! - **Audio:**
//! + [M4A](http://www.podtrac.com/pts/redirect.m4a/cdn.newrustacean.com/bonus_6.m4a)
//! + [MP3](http://www.podtrac.com/pts/redirect.mp3/cdn.newrustacean.com/bonus_6.mp3)
//! + [Ogg](http://www.podtrac.com/pts/redirect.ogg/cdn.newrustacean.com/bonus_6.ogg)
//!
//! <audio title="It doesn't have to be sexy" controls preload=metadata>
//! <source src="http://www.podtrac.com/pts/redirect.m4a/cdn.newrustacean.com/bonus_6.m4a">
//! <source src="http://www.podtrac.com/pts/redirect.mp3/cdn.newrustacean.com/bonus_6.mp3">
//! <source src="http://www.podtrac.com/pts/redirect.ogg/cdn.newrustacean.com/bonus_6.ogg">
//! </audio>
//!
//!
//! Notes
//! -----
//!
//! We love the Rust compiler team. But there's more to the Rust community, and
//! more required for Rust to be as great as it can be, than just the language
//! itself. We need to celebrate other libraries, and even the small ones, just
//! as much (and maybe more) than changes to the language. We need to dig in and
//! work on building the *whole* ecosystem. (The good news is, we are!)
//!
//!
//! Links
//! -----
//!
//! - [`futures-rs`]
//! + ["Zero-cost futures in Rust"][futures-blog]
//! - [Tokio]
//! + ["Announcing Tokio"][tokio-medium] (Carl Lerche on Medium)
//! - ["What's new with 'The Rust Programming Language'?"][trpl]
//! - [Friends of Rust]
//! - [`ring`]: Safe, fast, small crypto using Rust
//! - [`alexa-rs`]: Rust library for building Alexa skills
//! - [`gilrs`]: Game Input Library for Rust
//!
//! [`futures-rs`]: https://github.com/alexcrichton/futures-rs
//! [futures-blog]: http://aturon.github.io/blog/2016/08/11/futures/
//! [Tokio]: https://github.com/tokio-rs/tokio
//! [tokio-medium]: https://medium.com/@carllerche/announcing-tokio-df6bb4ddb34#.c9pqf9wyx
//! [Friends of Rust]: https://www.rust-lang.org/en-US/friends.html
//! [trpl]: http://words.steveklabnik.com/whats-new-with-the-rust-programming-language
//! [`ring`]: https://github.com/briansmith/ring
//! [`alexa-rs`]: https://github.com/neil-lobracco/alexa-rs
//! [`gilrs`]: https://gitlab.com/Arvamer/gilrs
//!
//!
//! Sponsors
//! --------
//!
//! - Aleksey Pirogov
//! - Cameron Mochrie
//! - Cass Costello
//! - [Chris Palmer]
//! - [Daniel Collin]
//! - [Derek Morr]
//! - Doug Reeves
//! - Eric Fulmer
//! - Hamza Sheikh
//! - [Jakub "Limeth" Hlusička]
//! - [Jared Smith]
//! - Keith Gray
//! - Lachlan Collins
//! - Leif Arne Storset
//! - Luca Schmid
//! - Micael Bergeron
//! - [Pascal Hertleif]
//! - Ralph Giles ("rillian")
//! - Ralph "FriarTech" Loizzo
//! - Raph Levien
//! - reddraggone9
//! - Ryan Ollos
//! - Steven Murawksi
//! - Vesa Kaihlavirta
//! - [William Roe]
//!
//! [Chris Palmer]: http://home.red-oxide.org/
//! [Daniel Collin]: twitter.com/daniel_collin
//! [Derek Morr]: https://twitter.com/derekmorr
//! [Jakub "Limeth" Hlusička]: https://github.com/Limeth
//! [Jared Smith]: http://twitter.com/jaredthecoder
//! [Pascal Hertleif]: https://pascalhertleif.de/
//! [William Roe]: http://willroe.me
//!
//! (Thanks to the couple people donating who opted out of the reward tier, as
//! well. You know who you are!)
//!
//! ### Become a sponsor
//!
//! - [Patreon](https://www.patreon.com/newrustacean)
//! - [Venmo](https://venmo.com/chriskrycho)
//! - [Dwolla](https://www.dwolla.com/hub/chriskrycho)
//! - [Cash.me](https://cash.me/$chriskrycho)
//! - [Flattr](https://flattr.com/profile/chriskrycho)
//! - [PayPal.me](https://paypal.me/chriskrycho)
//!
//!
//! Contact
//! -------
//!
//! - New Rustacean:
//! + Twitter: [@newrustacean](https://www.twitter.com/newrustacean)
//! + Email: [[email protected]](mailto:[email protected])
//! - Chris Krycho
//! + GitHub: [chriskrycho](https://github.com/chriskrycho)
//! + Twitter: [@chriskrycho](https://www.twitter.com/chriskrycho)
1 change: 1 addition & 0 deletions src/bonus/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ pub mod _2;
pub mod _3;
pub mod _4;
pub mod _5;
pub mod _6;

0 comments on commit 2813604

Please sign in to comment.