Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Por que comparação usa 2 iguais (==) e atribuição usa apenas um (=)?

Surgiu essa curiosidade, e um professor da faculdade me disse que existiu um estudo durante a criação da linguagem C, mostrando que os desenvolvedores realizam mais atribuições do que comparações, e utilizando apenas um igual para atribuição pouparia tempo de digitação.

Alguém já ouviu ou leu isso? Alguém tem alguma fonte que diz o mesmo?

3 respostas
solução!

Achei esse texto na wikipedia (Relational Operator: B and C) que conta sobre a origem dessa dicotomia. Ela ocorreu na criação de uma linguagem chamada B.

Em uma tentativa de simplificar outra linguagem já existente, a BCPL, os operadores de igualdade, operador lógico AND e operador lógico OR eram respectivamente := and or foram substituídos por = & |. A razão para essas escolhas potencialmente é referente a essa teoria de economizar na digitação.

Como o caractere = já havia sido utilizado, um computeiro chamado Kenneth Thompson resolveu definir como comparador o símbolo ==. A linguagem foi adaptada novamente e a partir dela foi criada a linguagem C, que ganhou popularidade e estabeleceu os símbolos que conhecemos hoje.

Muito obrigado, Marco.

Parece que meu professor se enganou!

Ele estava parcialmente correto, pois uma das possíveis origens da mudança da atribuição com := para = é exatamente o que ele disse: comandos mais utilizados devem ser simplificados para economizar na digitação.

Daí podemos intuir que a comparação é menos utilizada!