Segunda-feira, 26 de junho de 2023
Depois do meu último post no blog sobre Hurl, alguém me perguntou, e cito: '... por quê?' A resposta simples é 'pela piada'. Mas a resposta mais longa é que software inútil é uma forma fantástica de explorar e experimentar a alegria da computação. Brincar é uma parte importante da exploração e da alegria.
Como tecnólogos, passamos nossos dias atolados em fazer coisas úteis. Engenheiros de software escrevem código para resolver problemas reais. Cientistas da computação pesquisam problemas para produzir resultados novos e reais. Escritores técnicos escrevem sobre tecnologia real, documentação real e muito mais. A lista continua, e o fio comum é que, se fazemos trabalho técnico, fazemos isso no contexto de algo útil.
Muitas pessoas entram na programação porque de alguma forma isso nos traz alegria. É 100% válido ser um engenheiro de software pelo dinheiro. Isso certamente faz parte do motivo pelo qual me inclinei para essa carreira. Mas, com tantos caminhos de carreira disponíveis para aspirantes a engenheiros de software, suspeito que o prazer pela arte foi pelo menos parte da decisão para muitos de nós.
Quando você passa o dia todo trabalhando em coisas úteis, fazendo o trabalho, é fácil perder essa centelha de alegria. E perdê-la? Isso é um medo que ouvi de algumas pessoas que estão mudando de carreira ou tornando a programação mais focada em seu trabalho diário. Quando você tem que fazer as coisas, essas pressões diárias diminuem a empolgação. Tudo o que você faz está ligado a obrigações e está associado ao próprio trabalho.
Você perde o aspecto de brincar que é tão importante.
Escrever software inútil é uma ótima maneira de se libertar dessas obrigações. Se você escreve algo apenas para brincar, você define o que deseja do projeto. Você pode parar a qualquer momento e fazer mais ou menos do que está interessado. Não quer escrever testes? Pule-os. Não quer usar um rastreador de problemas? Livre-se dele. Terminou de aprender o que queria? Pare o projeto se não for mais divertido!
Aqui estão algumas das coisas 'inúteis' que escrevi nos últimos anos para brincar:
Um terrível motor de xadrez e interface do usuário, cheio de bugs, que me ensinou sobre programação de GUI e programação de jogos, e levou a uma compreensão mais completa de como os motores de xadrez funcionam.
Um armazenamento de chave-valor que implementa parte da API do Redis, que me ensinou sobre programação de sistemas e como escrever código mais eficiente.
Um utilitário de wake-on-LAN, que me ensinou como o WOL funciona e como a programação de rede em Rust funciona.
Uma visualização de alguns jogos de xadrez, que me permitiu explorar a produção de arte com código e brincar com maneiras de visualizar um jogo que eu amo.
Um banco de dados de xadrez, onde aprendi muito sobre mapas de bits e internos de banco de dados.
Uma ferramenta baseada em LLM que 'mansplains' o que um comando faz.
Uma implementação inacabada do protocolo de servidor POP3, onde eu estava aprendendo sobre o protocolo e me diverti muito pensando em como seria um aplicativo baseado em POP3. Em vez de um aplicativo web, talvez devêssemos fazer aplicativos de e-mail!
Trabalhei em 'Crafting Interpreters' para aprender e me divertir escrevendo algo em Rust! (Também um pouco querendo ver se consigo igualar ou superar o desempenho da implementação da minha amiga Mary.) Isso me ensinou muito sobre interpretadores e compiladores, mas o objetivo era apenas aproveitar.
Trabalhei na metade de 'Mazes for Programmers' em Rust e abandonei quando se tornou uma tarefa. Foi divertido, mas eu não queria ir mais longe.
E mais pequenos scripts que não me lembro, para brincar com ideias e conceitos e experimentar coisas. Acho que ser capaz de levar nossa arte menos a sério e experimentar coisas 'inúteis' é uma maneira tremenda de aprender e ter um pouco de alegria apenas brincando com computadores. É algo que tento fazer muito.
Portanto, esse é, em última análise, o 'porquê' por trás do Hurl. É uma forma de brincadeira. Não é útil, mas provavelmente vou aprender algo fazendo isso e definitivamente me divertirei no processo. Brincar é importante, e acho que todos nós merecemos brincar mais.
Confira os últimos vídeos publicados no canal