Sobre variáveis ​​na programação

Se você consultar a Wikipedia, poderá ver que uma variável na programação é uma área de memória nomeada ou endereçada de outra forma, cujo endereço pode ser usado para acessar dados. A palavra desta definição que gostaria de chamar sua atenção é dados. É realmente assim que, nas linguagens de programação em que escrevemos, as variáveis ​​são usadas apenas para acessar dados. Por exemplo, eu escrevo em PHP. E, como em outras linguagens de programação, variáveis, além do acesso a dados, também são usadas para acessar objetos (instâncias de classe) e matrizes (associativas e comuns) e algumas outras coisas. Dados (seqüências de caracteres, números inteiros, números de ponto flutuante, valores booleanos), objetos (instâncias de classe) e estruturas (matrizes associativas e regulares, se você usar PHP) para uma pessoa são entidades essencialmente diferentes (abstrações), e seria razoável, em nossas linguagens de programação, trate-as como coisas diferentes, ignorando o fato de que para uma máquina elas são a mesma (áreas de memória nomeadas). Para isso, proponho, em vez de variáveis, começar a usar entidades como, por exemplo: um objeto , estrutura , dados .

// , ,      ,         $ $objectVar = new SomeClass(); //         "", ,  ,      ^ ^objectEntity = new SomeClass(); // "",  ,      * *simpleArray = ['one', 'two', 'three']; *associativeArray = ['key' => 'val', 'another_key' => 'another_val']; //  "",    % %string = 'abcde'; %integer = 123; %floating = 1.23; %boolean = true; 

Essa substituição torna possível separar mentalmente tão diferentes e não ter nada em entidades comuns (abstrações), como objetos , estruturas e dados .

Um RFC para PHP sobre este tópico já está em construção.

PS
Em geral, não funcionou para criar uma RFC para PHP, pois os desenvolvedores do PHP disseram que não queriam gastar os caracteres necessários para implementar essa idéia. Acrescentarei que no PHP ele ainda não pôde ser implementado porque possui digitação dinâmica. Mas! Em um idioma com digitação estática, onde os tipos não mudam, isso pode ser implementado. Portanto, espero que os desenvolvedores de tais linguagens voltem sua atenção para a ideia proposta.

Source: https://habr.com/ru/post/pt437496/


All Articles