Fundamentos
Wanderley Caloni, 2015-10-21

#filosofia #if #programação #lógica #abstração #babbage #ada lovelace #flip flops #prédio #alicerce #base #básico #c++ #chopp

Um amigo meu costumava dizer que qualquer conhecimento precisa ter bases sólidas. “Os fundamentos”, dizia ele. Sem os fundamentos, o prédio do conhecimento vai abaixo em pouco tempo. Mas com eles, construídos de cimento armado, reforçados e com alicerces bem planejados, não há informação demais suficiente para abalar o prédio do conhecimento.

Esse meu amigo demorou um pouco mais que o que as pessoas costumam demorar para entender o conceito de if na programação. Se não me engano, ele passou semanas revisando a abstração, mas depois que entendeu, nunca mais perguntou uma vírgula para mim sobre o assunto. Eu escrevi uma “ode ao if” dividida em duas partes, pois ele merece. Para mim é o conceito-chave por trás de toda a lógica da programação, tal qual os flip flops constituem o alicerce da programação em hardware. Para mim, Ada Lovelace, a primeira programadora da história, que apostou na invenção maluca de Charles Babbage, sabia muito bem onde estava pisando. Escreveu diversos programas no papel antes que o computador saísse dele. Na época, o projeto falhou miseravelmente. Mas manteve-se seu legado, e seu sonho de um dia conseguir implementar em uma máquina mecânica o saldo condicional. A chave para o universo.

E é através desse salto condicional, esse alicerce do nosso prédio, que se construiu todas as firulas abstratas que são fontes de discussões intermináveis no grupo de C/C++ Brasil e discussões ainda mais malucas nas nossas reuniões mensais do ChoPP. É entendendo esse conceito tão “básico” (lembre-se que básico vem de base) que todas as outras abstrações fazem sentido. E assim por diante. É entendendo o conceito de tipo, rvalue, lvalue, precedência, gramática, templates, recursividade e STL que pode-se entender com louvor as construções mais malucas já inventadas e padronizadas em C++: os padrões 11, 14, 17!

E é por isso que, quando for estudar algo, por mais complexo que seja, não se deve abrir mão da introdução daquele primeiro livro, do capítulo básico em que o autor explica as motivações por trás das criações da lógica computacional. Pois é nesse básico que se escondem os fundamentos, os alicerces, o concreto armado. É lá que está a fonte de todo o conhecimento, a pedra angular dos maiores arranha-céus que programadores já fizeram, do maior conjunto de milhões de linhas de código que continuam funcionando. Esse é o segredo. E nunca é difícil. Afinal, tudo aquilo é muito básico para ser deixado de lado.