Archive | julho 2016

Tenha um ponto a apresentar, não seja um macaco

Na computação não é incomum o desprezo a coisas primitivas. Primitivos, primatas, macacos… Assim, uma forma de ofender, no meio da computação, é usar a palavra macaco. E quase nunca é uma ofensa de verdade, apenas uma brincadeira. No YouTube, por exemplo, quando o site falha, uma mensagem de “uma equipe de macacos treinados está cuidando do problema” é apresentada. Pois bem, parece que está começando a ganhar popularidade esse jeito de “argumentar” onde você imita um macaco, faz as pessoas rirem, e ganha o debate. Eu tenho uma mensagem que eu gostaria de deixar por aqui.

A mensagem que eu quero deixar é que se você tentar conversar comigo usando essa forma de comunicação de macaco, eu vou ficar irritado. Se seu objetivo for me irritar, parabéns, você conseguirá. E o motivo que me irrita é que eu não quero interagir com macacos, pois eu não tenho empatia nenhuma com estupidez. Agora, o resto desse pequeno texto é dedicado a explicar o que seria “se comunicar como macaco”.

Eu vi recentemente esse vídeo do Maurício Saldanha e fiquei surpreso com a forma de comunicação primitiva dele. Eu fiquei profundamente intrigado, me perguntando se ele achava que estava sendo legal, ou se ele realmente tinha a limitação de se “comunicar” daquela forma. Vejam por vocês mesmos:

Agora, preste atenção no instante 14:47, que merda é essa?! Você pode me explicar? Eu acho difícil de acreditar que um macaco desse está ficando popular. E a razão é que eu fico frustrado. Estou publicamente admitindo que fico frustrado (caso você queira chamar de “recalque”). E o motivo da frustração é que enfrento situações onde as pessoas destacam minha baixa capacidade comunicativa, mas o motivo de eu sofrer dessa baixa capacidade comunicativa é que, (1) ou eu não tenho nada a falar (ou sequer sei o quê falar), (2) ou eu estou tentando comunicar uma ideia mais complexa, nem que seja complexa somente para mim (diferente desse macaco primitivo do Maurício Saldanha).

Olhem de novo esse vídeo! Que merda se passa na cabeça desse macaco? Eu fico puto com esse comportamento ser realizado por alguém da mesma espécie que eu, e que, para tornar as coisas melhores, faz parte da mesma cultura na qual estou inserido (a cultura brasileira). Isso me deixa profundamente frustrado. Se você estiver tentando entender o quanto eu fico irritado (ou “cheio de recalque”, a depender do ponto de vista), imagine o Felipe Neto encenando aqueles vídeos dele lá.

Agora, atuação, e não essa merda incompreensível do Maurício Saldanha, é uma arte, é belo, é algo a se apreciar. Recentemente me deparei com um vídeo do Jim Carrey e grande parte da mensagem que ele estava comunicando, uma parte crucial para o efeito que ela tinha, eram esses “gestos de macacos”. O vídeo era o Unnatural Act:

Agora, a diferença que torna o Maurício Saldanha um babaca estúpido macaco primitivo incompreensível (note como a internet permeia o ódio e me faz xingar um estranho aleatório que nem conheço) e o Jim Carrey um gênio ao fazer “a mesma coisa” é bem simples, então guarde bem com você: o Jim Carrey tem um ponto, não depende só de expressões baratas inseridas aleatoriamente para tentar ridicularizar o ser de opinião contrária.

E para terminar, quero deixar uma dica aqui. Se você estiver precisando de um refrão para uma música punk, usa o refrão “macacos! primatas! primitivos!”. Eu vou ficar contente só com uma menção da ideia original e tal. E também vou escutar a música toda vez que precisar amenizar o ódio que essa comunicação de macaco a qual sou exposto causa em mim.

Lua: a linguagem de script ideal

Outro dia eu assisti a palestra do Andy Wingo sobre Guile Scheme e em um dos slides, uma definição é utilizada para provocar o espectador, “a sloppy language with a slow implementation”. Acho uma forma interessante de começar o texto, pois nesse texto eu vou apresentar o porquê de eu achar lua a linguagem de script ideal.

Aqui, uso o termo script como uma linguagem cujo objetivo é complementar a linguagem principal do seu projeto. Motivos para usar uma linguagem de script seriam uma carga mental necessária menor para manter partes não críticas do projeto.

Simplicidade é importante. Eu estive trabalhando em 3 projetos de problemas/domínios diferentes escritos em soluções/linguagens diferentes (ou diferentes idiomas/sotaques dentro da mesma linguagem) nesses últimos meses e eu posso afirmar que a carga associada a troca de contexto mental que ocorre diariamente não é nada agradável, produtiva, ou benéfica da alguma forma. Você pode confiar no meu julgamento (se o texto fosse em inglês eu iria preferir a frase “believe me”). Alternar entre duas (!) linguagens complexas durante o desenvolvimento do projeto é… overkill.

No começo, achei que não ia querer usar Lua, por ser uma linguagem muito simples (tipo C) e que não respeita várias “boas ideias de programação” (e.g. reaproveitamento de código, abstração, expressividade etc). Mas acontece que mudei minha forma de pensar para focar mais em “isso é um jogo, lua vai ser usado só para scriptar fases, inimigos, etc”. Toda vez que a gente fosse manter o código de script, o que aconteceria seria atenção aumentada somente a uma parte do código (e.g. esse boss não está agindo como imaginei, o que será que aconteceu? vou olhar o código somente desse script e mais nenhum outro código!) e nada de pegar “conhecimento/abstrações” dos códigos antigos. Na verdade, criar padrões ou coisas do tipo poderia até atrapalhar, já que aumentaria a carga necessária para revisar um script que queremos ver independente dos outros. Essa lógica não é bem muito certa, mas penso nela ao me imaginar desenvolvendo o jogo por um longo prazo.

Lua é uma linguagem simples o suficiente para ter conseguido espaço dentro de um kernel “estabelecido”, o NetBSD. E não é incomum ver preocupações de segurança com coisas complexas e comportamentos implícitos, principalmente quando vindo de pessoas que vem de C ou de desenvolvimento de kernel. Mesmo assim, lua conseguiu um pouco de espaço nessa área frente a outras linguagens bem mais antigas e estabelecidas (como Python).

Lua é simples o suficiente para até ter sido escolhida como “linguagem de consulta” para a interface/programa Wireshark.

Lua também possui implementações bem rápidas.

E é isso, lua é tipo Go, medíocre por não tentar fazer nada, mas pelo menos não acaba errando demais e se torna bem simples. E pelos motivos expostos, considero lua a linguagem de script ideal dentre as que conheço.

Eu não confio no seu julgamento se você não critica sua linguagem de programação

A lógica por trás de tal filosofia é bem simples. Se sua linguagem de programação não possui defeitos, então não há nada para mudar nela, pois ela é perfeita, exatamente como está, imutável, nada precisa mudar. Entretanto, e essa é a parte da argumentação que é menos baseada em consequências lógicas e mais baseada em observações ao meu redor, ainda está para ocorrer o momento em que eu veja um entusiasta de sua linguagem de programação que considere negativo o lançamento de uma nova versão de sua linguagem de programação. Cada uma das mudanças que culminou no lançamento de uma nova versão de sua linguagem de programação era uma carência ou um defeito que existia em sua antiga versão, e os “fãs” só irão reconhecê-lo uma vez que o defeito é corrigido, pois sua linguagem é perfeita, sagrada, livre de questionamentos, um tabu quando se menciona a ideia de defeitos.

Pois bem, eu não acho essa posição de sua parte nenhum pouco honesta, e eu quis fazer esse texto para tentar fazer você refletir um pouco a respeito. Outro motivo é que eu estava há muito tempo sem escrever e esse foi um texto fácil para mim, que fluiu da minha mente para “o papel” encontrando nenhuma barreira ou barreiras imperceptíveis. Eu perdi muito pouco tempo para fazê-lo. É um texto de mera opinião.

A ideia de fazer esse texto me veio após perder bastante tempo para escrever a pauta para um podcast que me convidaram a gravar. O tema do podcast seria a linguagem Rust, e eu, na minha mentalidade de blogueiro que ainda não sabe montar pautas, dediquei 4 páginas da pauta só para elaborar o quão C++ é uma linguagem ruim. Agora você precisa entender que a linguagem C++ foi minha linguagem favorita por 6 anos de tal forma que simplesmente não havia espaço para carinho a outras linguagens de programação, e que eu dediquei muito tempo de minha vida só para entender como eu poderia defender essa linguagem. Hoje em dia, C++ não perdeu meu carinho e ela ainda é minha solução favorita para metade dos problemas que resolvo. Ainda assim, 90% do tempo que dediquei para montar a pauta, foi para criticar C++, e em momento nenhum deixei espaço para que o consumidor daquela pauta/obra pudesse imaginar que eu tenho um apego tão grande por essa linguagem.

Acho que uma boa forma de terminar esse texto é ressaltar que sua linguagem só evolui se você corrigir seus problemas, e isso só vai acontecer uma vez que seus problemas sejam reconhecidos. A “linguagem perfeita” é um termo que só é usado por programadores imaturos, grupo do qual um dia eu também já fiz parte.

%d blogueiros gostam disto: