Browse Source

Merge branch 'draft/gentler-rust' into previews

master
Julio Biason 6 years ago
parent
commit
33ce8e7219
  1. BIN
      _images/nope.gif
  2. BIN
      _images/potato-farming-300x225.jpg
  3. 118
      porque-rust.html

BIN
_images/nope.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

BIN
_images/potato-farming-300x225.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

118
porque-rust.html

@ -101,11 +101,57 @@
<li>Criada em 2006 por Graydon Hoare.</li>
<li>Patrocinada pela Mozilla em 2009.</li>
<li>Versão 1.0 em 2015.</li>
<li>Versão atual: 1.34.1.</li>
<li>Versão atual: 1.35</li>
</ul>
</section>
</section>
<section>
<section>
<h2>
História
<img class="fragment" src="_images/AYV1X0yv.png" alt="" style="width:100px;margin:0">
</h2>
<p>
<span class="fragment">Basic</span>
<span class="fragment"> (com números e estruturado)</span>
<span class="fragment">, dBase III Plus</span>
<span class="fragment">, Clipper</span>
<span class="fragment">, Pascal</span>
<span class="fragment">, Cobol</span>
<span class="fragment">, Delphi (ObjectPascal)</span>
<span class="fragment">, C</span>
<span class="fragment">, C++</span>
<span class="fragment">, ActionScript (Flash)</span>
<span class="fragment">, PHP</span>
<span class="fragment">, JavaScript</span>
<span class="fragment">, Python</span>
<span class="fragment">, Objective-C</span>
<span class="fragment">, Clojure</span>
<span class="fragment">, Java</span>
<span class="fragment">, Scala</span>
<span class="fragment"><strong>, Rust.</strong></span>
</p>
</section>
<section>
<img src="_images/my_opinion.jpg" alt="">
</section>
<section>
<div>
A language that doesn't affect the way you think
about programming, is not worth knowing.
</div>
<div>
-- Alan Perlis, "ALGOL"
</div>
</section>
</section>
<section>
<section>
<p>
@ -167,18 +213,19 @@
linguagens.
</aside>
</section>
</section>
<section>
<img src="_images/nope.gif" alt="" class="stretch">
</section>
<section>
<h2>Imutabilidade por Default</h2>
<img src="_images/potato-farming-300x225.jpg" alt="" class="stretch">
</section>
</section>
<aside class="notes">
Por que "imutabilidade" seria algo importante?
Imutabilidade muda a forma como pensamos nos dados,
e evita que o estado fique mudando quando não
queremos.
</aside>
<section>
<section>
<h2>Compilador Chato mas Amigável</h2>
</section>
<section>
@ -235,24 +282,6 @@ fn main() {
<section>
<img class="stretch" src="_images/Sorry-bout-that.gif" alt="">
</section>
<section>
<pre><code class="hljs rust" data-trim>
fn main() {
let mut a = 2;
a = 3;
println!("{}", a);
}
</code></pre>
<aside class="notes">
... 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>
</section>
</section>
<section>
@ -316,17 +345,6 @@ a = String::from("hello");
</aside>
</section>
<section>
<div>
A language that doesn't affect the way you think
about programming, is not worth knowing.
</div>
<div>
-- Alan Perlis, "ALGOL"
</div>
</section>
<section>
<pre><code class="hljs rust" data-trim>
fn main() {
@ -494,26 +512,6 @@ presente.abrir()</code></pre>
</aside>
</section>
<section>
<h2>GC?</h2>
<p class="fragment">GC não é determinístico.</p>
<small class="fragment">
(mas ainda tem um container que é um contador de refências)
</small>
<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>
<a href="https://swift.org/blog/swift-5-exclusivity/">Swift 5 Exclusivity Enforcement</a>
@ -569,9 +567,9 @@ presente.abrir()</code></pre>
<section>
<h3>Rust resolveria isso?</h3>
<h2 class="fragment">Não</h2>
<h2 class="fragment">SIM</h2>
<h4 class="fragment">... na verdade, nem ia compilar.</h4>
<h4 class="fragment">... porque nem ia compilar.</h4>
<aside class="notes">
Uma questão importante para o Rust são "Zero Cost

Loading…
Cancel
Save