Skip to content

Instantly share code, notes, and snippets.

@thiagoarrais
Last active January 24, 2019 13:26
Show Gist options
  • Select an option

  • Save thiagoarrais/2d67e5bc6d46b279cd978533b7e72a18 to your computer and use it in GitHub Desktop.

Select an option

Save thiagoarrais/2d67e5bc6d46b279cd978533b7e72a18 to your computer and use it in GitHub Desktop.

Por favor, reinvente a roda

Da esquerda para a direita: roda de pedra, roda de madeira, roda com aro, roda com pneu de câmara, roda com pneu sem câmara

Tenho certeza de que você já ouviu a frase feita “não reinvente a roda”. Parece um bom conselho a princípio, certo? Devemos reutilizar o que temos a nossa disposição ao invés de reconstruirmos nós mesmos algo com a mesma finalidade.

Não faz muito tempo, descobri o httpie. Ele é um cliente HTTP para linha de comando. Algo como o curl ou o wget.

Mas… Peraí… Para que fizeram o httpie se já temos não só um mas dois clientes HTTP de linha de comando? Não faz sentido! Não reinvente a roda, certo?

Só que isso não é reinventar a roda. Há uma diferença entre reinventar a roda e uma evolução incremental. O curl foi importante para saber o que precisamos de um cliente HTTP de linha de comando, mas ele não tem a melhor usabilidade para um usuário moderno. O httpie é um (modesto) passo nessa direção.

Evolução.

Incremental.

Não reinventar a roda é um princípio extremamente válido. Mas o problema de princípios e valores é que eles parecem fáceis demais de entender. São óbvios até. Mas na verdade precisam ser entendidos a fundo para serem bem aplicados. Quando são reduzidos a uma frase de efeito, as pessoas deixam de pensar sobre o princípio que está por trás da frase e começam a usá-la superficialmente. Nessa hora morrem muitas boas idéias que são evoluções incrementais de outras, só porque não queremos “reinventar a roda”.

Precisamos ter muito cuidado para diferenciar quando nossa reinvenção da roda é realmente uma reinvenção a partir de princípios básicos de quando é uma adaptação de uma idéia pré-existente. Afinal de contas, não só de completas revoluções vive esse nosso mundo da tecnologia. Na verdade, talvez estivéssemos melhor se mais gente se debruçasse mais sobre projetos de evolução incremental do que sobre grandes objetivos revolucionários. Ainda bem que algumas pessoas conseguem fugir dessa interpretação rasa do “não reinvente a roda”.

Porque o httpie é a reinvenção do curl, a Netflix é reinvenção dos canais de TV a cabo, computação em nuvem é reinvenção dos mainframes, e o podcast é a reinvenção das rádios-pirata.

Então, por favor, reinvente tudo!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment