Codificação em adiante me lembrou a distopia sem lei em Mad Max. Você faz suas próprias regras, sujeitas aos limites do contexto. Você pode redefinir a instrução IF se assim for. Você pode reescrever instruções de código da máquina para uma palavra. Você pode até mudar palavras durante o tempo de execução. Como as palavras se tornam palavras -chave no final, você pode criar um idioma que é otimizado para um único objetivo, comandos de embalagem que, de outra forma, seriam dezenas de linhas em apenas uma. “No final, você está criando seu próprio idioma”, Leo Brodie, autor do primeiro livro, Começandome disse.
A natureza de baixo nível de Forth, enquanto a chave para seu poder de processamento, fez a programação parecer estrangeira. Ele usa o Postfix, uma forma de notação matemática que torna 2 + 1 como 2 1+ e que eu não achei não intuitivo nem mesmo realmente legível. E enquanto a maioria dos idiomas permite que a memória seja dividida e movida, o Forth é baseado em pilha-os dados de que o significado são armazenados cronologicamente e gerenciados em uma base mais in/primeiro a sair. Continuei correndo em insetos, forçando -me a abandonar as convenções de programação que considerava universais. Eu me vi lutando para falar a língua da máquina.
Quando enviei um e -mail a Dupras para pedir ajuda, ele comparou o uso para dirigir um bastão. É mais granular que C. Onde o último define convenções de chamadas, armazenamento variável e gerenciamento de pilha de retorno, deixa tudo para o programador. Ele interage diretamente com a memória da mesma maneira que C, mas supera em muito a precisão e a eficiência. “As pessoas confundem apenas como um idioma”, diz Dupras. “É uma maneira de interagir com o computador”.
A razão não é mais popular é a mesma razão pela qual a maioria de nós dirige automática. O boom da computação pessoal da década de 1990 provocou uma obsessão por fazer a tecnologia se encaixar na palma da mão e facilitar a redação do código. Os idiomas foram abstraídos para proteger os programadores de si mesmos e, em algum lugar ao longo do caminho, nos perdemos. As coisas ficaram inchadas por uma questão de conveniência e, nas palavras de Dupras, começaram a “escorrer pus inescrutáveis em todos os cantos”.
“A maneira como entendemos a eficiência é tão distorcida”, diz Dupras. A Forth é uma foice para o cortador de grama de Python. “Se você calcular o número de joules por lâmina de grama, descobrirá que a pessoa que se abriga é mais eficiente”, diz ele. “Quando você pensa em velocidade, veria o cortador de grama como mais eficiente.” A Força obriga você a ser precisa e com eficiência de memória-a organizar seus recursos com cuidado, como faria após o colapso. Dupras corta seu próprio gramado com uma foice, obviamente. “Em um certo ponto, você pode ir tão rápido quanto um cortador de grama”, diz ele.
Comecei a encontrar o meu caminho. Em vez de enviar bytes para o éter e confiar no sistema para descobrir para onde eles vão, como eu faria em Python, me acostumei a ser responsável por alocar e liberar memória. Tudo o que eu conseguia pensar era o que estava sendo armazenado, onde estava sendo armazenado e quanto espaço necessário. Cada linha de código de repente teve peso. Eu era Immortan Joe, meu laptop era minha cidadela e a memória era minha água.
Logo me vi refinando e revisitando meu código como se eu faria uma frase de conclusão. Em vez de esperar que a máquina antecipe minhas necessidades, tentei pensar como a máquina, para atendê -la mais da metade. E porque eu tive que pensar duas vezes, todos os acrônimos desnecessariamente complicados que nos lembram de ser concisos em outros idiomas de codificação – Yagni (você não vai precisar), beije (mantenha -o simples, estúpido), seco (não se repita) – ficou obsoleto.