- A constante de um homem é a variável de outro.
- Funções atrasam ligações; estruturas induzem ligações. Moral: estruture os dados posteriormente no processo de programação.
- Açúcar sintático é cancerígeno.
- Todo programa é parte de outro programa e raramente se encaixa.
- Se um programa manipula uma grande quantidade de dados, ele o faz de poucas formas.
- Simetria é um conceito que reduz complexidade (co-rotinas incluem subrotinas). Busque em toda parte.
- É mais fácil escrever um programa incorreto do que entender um correto.
- Uma linguagem de programação é de baixo nível quando seus programas exigem atenção a o que é irrelevante.
- É melhor ter cem funções operando em uma estrutura de dados do que ter dez funções operando em dez estruturas de dados.
- Entre numa rotina cedo: faça o mesmo processo do mesmo jeito. Acumule jargões. Padronize. A única diferença(!) entre Shakespeare e você era o tamanho da lista de jargões dele - não o tamanho do vocabulário dele.
- Se você tem um procedimento com dez parâmetros, você provavelmente esqueceu um.
- Recursão é a raiz da computação pois troca descrição por tempo.
- Se duas pessoas escreverem exatamente o mesmo programa, e cada um for colocado em microcódigo então eles certamente não serão iguais.
- A longo prazo todo programa se torna enfeite - e depois lixo.
- Tudo deve ser construído de cima para baixo, exceto da primeira vez.
- Todo programa tem (pelo menos) dois propósitos: um para o qual foi escrito e um para o qual não foi.
- Se um ouvinte balançar a cabeça enquanto você explica o programa, acorde-o.
- Um programa sem um laço e uma variável estruturada não vale a pena escrever.
- Uma linguagem que não afeta sua maneira de pensar sobre programação não vale a pena aprender.
- Onde houver modularidade haverá potencial para desentendimentos: ocultar informação implica em checar comunicação.
- Otimização atrapalha a evolução.
- Um bom sistema não pode ter uma linguagem de comando fraca.
- Para entender um programa você deve se tornar a máquina e o programa.
- Talvez, se escrevêssemos programas desde a infância, quando adultos poderíamos lê-los.
- Só é possível mostrar informação complexa na mente. Como na visão, movimento ou fluxo ou alteração são mais importantes do que a figura estática, não importa o quão bela.
- Sempre haverá coisas que queremos dizer em nossos programas que em todas as linguagens conhecidas só pode ser dito fracamente.
- Assim que você entender como escrever um programa, arranje outra pessoa para escrevê-lo.
- Com computadores é difícil achar uma medida de tempo correta para medir o progresso. Algumas catedrais levaram um século para ficar prontas. Você pode imaginar a grandeza e abrangência de um programa que levasse tanto tempo?
- Para sistemas, o análogo de uma cirurgia plástica é adicionar ao grafo de controle uma aresta que cria um ciclo, não apenas um novo nó.
- Em programação, tudo que fazemos é um caso especial de algo mais geral - e muitas vezes nós percebemos isso cedo demais.
- Simplicidade não vem antes da complexidade, mas sim depois.
- Programadores não devem ser medidos por sua genialidade e sua lógica, mas sim pela completude sua análise de casos.
- O décimo-primeiro mandamento era "Computarás" ou "Não computarás" - eu esqueço qual.
- A string é uma estrutura de dados crua e onde quer que ela passe há muita duplicação de processo. É o veículo perfeito para ocultar informação.
- Todos podem aprender a esculpir. Miquelângelo teria que desaprender. É assim com os grandes programadores.
- O uso de um programa para provar o teorema das 4 cores não irá mudar a matemática - apenas demonstra que o teorema, um desafio de um século, provavelmente não é importante para a matemática.
- O computador mais importante é aquele é aquele que vive em nossos crânios e busca um emulador externo satisfatório. A padronização dos computadores reais seria um desastre - e por isso provavelmente não ocorrerá.
- Programação estruturada dá suporte à lei do meio excluído.
- Re-gráfico: uma imagem vale 10K palavras - mas apenas as palavras que descrevem a imagem. Dificilmente um conjunto qualquer de 10K palavras poderia ser descrito adequadamente com uma imagem.
- Há duas maneiras de escrever programas sem erros. Apenas a terceira funciona.
- Algumas linguagens de programação são capazes de absorver a mudança, mas detém o progresso.
- Você pode medir a perspectiva de um programador ao notar sua atitude em relação à contínua vitalidade de FORTRAN.
- Em sistemas de software, é o pássaro apressado que faz o verme.
- Às vezes eu acho que a única universal no campo da computação é o ciclo pegar-executar.
- O objetivo da computação é a emulação de nossas habilidades sintéticas, não a compreensão de nossas habilidades analíticas.
- Assim como com trocadilhos, programar é brincar com palavras.
- Como diria Will Rogers: não existe variável grátis.
- O melhor livro sobre programação para leigos é "Alice no País das Maravilhas"; mas é porque esse é o melhor livro sobre qualquer coisa para leigos.
- Desistir de assembly foi nossa maçã no Jardim do Éden: linguagens que desperdiçam ciclos de máquina são pecaminosas. A máquina LISP permite aos programadores abandonar as folhas de figueira.
- Quando entendermos os sistemas baseados em conhecimento, será como antes - só que nossos dedos estarão queimados.
- Trazer computadores ao lar não irá mudar nem um nem outro, mas poderá revitalizar o bar da esquina.
- Sistemas tem sub-sistemas e sub-sistemas têm sub-sistemas e assim por diante ad infinitum. É por isso que estamos sempre recomeçando.
- Tantas boas idéias nunca mais são vistas depois de embarcar no golfo semântico.
- Cuidado com o buraco sem fundo de Turing, onde tudo é possível, mas nada interessante é fácil.
- Um programador de LISP sabe o valor de tudo, mas o custo de nada.
- O software está sob constante tensão. Por ser simbólico, ele é arbitrariamente aperfeiçoável; mas também é arbitrariamente mutável.
- É mais fácil mudar uma especificação para se adequar a um programa do que vice-versa.
- Tolos ignoram a complexidade. Pragmáticos sofrem com ela. Alguns conseguem evitá-la. Gênios a removem.
- Em inglês qualquer palavra pode ser verbada. Quem dera fosse assim nas nossas linguagens de programação.
- Ao buscar o inalcançável, a simplicidade apenas atrapalha.
- Em programação, assim como em tudo mais, errar é renascer.
- Em computação, o invariante é efêmero.
- Quando escrevemos programas que "aprendem", no fim nós aprendemos e eles não.
- Normalmente são os meios que justificam os fins: os objetivos fazem avançar a técnica e a técnica sobrevive mesmo quando os objetivos desmoronam.
- Não se engane: computadores processam números, não símbolos. Nós medimos nosso entendimento (e controle) pelo quanto podemos aritmetizar uma atividade.
- Tornar algo variável é fácil. O truque é controlar a duração da constância.
- Pense em toda a energia psíquica gasta tentando achar a diferença fundamental entre "algoritmo" e "programa".
- Se acreditamos em estruturas de dados, devemos acreditar em processamento independente (ou seja, simultâneo). Por qual outro motivo iríamos agrupar itens em uma estrutura? Por que toleramos linguagens que nos dão uma coisa e não a outra?
- A cada 5 anos, nós conseguimos uma excelente linguagem de programação. Só que não controlamos quando serão esses 5 anos.
- Ao longo dos séculos, os índios desenvolveram a linguagem de sinais para comunicar fenômenos de interesse. Programadores de diferentes tribos (FORTRAN, LISP, ALGOL, SNOBOL, etc.) poderiam usar uma que não exija deles carregar um quadro negro em seus pôneis.
- Documentação é como um seguro de vida: ela satisfaz porque ninguém que a faz depende dos benefícios dela.
- Um bootstrap adequado é uma contradição de termos.
- Não são as fraquezas de uma linguagem, mas sim as suas forças, que controlam o gradiente de sua mudança. Infelizmente, uma linguagem nunca sai de sua bolsa amniótica.
- Seria possível que o software não seja como nada mais, que ele deve ser descartado: que o objetivo é vê-lo como uma bolha de sabão?
- Por causa de sua vitalidade, o campo da computação sempre precisa desesperadamente de novos clichês: banalidade estraga nossos nervos.
- É o usuário quem deveria parametrizar procedimentos, não os seus criadores.
- A troca cibernética entre homem, computador e algoritmo é como uma dança das cadeiras: a busca frenética por equilíbrio sempre deixa um dos três em pé.
- Se seu computador fala inglês, ele provavelmente foi feito no Japão.
- Um ano gasto com inteligência artificial é suficiente para fazer qualquer um acreditar em Deus.
- Contato prolongado com computador transforma matemáticos em escrivães e vice-versa.
- Em computação, fazer do óbvio útil é a definição viva de "frustração".
- Estamos quase lá: hoje nosso programa provou o penúltimo teorema de Fermat.
- Qual a diferença entre a máquina de Turing e o computador moderno? É a mesma que há entre a escalada do Everest por Hillary e o estabelecimento de um hotel Hilton no seu topo.
- Lema para um laboratório de pesquisa: naquilo em que trabalhamos hoje, outros irão pensar amanhã.
- Apesar de que os chineses deveriam adorar APL, é em FORTRAN que eles botam seu dinheiro.
- Nós nos enganamos se achamos que a proporção de procedimentos para dados em um sistema de banco de dados ativo pode ser arbitrariamente pequena ou mesmo pode ser mantida pequena.
- Nós temos o mini e o micro computador. Em qual nicho semântico se encaixará o pico computador?
- Não é culpa do computador que as equações de Maxwell não sejam adequadas para projetar o motor elétrico.
- Não se aprende computação com uma calculadora, mas pode-se esquecer a aritmética.
- Computação fez a árvore florescer.
- O computador faz lembrar Lon Chaney - é a máquina de mil faces.
- O computador é o poluidor definitivo: suas fezes são indistinguíveis da comida que ele produz.
- Quando alguém disser "eu quero uma linguagem de programação em que eu apenas tenha que dizer o que eu quero que seja feito", dê-lhe um pirulito.
- Interfaces mantém as coisas firmes, mas não aceleram o crescimento: funções sim.
- Não tenha boas idéias se não pretende ser responsável por elas.
- Computadores não introduzem ordem em lugar nenhum tanto quanto expõem oportunidades.
- Quando um professor insistir que ciência da computação é X mas não é Y, tenha compaixão de seus estudantes.
- Na computação, o tempo médio para a falha continua diminuindo.
- Na simbiose homem-máquina, é o homem quem precisa se ajustar: a máquina não pode.
- Nunca ficaremos sem coisas para programar enquanto houver programas por aí.
- Lidar com a falha é fácil: trabalhe duro para melhorar. O sucesso também é fácil de lidar: você resolveu o problema errado. Trabalhe duro para melhorar.
- Não se pode ir do informal ao formal por meios formais.
- Linguagens puramente aplicativas são pouco aplicáveis.
- A prova do valor de um sistema é a sua existência.
- Não é possível comunicar a complexidade, apenas uma preocupação com ela.
- É difícil extrair sentido das strings, mas elas são o único meio de comunicação com que podemos contar.
- O debate continua: seria PL/I báctrio ou dromedário?
- Quando dois programadores se encontram para criticar seus programas, ambos ficam calados.
- Pense nisso! Com VLSI nós podemos agrupar 100 ENIACs em um cm².
- Editar é uma atividade recompensadora.
- Por que o Império Romano caiu? Como é "automação comercial" em latim?
- Ciência da Computação é envergonhada pelo computador.
- A única teoria construtiva conectando neurosciência e psicologia surgirá do estudo do software.
- Em um computador a linguagem natural é não-natural.
- Muitas pessoas acham óbvio o conceito de programar, mas impossível fazê-lo.
- Você pensa que sabe quando você aprende, e mais quando escreve, e ainda mais quando você ensina, mas tem certeza quando programa.
- É contra a educação moderna ensinar crianças a programar. Qual a graça de fazer planos, se disciplinar a organizar pensamentos, dedicar atenção a detalhes e aprender auto-crítica?
- Se você consegue imaginar uma sociedade em que o computador-robô é o único trabalhador, você consegue imaginar qualquer coisa.
- Programar é anti-natural.
- Adaptar velhos programar para novas máquinas normalmente significa adaptar máquinas novas para se comportarem como velhas.
domingo, 2 de agosto de 2015
Tradução de "Epigrams in Programming" de Alan Perlis
Segue a tradução de um texto ao mesmo tempo instrutivo e hilário: Epigrams in Programming, de Alan Perlis. Fiz uso de minha "licença poética" para converter partes do texto cuja tradução literal causaria perda de sentido. Apesar de já serem bem antigas, essas pérolas de sabedoria ainda trazem conselhos bem atuais.
Assinar:
Postagens (Atom)