domingo, 12 de setembro de 2010

Abstração


Tema forte, provavelmente a mais importante de todas as considerações sobre como fazer software: abstração.

É a chave para arquitetar - no sentido de projetar, elaborar, desenhar, design, criar - software.

Historicamente, desde que se programa computadores, houve várias tentativas para formalizar a abstração. Que me parece não ser formalizável.

Do lado programação, tivemos a programação modular, a programação estruturada, a organização de programas e subprogramas em bibliotecas, programação orientada a objetos e correndo em paralelo a todas estas, a programação funcional.

Do lado modelos, tivemos sucessivamente as máquinas abstratas, como Turing ou Von Neuman, precedendo o computador. O computador como o conhecemos até hoje (2010), que é uma máquina de Von Neuman. A linguagem de máquina e linguagem Assembler, passagem essencial do hardware para o software: desaparece a eletronica, surge um modelo de como programar. E depois linguagens de alto nível, procedurais. E de novo, em paralelo, linguagens funcionais.

Muito a dizer e a pensar sobre abstração. Ai vão 2 posts que valem como depoimentos práticos de desenvolvedores de software:

Programming with reason: observem a regra número 1, Abstraction, or "Just Wrap it!". E o tema da simplicidade, outro tema fundamental em programação, "simplicity equals elegance".

So long and farewell to the IDE: não é somente uma crítica, forte e correta, das IDEs. É uma receita de como fazer abstração na prática, no dia a dia do programador.

Nenhum comentário:

Postar um comentário