Programação Futurista… em 1994

Paul Heberli e Bruce Karsh propuseram algo que eles chamam de programação futurista em 1994:

Acreditamos que há uma grande oportunidade para o Princípios futuristas a serem aplicados à ciência da programação de computadores. Reagimos contra o pesado atmosfera religiosa que envolve todos os aspectos da programação de computadores. Acreditamos que é hora de nos libertarmos das restrições do passado e celebrarmos o renascimento da arte da programação de computadores.

Constatamos que muitos dos sistemas de computador atuais são irremediavelmente desperdiçadores e ineficientes. O hardware do computador obteve aumentos de desempenho de um fator de mais de 200 nos últimos 20 anos, enquanto no design de programas houve muito pouco progresso desde a invenção da subrotina. Gostaríamos que a ciência da programação avançasse tão rapidamente quanto outros campos da tecnologia.

Acreditamos que o ensino de graduação gasta muito tempo transmitindo dogmas, em vez de ensinar uma teoria sólida de design de programas que ajude os programadores a criar bons programas. As universidades deveriam oferecer aos alunos menos religião e muito mais experiência prática na criação e análise de programas pequenos, rápidos, úteis e eficientes.

Futurismo foi um movimento artístico principalmente italiano no início do século XX; o resumo mais sucinto que encontrei está em esta página de recursos do Futurismo:

O futurismo foi um movimento artístico internacional fundado na Itália em 1909. Foi (e é) um contraste refrescante com o sentimentalismo choroso do Romantismo.

Giacomo Balla, Plastic Construction of Noise and Speed (Construção plástica de ruído e velocidade), 1915

Os futuristas amavam a velocidade, o ruído, as máquinas, a poluição e as cidades; eles abraçaram o novo e empolgante mundo que estava surgindo, em vez de desfrutar hipocritamente dos confortos do mundo moderno e, ao mesmo tempo, denunciar em alto e bom som as forças que os tornaram possíveis. Temer e atacar a tecnologia tornou-se quase uma segunda natureza para muitas pessoas hoje em dia; os manifestos futuristas nos mostram uma filosofia alternativa.

Em 1994 Manifesto dos programadores futuristas é totalmente baseado no manifesto de 1910 Manifesto dos Pintores Futuristas. Mas talvez a melhor explicação do que é a programação futurista realmente significa está escondido no Notas de programação futurista:

REJEITAMOS

  • CÓPIAS de trabalhos que já foram realizados anteriormente.
  • Software CONFIGURÁVEL PELO USUÁRIO.
  • Documentação em papel.
  • Qualquer programa que DESPERDIÇA a preciosa MEMÓRIA dos usuários.
  • Qualquer programa que DESPERDIÇA o precioso TEMPO dos usuários.
  • Administração de sistemas e ADMINISTRADORES.
  • Qualquer coisa que seja feita para a conveniência do programador às custas do usuário.
  • Extensibilidade, modularidade, programação estruturada, código reutilizável, design top-down, padrões de todos os tipos e “METODOLOGIAS” orientadas a objetos.
  • Todas as formas adicionais de DESPERDÍCIO INÚTIL e IRRESPONSÁVEL.

É um conjunto admirável de metas. De particular interesse é a reverência futurista por programas que geram código dinamicamente; isso pressagia o atual renascimento do linguagens de programação dinâmicas, dez anos depois. Aparentemente, o futuro é agora.

A filosofia futurista central que a religião e os dogmas de todos os tipos devem ser examinados criticamente é importante. Já escrevi muitas vezes sobre certas “sabedorias” aceitas no desenvolvimento de software que são contraproducentes, se não totalmente perigosas. Acho que o senhor deve questionar constantemente o status quo e ser solidamente cético em relação à das chamadas melhores práticas. Mas isso também pode ser levado longe demais. Omiti intencionalmente a última frase do resumo do futurismo sobre o a página de recursos do Futurismo:

Pena que todos eles eram fascistas.

O senhor precisa tomar cuidado para que a rejeição do dogma não se torne um tipo de dogma. Às vezes, uma lista com marcadores de práticas recomendadas pode ser útiltambém.