Ação à distância (programação de computador)

Na ciência da computação, a ação à distância é um antipadrão (uma técnica de ofuscação) em que o comportamento em uma parte de um programa varia enormemente[1] com base na dificuldade ou impossibilidade de identificar operações em outra parte do programa.[2][3] O termo é baseado no conceito de ação à distância na física, que pode se referir a um processo que permite que objetos interajam sem uma partícula mediadora como o glúon. Em particular, Albert Einstein referiu-se à não localidade quântica como "ação fantasmagórica à distância".[4]

Exemplo editar

Este exemplo, da linguagem de programação Perl ,demonstra um caso especialmente sério de ação à distância (observe o variável $[ foi descontinuado em versões posteriores do Perl[5]):

Índices de matriz normalmente começam em 0 porque o valor de $[ é normalmente 0; se você definir $[ para 1, então as matrizes começam em 1, o que faz Fortran programadores felizes, e por isso vemos exemplos como este na página do manual perl(3):
<code>foreach $num ($[ .. $#entry) {
    print "  $num\t'",$entry[$num],"'\n";
}</code>

E, claro, você pode definir$[ a 17 para que os arrays comecem em algum número aleatório, como 17 ou 4, em vez de 0 ou 1. Essa era uma ótima maneira de sabotar os autores de módulos.

Felizmente, a sanidade prevaleceu. Esses recursos são agora reconhecidos como erros. A lista de discussão perl5-porters agora tem uma frase de efeito para esses recursos: eles são chamados de "ação à distância". O princípio é que uma declaração em uma parte do programa não deve alterar drástica e invisivelmente o comportamento de alguma outra parte do programa.|Mark Jason Dominus|Sins of Perl Revisited[6]

Referências

  1. «The Spooky Action at a Distance Anti-Pattern - HackerspaceWiki». wiki.hackerspaces.org. Consultado em 6 de maio de 2021 
  2. Zhuo, Ran (2017). «similarity in a distance». Digital Commons @ RISD 
  3. «OOP is dead, long live OOP». GameDev.net (em inglês). Consultado em 6 de maio de 2021 
  4. PopkinApr. 25, Gabriel; 2018; Pm, 1:05 (25 de abril de 2018). «Einstein's 'spooky action at a distance' spotted in objects almost big enough to see». Science | AAAS (em inglês). Consultado em 7 de maio de 2021 
  5. Perl documentation of the $[ variable
  6. Sins of Perl Revisited
  Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.