Numa omissão absolutamente imperdoável da nossa parte, deixamos passar em branco — no dia 15 de fevereiro — o aniversário de 80 anos de Niklaus Wirth, criador da linguagem Pascal e de muitas outras coisas importantes. Mas não é por isso (mesmo porque minha linguagem preferida não é Pascal, é C) que eu me declaro Wirthista. O motivo é outro.
É o Manifesto por Software Mais Enxuto, de 1995. Se você trabalha com desenvolvimento de software, seja programando ou gerindo, e ainda não leu, leia. Agora.
Desgraçadamente, a situação nos últimos 20 anos só fez piorar. É por essas e outras que eu gosto de programar em BASIC e Assembly em micros de 8 bits.
Como hobby programar em asm 8 bit ou BASIC pode ser divertido e nostálgico, mas para fazer um omelete é preciso quebrar alguns ovos. Nem Pascal/Delphi dá pra usar comercialmente de forma produtiva e eficaz hoje em dia! As mesmas pessoas que defendem a simplicidade de outrora fazem questão das features que só são viáveis hoje por causa das inúmeras camadas de abstração que deixam “difícil” pra quem parou no trivial de décadas atrás. A gente precisa é de abraçar a complexidade, que é inevitável, com ferramentas e metodologias mais adequadas, não se fechar no que é conhecido e confortável.
Não concordo. No lançamento do Macintosh em 1984 o Steve Jobs disse que projetos passam por 3 fases: 1) você tem um sistema simples mas que não resolve todos os problems porque você nem sabia que eles existiam, 2) o sistema cresce e cresce e passa a ser usável, 3) você consegue bolar um sistema muito mais simples mas que, ao contrário do 1, faz o que é necessário. Ele disse que a maioria das empresas vendem o 2 e por isso nunca chegam a criar o 3.
A maior parte da complexidade que temos hoje não é essencial, mas apenas um efeito colateral de uma evolução não organizada. Temos um sistema tipo 2. Claro que a solução não é voltar para o Basic e 8 bits, que são um sistema tipo 1. Temos que avançar, como faz o grupo do Alan Kay:
http://tinlizzie.org/~ohshima/AGERE2013/AGERESlides.pdf
(os 195 slides são em função de pseudo-animações)
Se o sonho do Alan é criar um sistema pessoal completo em 20 mil linhas de código, o projeto Oberon do Nicklaus Wirth tem 10 mil linhas para um sistema operacional, compilador e até o hardware no qual tudo isso roda:
http://www.projectoberon.com/
No simpósio em homenagem a seu aniversário, o Nicklaus relembra a história e mostra o que está fazendo hoje:
http://www.multimedia.ethz.ch/conferences/2014/wirth/?doi=10.3930/ETHZ/AV-d40b0ce9-b9fa-4ba3-8dee-cf9d0c6f01a4&autostart=false
Você foi direto ao ponto, Jecel: a solução não é Z80, BASIC 8-bit ou mesmo Oberon. Eu sou a favor da simplicidade como qualquer um que já teve que mudar com código spaghetti legado! 🙂 Mas essa simplicidade não significa falta de abstração, mas sim abstrações melhores. Compare app Android feira com Java-cachorro com a mesma app escrita em estilo funcional, usando Scala… ou um sistema enxuto feito em Python com um escrito em C++ noventista (hoje melhorou um pouco). Ou compare diagrama esquemático de algo minimamente complexo com o equivalente usando Verilog ou VHDL. Querer simplicidade não é desculpa pra ficar preso ao passado, fazemos isso por nostalgia, não porque “bom era naquela época”.:-)