Torne-se um fazedor. Não pergunte-me como…

Nos últimos tempos tenho refletido com mais frequência sobre minha profissão. Eu, como muitos de minha geração, resolvi estudar computação por gostar de jogos, e sonhava um dia poder fazê-los. Essa ideia/lembrança é ponto chave na conclusão que tenho chegado nos últimos tempos.

Um jogo é um produto, um fim, uma solução. Fazê-lo era o que importava, não os meios para isso. Mas algo se perdeu no meio do caminho… eu aprendi a programar.

É um mundo fascinante, com uma quantidade brutal de detalhes, onde horas de esforço oriundo de meses ou anos de estudos produz resultados encantadores. Quase tão encantador quanto o produto desse ofício, é o ofício em si.

Visite qualquer cafezinho de uma empresa com programadores e verá. Eles estarão debatendo sobre linguagens, paradigmas, gerenciamento de memória, boas práticas, bla, bla, bla. Entra um rapaz do departamento jurídico, faz um comentário sobre “festa x” ou “jogo do Flamengo” e o assunto se mantém por 10 segundos, antes de voltar para “linguagens funcionais são mais adequadas que as imperativas para projetos do tipo y” ou “garbage colletors são uma porcaria”, e o pobre rapaz volta para sua sala. É quase como a vingança dos nerds, se não fosse patético.

Não, não acho que é mais legal falar sobre o show do Exaltasamba ou sobre a goleada do Real sobre o Barça, nem acho que aspectos técnicos são assunto proibido ou desagradáveis. Só acho que passo tempo demais discutindo problemas que não vou resolver, pois eles não são… bem… problemas. São nunances, características das FERRAMENTAS que utilizamos para resolver problemas de verdade. Ferramentas são coisas que usamos para fazer as coisas que importam. Ou você imagina um pedreiro filosofando sobre o cinzel?

“Mas se ninguém se preocupasse com essas coisas, não teríamos as ferramentas que temos hoje para trabalhar!”

Certamente. A diferença é que para as pessoas que constróem essas ferramentas, elas são o problema, não a ferramenta. Se você constrói as ferramentas, esse texto não é para você. A moral da história é: Foco no problema.

Argumentar por que Java agora é mais rápido que C++ para cálculos de transformadas de Fourier, ou vice-versa, tem a mesma utilidade para você quanto para os criadores das respectivas linguagens: Nenhuma. O problema é outro.

As gotas d’água

Hoje conversando com meu amigo Zanoni, comecei um monólogo idiota sobre como Design Patterns são inúteis no meu trabalho atual, mas como são importantes para certos tipos de projeto. Devo ter falado por 30 minutos, antes de perceber que um build que deveria resolver meu real problema já deveria estar me esperando.

Ao chegar em casa, me deparei com um comentário da Anna no Google+, e resolvi prolongar o tema nos comentários, emitindo a minha toda-poderosa opinião. Devo ter perdido pouco mais de 1 hora entre escrever e revisar o texto que postei. Sabe o que é mais engraçado? Não tem a mínima importância para ela nem para mim. Sequer vai melhorar nossa quarta-feira, quando ela ler.

Depois de longa e conturbada reflexão, decidi mudar esse aspecto de minha vida. O processo vai ser longo, mas pretendo focar mais nos resultados concretos das coisas que eu resolva fazer. Tornar isso público no blog aumenta a pressão, e é isso que preciso agora. O primeiro passo vai ser reverter os vícios que a educação de nível superior me presenteou.

Afinal, como diz uma certa empresa de telefonia, “It’s not the technology, it’s what you do with it”.

Também quer se tornar um fazedor? Não pergunte-me como, acabei de tomar essa decisão!

Vivendo no browser – Semana 0

Lendo algumas notícias no Google+, me deparei com um depoimento de Linus Torvalds sobre a atualização que seu Chromebook havia recebido nos últimos dias. Eu suspeitava que Chromebook nada mais era que um netbook que rodava Chrome OS, e era isso mesmo. Também percebi que há tempos não acompanhava o progresso do sistema operacional, e resolvi conferir.

Ainda me incomoda a ideia de ter um sistema operacional que é pouco mais que um browser. Um ótimo browser, mas ainda assim, um interpretador de HTML+CSS+JS glorificado. Deixei o assunto de lado por alguns minutos, quando me deparei com uma notícia no Hacker News sobre o lançamento de um cliente SSH… para o Chrome. Opa! Foi aí que reparei na quantidade absurda de apps que a Chrome Web Store recebeu nos últimos meses, enquanto estive distraído com outras coisas.

Isso me fez pensar que para um usuário comum, que usa o computador apenas para lazer e editar-documentos-planilhas-ver-powerpoint-com-musica, o Chrome OS pode ser uma boa pedida. Chegou a hora de testar. Como a ideia de gastar  250 Obamas em um Chromebook apenas por curiosidade me pareceu indigesta, resolvi pegar o caminho mais barato e rápido. Consultando alguns tópicos no Quora, me certifiquei que o Chrome que roda no Chrome OS é o mesmo dos demais sistemas operacionais, e a compatibilidade de apps e extensões só é ferida quando o programa em questão utiliza alguma funcionalidade do sistema operacional¹.

Pois bem! Resolvi começar uma série de posts semanais, relatando minha experiência em viver uma vida quase totalmente em um browser. O que isso significa? Toda e qualquer aplicação desktop que utilizo, deve ser substituída por algo equivalente em forma de Chrome App. Claro que não vou poder realizar todas as atividades de meu trabalho nele, visto que certas coisas que faço são muito específicas e dependem de plataformas e compiladores específicos. Para tornar todo o experimento mais intenso, vou realizá-lo em todos os computadores que utilizo (tanto em casa quanto no trabalho), com exceção do Asus Transformer, visto que as extensões do Chrome ainda não são compatíveis com o Chrome Beta for Android, e no Lumia 710, por não ter uma versão do browser.

Lista de SOs:

  • Windows 7 64-bits
  • Windows XP 32-bits
  • Ubuntu 11.10
  • Ubuntu 12.04
¹ A extensão IE Tab, por exemplo, só funciona no Chrome sendo executado em ambiente Windows, já que necessita que o Internet Explorer esteja instalado.