result, temp, i, j, aux, num: O que o nome dessas variáveis têm em comum?
Durante seu processo inicial de aprendizagem em linguagens de programação, você talvez tenha se esbarrado com essas seguintes situações:
int num1 = 25, num2 = 45;
int result = num1 + num2
Ou quem sabe:
int num1 = 12;
int num2 = 54
int aux = num1;
num1 = num2;
num2 = aux;
É engraçado, pois, não sei é só comigo, mas eu vi o nome desses carinhas (e também de outros) em aulas de professores do meu curso técnico (inclusive professores diferentes), professores de cursos on-line e também em professores do meu atual curso superior.
Não me entrava na cabeça o fato de como pessoas diferentes, de Estados diferentes, culturas diferentes e com quase NADA em comum (muitas vezes nem o curso superior), tiravam esses nomes de variáveis na hora de me explicar programação em C.
Mas aí eu só acho que nunca entrou na cabeça por que nunca parei para pensar sobre! E conversando com amigos, lendo alguns livros e fóruns, eu talvez tenha uma teoria do porquê desses carinhas nos assombrarem 👻
🧮 1 + 1 = 11
Os lobos estão para os cachorros, assim como os matemáticos estão para os desenvolvedores (e também para o resto da Ciência da Computação). Nós viemos de uma linhagem e de um viés matemático e esse viés lógico e matemático está presente até nos dias de hoje!
Você possivelmente já percorreu uma matriz em linguagem C, por exemplo, utilizando meio que essa sintaxe:
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++)
printf (" %d ", matrix[i][j]);
printf ("\n");
}
Não lhe é familiar utilizar i para identificar linhas e j para colunas assim como vemos na matemática?
Tá bem... Dessa você provavelmente já sabia! Mas e as inúmeras vezes que utilizamos funções em linguagens de programação? Já parou para pensar sobre?
int square(int numberToSquare)
return numberToSquare * numberToSquare;
square(2) // 4
f(x) = x²
f(2) = 4
☕️ O ano era 1969
Isso mesmo! O ano era 1969 e você estava, assim como está agora, lendo um post no TabNews, tomando um café, trabalhando de forma remota no meu Notebook Core i7 com 16GB de RAM e... Pera.. Na verdade... NÃO!
Pois bem, é importante relembrar que tudo era diferente naqueles tempos! Uma máquina, um computador, não tinha o mesmo poder de processamento e de memória como nossos computador contemporâneos!
Bem, nos tempos de hoje nos preocupados em otimizações de chamadas em bancos de dados, responsividade de um layout, a quantidade de render que seu component em React está fazendo, mas talvez a última coisa que você pense é: Quantos bytes o nome dessa variável vai ocupar em memória?
Para os que talvez não saibam (e também não é sua obrigação, mas é legal saber), um único byte é representado por oito bits. Dessa forma, um caractér é representado por 8 bits! Para você ter uma ideia, até esse momento de leitura temos 1965 caracteres!
Os programadores da época não tinham o luxo (sim, luxo) de aplicar um Clean Code por conta do poder de processamento e memória dos computadores da época.
🖥️ 1920 x 1080
Como é bom programar com dois monitores, não é? Imagine então com dois ultrawides, ou um monitor curvo, ou um monitor em vertical e outro em horizontal e... Bem, problemas de programadores contemporâneos, não é?
Mas, além da limitação técnica nos computadores, também havia a limitação nos periféricos. Não tínhamos o espectro de visualização que temos hoje! Eu me lembro até hoje de quando saímos dos 4:3 para os 16:9 e foi um boom incrível.
Você já deve saber onde quero chegar! O que era mais fácil de se visualizar?
int idThatReffersThisUser = 543;
// ou
int u = 543;
🕓 Quanto tempo tem o tempo?
Pode não parecer, mas o Ken Thompson - criador do UNIX, linguagem B e desenvolvedor na linguagem C - está vivo até hoje! Linus Torvalds, principal desenvolvedor do núcleo Linux, também está vivinho da silva. Assim como Bill Gates, ̶c̶o̶m̶p̶r̶a̶d̶o̶r̶, ops, "inventor" do Windows também!
O ponto que quero chegar é que, por mais que parece que estamos em um outro patamar (e de fato estamos), a ciência da computação em si é uma área muito nova e em constante evolução. Talvez nossos professores, que lá atrás aprenderam COBOL, Fortran, Pascal e quem sabe até Assembly, tenham trago esses paradigmas para os dias de hoje! E não é culpa deles, essa foi a forma que eles talvez aprenderam e nos passaram até hoje.
Mas isso não se prende aos professores, eu mesmo, quando atuei como monitor na disciplina de Linguagens e Técnicas de Programação, mesmo em um mundo completamente novo, utilizava das mesmas técnicas por serem certas para mim.
Conclusão
Bem, a conclusão que trago sobre esse mini documentário é que... Meio que não há conclusão! Não tenho fontes para quase nada do que escrevi, pois foram só meus pensamentos e nada aqui é verdade absoluta. O objetivo desse post é encontrar pessoas para debater sobre ou para analisarem que há um sentido no que disse aqui!
Agora um pequeno sermão! Caso você ainda utilize desses artifícios hoje em seu ambiente de aprendizagem ou de trabalho, seria bastante interessante aprender agora o que nossos antigos programadores não conseguiam implementar por conta de limitações: O Código Limpo.
Não foi culpa dos nossos veteranos os códigos escritos assim, mas com certeza é o nosso se continuarmos os escrevendo dessa maneira.