Как стать автором
Обновить

О переменных в программировании

Время на прочтение2 мин
Количество просмотров19K
Если заглянуть в википедию, то можно увидеть, что переменная в программировании — это поименованная, либо адресуемая иным способом область памяти, адрес которой можно использовать для осуществления доступа к данным. Слово, из этого определения, на которое я хотел бы обратить ваше внимание — это данные. Так ли на самом деле, что в языках программирования, на которых мы пишем, переменные используются только для доступа к данным. Я, например, пишу на PHP. И в нём, как и в других языках программирования, переменные, кроме доступа к данным, используются также для доступа к объектам(экземплярам классов) и массивам(ассоциативным и обычным) и ещё некоторым вещам. Данные(строки, целые числа, числа с плавающей точкой, булевы значения), объекты(экземпляры классов) и структуры( ассоциативные и обычные массивы, если брать PHP) для человека по-сути являются разными сущностями (абстракциями), и было бы разумным, в наших языках программирования, обращаться с ними, как с разными вещами, игнорируя факт того, что для машины они являются одним и тем же(именованными областями памяти). Для этого я предлагаю вместо переменных начать пользоваться такими сущностями как, например: объект, структура, данные.

//Если раньше, например, для хранения объектов  мы использовали переменные, которые в нынешнем синтаксисе объявляются с использованием символа $

$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;

Такая замена даёт возможность ментального разделения таких разных и не имеющих ничего общего сущностей(абстракций) как объекты, структуры и данные.

RFC для PHP по этой теме уже в процессе создания.

PS
Вообщем создать RFC для PHP не вышло, тк разработчики PHP сказали, что не хотят тратить символы которые будут нужны для реализации этой задумки. Добавлю от себя что в PHP это всё равно не получилось бы реализовать потому, что у него динамическая типизация. Но! В языке со статической типизацией, где типы не меняются, это вполне можно реализовать. Поэтому надеюсь разработчики таких языков обратят своё внимание на предложенную идею.
Теги:
Хабы:
Всего голосов 51: ↑6 и ↓45-39
Комментарии59

Публикации