You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
337 lines
12 KiB
337 lines
12 KiB
<html> |
|
<head> |
|
<meta charset="utf-8" /> |
|
<title>Desculpe Python, Não Sou Eu, É Você</title> |
|
<meta name="apple-mobile-web-app-capable" content="yes"> |
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> |
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"> |
|
|
|
<link rel="stylesheet" href="reveal.js/css/reveal.css"> |
|
<link rel="stylesheet" href="reveal.js/css/theme/night.css" id="theme"> |
|
|
|
<!-- Code syntax highlighting --> |
|
<link rel="stylesheet" href="reveal.js/lib/css/zenburn.css"> |
|
|
|
<!-- Printing and PDF exports --> |
|
<script> |
|
var link = document.createElement( 'link' ); |
|
link.rel = 'stylesheet'; |
|
link.type = 'text/css'; |
|
link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css'; |
|
document.getElementsByTagName( 'head' )[0].appendChild( link ); |
|
</script> |
|
|
|
<!--[if lt IE 9]> |
|
<script src="lib/js/html5shiv.js"></script> |
|
<![endif]--> |
|
|
|
<style type="text/css" media="screen"> |
|
.happy { |
|
color: yellow; |
|
} |
|
|
|
.reveal section img { |
|
border: none; |
|
} |
|
|
|
.reveal ul.empty { |
|
list-style: none inside; |
|
} |
|
|
|
.revel ul.empty li { |
|
display: block; |
|
} |
|
|
|
.cursor { |
|
background-color: #666; |
|
color: white; |
|
} |
|
|
|
img { |
|
max-height: 90%; |
|
} |
|
|
|
td.seen { |
|
font-style: italic; |
|
font-weight: bold; |
|
} |
|
|
|
.semi-opaque { |
|
background-color: rgba(0, 0, 0, 0.7); |
|
} |
|
</style> |
|
</head> |
|
|
|
<body> |
|
<div class="reveal"> |
|
<div class="slides"> |
|
<section data-background="_images/dear-john.jpg" data-header> |
|
<h2 class="semi-opaque"> |
|
Desculpe Python, Não Sou Eu, É Você |
|
</h2> |
|
</section> |
|
|
|
<section> |
|
<h2>Quem?</h2> |
|
</section> |
|
|
|
<section> |
|
<div class="semi-opaque"> |
|
<img src="_images/avatar-hd.png" alt="Me" style="float:left;width:200px;" class="no-border"> |
|
|
|
<div> |
|
<ul class="empty"> |
|
<li>Júlio Biason</li> |
|
<li>Programador a 30 anos</li> |
|
<li>Praticante de mototerapia</li> |
|
<li>Trekkie</li> |
|
</ul> |
|
</div> |
|
</div> |
|
</section> |
|
|
|
<section> |
|
<section> |
|
<h3>JulioBiason.me</h3> |
|
|
|
<ul> |
|
<li><a href="https://presentations.juliobiason.me/">Presentations</a></li> |
|
<li><a href="https://blog.juliobiason.me/">Blog</a></li> |
|
<li><a href="https://git.juliobiason.me/">Git</a></li> |
|
<li><a href="https://resume.juliobiason.me/">CV/Resumé</a></li> |
|
<li><a href="https://books.juliobiason.me/">Books</a></li> |
|
</ul> |
|
|
|
<p class="fragment">+ <a href="https://functional.cafe/@juliobiason">https://functional.cafe/@juliobiason</a></p> |
|
<p class="fragment">+ julio.biason@pm.me</p> |
|
</section> |
|
|
|
<section> |
|
<h3>O Flerte</h3> |
|
</section> |
|
|
|
<section> |
|
<!-- C para bolsa, ainda não num relacionamento abusivo --> |
|
<img src="_images/selar.webp" class="stretch"> |
|
|
|
<aside class="notes"> |
|
Então, tava eu lá na univerdade, fazendo minhas |
|
coisinha na bolsa de inicialização científica, vivendo |
|
com C, que apesar de não dar muito certo, e ter seus |
|
momentos meio abusivos, eu respeito pacas até hoje... |
|
</aside> |
|
</section> |
|
|
|
<section> |
|
<aside class="notes"> |
|
... e teve momentos em que eu precisava de ajudar pra processar os |
|
resultados desses programas em C, e aí o pessoal me falou do AWK... |
|
|
|
... mas AWK era esquisitão, até fazia as coisas que eu |
|
precisava, mas não era uma conversa em que os dois |
|
falavam de forma simples e clara... |
|
</aside> |
|
</section> |
|
|
|
<section> |
|
<img src="_images/ds9-ishka.gif" class="stretch"> |
|
|
|
<aside class="notes"> |
|
Também me falaram de Perl, mas só pra ver como ele |
|
conversava, já dava pra ver a gente nunca ia se |
|
entender direito. |
|
</aside> |
|
</section> |
|
|
|
<section> |
|
<img src="_images/tng-marina.gif" class="stretch"> |
|
|
|
<aside class="notes"> |
|
... até que alguém falou "Fala ali com Python". E, |
|
nossa, a conversa rolou solta. |
|
</aside> |
|
</section> |
|
|
|
<section> |
|
<h3>O Início do Relacionamento</h3> |
|
</section> |
|
|
|
<section> |
|
<h3>"Vamos fazer um browser em Python!"</h3> |
|
</section> |
|
|
|
<!-- tudo agora é script python --> |
|
<!-- simulador de hardware, pra entregar projeto antes do resto --> |
|
<!-- encontros no tempo livre --> |
|
|
|
<section> |
|
<h3>Relacionamento Sério</h3> |
|
</section> |
|
|
|
<section> |
|
<img src="_images/sydney.jpg" class="stretch"> |
|
</section> |
|
|
|
<!-- agora é no trabalho e em casa --> |
|
|
|
<section> |
|
<h3>Dando um tempo</h3> |
|
</section> |
|
|
|
<!-- php por 2 anos --> |
|
|
|
<section> |
|
<h3>A Volta da Paixão</h3> |
|
</section> |
|
|
|
<!-- surgiu a chance de trabalhar junto de novo --> |
|
<!-- ... mas virou objective-c --> |
|
<!-- framework em cima do flask --> |
|
<!-- consuela --> |
|
<!-- Django --> |
|
|
|
<section> |
|
<h3>Novo Rompimento</h3> |
|
</section> |
|
|
|
<!-- java --> |
|
<!-- rust do lado --> |
|
|
|
<section> |
|
<h3>Mais do Mesmo</h3> |
|
</section> |
|
|
|
<!-- django, mas nada de impressionante --> |
|
<!-- rust do lado, de novo --> |
|
|
|
<section> |
|
<h3>O Começo das Brigas</h3> |
|
</section> |
|
|
|
<!-- Múltiplas versões, incluindo não-mantidas --> |
|
<!-- distribuição de coisas --> |
|
<!-- packaging? what? exe quebra tudo --> |
|
|
|
<section> |
|
<p><code> |
|
pip install --break-system-packages |
|
</code></p> |
|
</section> |
|
|
|
<section> |
|
<img src="_images/tos-kirk-what.gif" class="stretch"> |
|
</section> |
|
|
|
<section> |
|
<img src="_images/tng-picard-slow-facepalm.gif" class="stretch"> |
|
</section> |
|
|
|
<section> |
|
<img src="_images/tos-kirk-slap.gif" class="stretch"> |
|
</section> |
|
|
|
<section> |
|
<h3>Despedida</h3> |
|
</section> |
|
|
|
<!-- rust tá resolvendo tudo de forma melhor, mesmo que mais trabalhoso --> |
|
<section> |
|
<img src="_images/friendship-py-ended.jpg" class="stretch"/> |
|
</section> |
|
|
|
<section> |
|
<img src="_images/tng-data-goodbye.gif" class="stretch"> |
|
</section> |
|
|
|
<section> |
|
<img src="_images/tng-picard-sigh.gif" class="stretch"> |
|
</section> |
|
|
|
<section> |
|
<!-- ferramentas pra python não estão mais sendo escritas em Python (ruff, uv, Pyright) --> |
|
<ul> |
|
<li><code>ruff</code>: Rust</li> |
|
<li><code>uv</code>: Rust</li> |
|
<li><code>Pyright</code>: JavaScript</li> |
|
</ul> |
|
</section> |
|
|
|
<!-- parece estar indo pro lado certo, mas extremamente lento (falta de interesse?) --> |
|
<section> |
|
<ul> |
|
<li>GIL-less Python</li> |
|
<li>JIT hook</li> |
|
</ul> |
|
</section> |
|
|
|
<section> |
|
<p>Rust:</p> |
|
<ul> |
|
<li class="fragment">... não me deixa cruzar a rua sem olhar pros dois lados</li> |
|
<li class="fragment">... não me deixa sair de moto sem usar capacete</li> |
|
<li class="fragment">... não me deixa tomar banho se não tiver o tapetinho pra não escorregar no chuveiro</li> |
|
</ul> |
|
</section> |
|
|
|
<section> |
|
<strong>... mas é bom ver alguém que tá se preocupando comigo e não que |
|
me deixe ser "porra louca" e me deixe na mão na hora de lidar com |
|
os outros. |
|
</strong> |
|
</section> |
|
|
|
<!-- o que acontece quando C++/Java tiver uma interface bacana pra AI/ML/Data Science? --> |
|
<!-- |
|
<section> |
|
<p>Ferramentas de ML/AI são em C++.</p> |
|
<p class="fragment">C++ é complicado de programar.</p> |
|
<p class="fragment">Mas como Python é só uma cola...</p> |
|
<p class="fragment"><strong>o que vai acontecer quando |
|
alguém insano o suficiente escrever um Jupyter em C++? |
|
</strong></p> |
|
</section> |
|
--> |
|
|
|
<section> |
|
<img src="_images/py-so-2024.png" class="stretch"> |
|
</section> |
|
|
|
<section> |
|
<img src="_images/so-salary-2024.png" class="stretch"> |
|
</section> |
|
|
|
<section data-background='_images/thats-all-folks.jpg'> |
|
</section> |
|
</div> |
|
</div> |
|
|
|
<script src="reveal.js/lib/js/head.min.js"></script> |
|
<script src="reveal.js/js/reveal.js"></script> |
|
|
|
<script> |
|
// Full list of configuration options available at: |
|
// https://github.com/hakimel/reveal.js#configuration |
|
Reveal.initialize({ |
|
controls: true, |
|
progress: true, |
|
history: true, |
|
center: true, |
|
// showNotes: true, |
|
|
|
transition: 'slide', // none/fade/slide/convex/concave/zoom |
|
|
|
// Optional reveal.js plugins |
|
dependencies: [ |
|
{ src: 'reveal.js/lib/js/classList.js', condition: function() { return !document.body.classList; } }, |
|
{ src: 'reveal.js/plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, |
|
{ src: 'reveal.js/plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, |
|
{ src: 'reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }, |
|
{ src: 'reveal.js/plugin/zoom-js/zoom.js', async: true }, |
|
{ src: 'reveal.js/plugin/notes/notes.js', async: true } |
|
] |
|
}); |
|
</script> |
|
|
|
</body> |
|
</html>
|
|
|