Browse Source

Merge branch 'draft/more-rust' into previews

master
Julio Biason 6 years ago
parent
commit
3dcdc28737
  1. 93
      porque-rust.html

93
porque-rust.html

@ -3,7 +3,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>Por que você deveria aprender Rust</title> <title>Porque você deveria aprender Rust</title>
<meta name="description" content="Por que você deveria aprender Rust"> <meta name="description" content="Por que você deveria aprender Rust">
<meta name="author" content="Julio Biason"> <meta name="author" content="Julio Biason">
@ -74,7 +74,7 @@
<div class="slides"> <div class="slides">
<section> <section>
<section data-background="_images/rust-ferris.png" data-header> <section data-background="_images/rust-ferris.png" data-header>
<h1 class="semi-opaque">Por Que Rust</h1> <h1 class="semi-opaque">Porque Rust</h1>
</section> </section>
</section> </section>
@ -122,7 +122,7 @@
</section> </section>
<section> <section>
<p>Resultado final com performance semelhate ao C...</p> <p>Resultado final com performance semelhante ao C...</p>
<img src="_images/rust-energy.png" alt=""> <img src="_images/rust-energy.png" alt="">
@ -157,6 +157,7 @@
</section> </section>
<section> <section>
<section>
<h2>Imutabilidade por Default</h2> <h2>Imutabilidade por Default</h2>
<aside class="notes"> <aside class="notes">
@ -205,6 +206,10 @@ fn main() {
<aside class="notes"> <aside class="notes">
... a não ser que você transforme sua variável em mutável. ... a não ser que você transforme sua variável em mutável.
Ainda, Rust tem funcionalidades para facilitar
copiar dados de um lado para o outro (como o
"spread operator" em structs).
</aside> </aside>
</section> </section>
</section> </section>
@ -258,7 +263,7 @@ a = String::from("hello");
</section> </section>
<section> <section>
<img src="_images/rust-memory.png" alt="" class="fragment stretch"> <img src="_images/rust-memory.png" alt="" class="stretch">
<aside class="notes"> <aside class="notes">
É mais ou menos isso que Rust "pensa" internamente É mais ou menos isso que Rust "pensa" internamente
@ -437,6 +442,22 @@ presente.abrir()</code></pre>
</aside> </aside>
</section> </section>
<section>
<h2>E GC?</h2>
<p class="fragment">GC não é determinístico.</p>
<aside class="notes">
Um problema com GC é que ele é não determinístico:
uma hora o teu código roda rápido e outro momento
ele fica lento, sem que tu consiga entender o
porque.
Sem GC, a execução do código torna-se determinística e
tu pode ter certeza da velocidade de execução.
</aside>
</section>
<section> <section>
<a href="https://swift.org/blog/swift-5-exclusivity/">Swift 5 Exclusivity Enforcement</a> <a href="https://swift.org/blog/swift-5-exclusivity/">Swift 5 Exclusivity Enforcement</a>
@ -658,6 +679,8 @@ OK(())
<section> <section>
<section> <section>
<h2>Macros</h2> <h2>Macros</h2>
<small class="fragment">?</small>
</section> </section>
</section> </section>
@ -665,6 +688,50 @@ OK(())
<section> <section>
<h2>Traits/Generics</h2> <h2>Traits/Generics</h2>
</section> </section>
<section>
<pre><code class="hljs rust" data-trim>
enum Result&lt;T, E&gt; {
Ok(T),
Err(E),
}
</code></pre>
</section>
<section>
<pre><code class="hljs rust" data-trim>
trait Summary {
fn summarize(&amp;self) -&gt; String;
}
</code></pre>
</section>
<section>
<pre><code class="hljs rust" data-trim>
struct Super {
phrase: String
}
impl Summary for Super {
fn summarize(&amp;self) -&gt; String {
self.phrase
.split_whitespace()
.map(|word| word.chars().nth(0).unwrap())
.collect();
}
}
</code></pre>
</section>
<section>
<pre><code class="hljs rust" data-trim>
fn get_summary(summarizable: T) -&gt; String
where T: Summary
{
...
}
</code></pre>
</section>
</section> </section>
<section> <section>
@ -701,6 +768,24 @@ OK(())
</section> </section>
</section> </section>
<section>
<section>
<h2>Falando em WASM...</h2>
</section>
<section>
<h2>WASM</h2>
<p><a href="https://rustwasm.github.io/wasm-pack/installer/">wasm-pack</a></p>
</section>
<section>
<h2><a href="https://wasi.dev/">WASI</a></h2>
<p>The WebAssembly System Interface</p>
</section>
</section>
<section> <section>
<section> <section>
<h2>Bibliotecas</h2> <h2>Bibliotecas</h2>

Loading…
Cancel
Save